{"version":3,"file":"mark-BsAsQwOa.js","sources":["../../../node_modules/mark.js/dist/mark.js"],"sourcesContent":["/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Mark = factory());\n}(this, (function () { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar DOMIterator = function () {\n function DOMIterator(ctx) {\n var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;\n classCallCheck(this, DOMIterator);\n\n this.ctx = ctx;\n this.iframes = iframes;\n this.exclude = exclude;\n this.iframesTimeout = iframesTimeout;\n }\n\n createClass(DOMIterator, [{\n key: 'getContexts',\n value: function getContexts() {\n var ctx = void 0,\n filteredCtx = [];\n if (typeof this.ctx === 'undefined' || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n ctx.forEach(function (ctx) {\n var isDescendant = filteredCtx.filter(function (contexts) {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n }, {\n key: 'getIframeContents',\n value: function getIframeContents(ifr, successFn) {\n var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n var doc = void 0;\n try {\n var ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) {\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n }, {\n key: 'isIframeBlank',\n value: function isIframeBlank(ifr) {\n var bl = 'about:blank',\n src = ifr.getAttribute('src').trim(),\n href = ifr.contentWindow.location.href;\n return href === bl && src !== bl && src;\n }\n }, {\n key: 'observeIframeLoad',\n value: function observeIframeLoad(ifr, successFn, errorFn) {\n var _this = this;\n\n var called = false,\n tout = null;\n var listener = function listener() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(tout);\n try {\n if (!_this.isIframeBlank(ifr)) {\n ifr.removeEventListener('load', listener);\n _this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n ifr.addEventListener('load', listener);\n tout = setTimeout(listener, this.iframesTimeout);\n }\n }, {\n key: 'onIframeReady',\n value: function onIframeReady(ifr, successFn, errorFn) {\n try {\n if (ifr.contentWindow.document.readyState === 'complete') {\n if (this.isIframeBlank(ifr)) {\n this.observeIframeLoad(ifr, successFn, errorFn);\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n this.observeIframeLoad(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n }\n }, {\n key: 'waitForIframes',\n value: function waitForIframes(ctx, done) {\n var _this2 = this;\n\n var eachCalled = 0;\n this.forEachIframe(ctx, function () {\n return true;\n }, function (ifr) {\n eachCalled++;\n _this2.waitForIframes(ifr.querySelector('html'), function () {\n if (! --eachCalled) {\n done();\n }\n });\n }, function (handled) {\n if (!handled) {\n done();\n }\n });\n }\n }, {\n key: 'forEachIframe',\n value: function forEachIframe(ctx, filter, each) {\n var _this3 = this;\n\n var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var ifr = ctx.querySelectorAll('iframe'),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n var checkEnd = function checkEnd() {\n if (--open <= 0) {\n end(handled);\n }\n };\n if (!open) {\n checkEnd();\n }\n ifr.forEach(function (ifr) {\n if (DOMIterator.matches(ifr, _this3.exclude)) {\n checkEnd();\n } else {\n _this3.onIframeReady(ifr, function (con) {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n checkEnd();\n }, checkEnd);\n }\n });\n }\n }, {\n key: 'createIterator',\n value: function createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n }, {\n key: 'createInstanceOnIframe',\n value: function createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector('html'), this.iframes);\n }\n }, {\n key: 'compareNodeIframe',\n value: function compareNodeIframe(node, prevNode, ifr) {\n var compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n if (compCurr & prev) {\n if (prevNode !== null) {\n var compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n }\n }, {\n key: 'getIteratorNode',\n value: function getIteratorNode(itr) {\n var prevNode = itr.previousNode();\n var node = void 0;\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n return {\n prevNode: prevNode,\n node: node\n };\n }\n }, {\n key: 'checkIframeFilter',\n value: function checkIframeFilter(node, prevNode, currIfr, ifr) {\n var key = false,\n handled = false;\n ifr.forEach(function (ifrDict, i) {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n return true;\n }\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n return false;\n }\n }, {\n key: 'handleOpenIframes',\n value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n var _this4 = this;\n\n ifr.forEach(function (ifrDict) {\n if (!ifrDict.handled) {\n _this4.getIframeContents(ifrDict.val, function (con) {\n _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n }, {\n key: 'iterateThroughNodes',\n value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n var _this5 = this;\n\n var itr = this.createIterator(ctx, whatToShow, filterCb);\n var ifr = [],\n elements = [],\n node = void 0,\n prevNode = void 0,\n retrieveNodes = function retrieveNodes() {\n var _getIteratorNode = _this5.getIteratorNode(itr);\n\n prevNode = _getIteratorNode.prevNode;\n node = _getIteratorNode.node;\n\n return node;\n };\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, function (currIfr) {\n return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, function (con) {\n _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {\n return elements.push(ifrNode);\n }, filterCb);\n });\n }\n elements.push(node);\n }\n elements.forEach(function (node) {\n eachCb(node);\n });\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n doneCb();\n }\n }, {\n key: 'forEachNode',\n value: function forEachNode(whatToShow, each, filter) {\n var _this6 = this;\n\n var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var contexts = this.getContexts();\n var open = contexts.length;\n if (!open) {\n done();\n }\n contexts.forEach(function (ctx) {\n var ready = function ready() {\n _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {\n if (--open <= 0) {\n done();\n }\n });\n };\n if (_this6.iframes) {\n _this6.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n }], [{\n key: 'matches',\n value: function matches(element, selector) {\n var selectors = typeof selector === 'string' ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n if (fn) {\n var match = false;\n selectors.every(function (sel) {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n }]);\n return DOMIterator;\n}();\n\nvar Mark$1 = function () {\n function Mark(ctx) {\n classCallCheck(this, Mark);\n\n this.ctx = ctx;\n this.ie = false;\n var ua = window.navigator.userAgent;\n if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {\n this.ie = true;\n }\n }\n\n createClass(Mark, [{\n key: 'log',\n value: function log(msg) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';\n\n var log = this.opt.log;\n if (!this.opt.debug) {\n return;\n }\n if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {\n log[level]('mark.js: ' + msg);\n }\n }\n }, {\n key: 'escapeStr',\n value: function escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n }, {\n key: 'createRegExp',\n value: function createRegExp(str) {\n if (this.opt.wildcards !== 'disabled') {\n str = this.setupWildcardsRegExp(str);\n }\n str = this.escapeStr(str);\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n str = this.createMergedBlanksRegExp(str);\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.createJoinersRegExp(str);\n }\n if (this.opt.wildcards !== 'disabled') {\n str = this.createWildcardsRegExp(str);\n }\n str = this.createAccuracyRegExp(str);\n return str;\n }\n }, {\n key: 'createSynonymsRegExp',\n value: function createSynonymsRegExp(str) {\n var syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? '' : 'i',\n joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\\0' : '';\n for (var index in syn) {\n if (syn.hasOwnProperty(index)) {\n var value = syn[index],\n k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),\n k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);\n if (k1 !== '' && k2 !== '') {\n str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);\n }\n }\n }\n return str;\n }\n }, {\n key: 'processSynomyms',\n value: function processSynomyms(str) {\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n return str;\n }\n }, {\n key: 'setupWildcardsRegExp',\n value: function setupWildcardsRegExp(str) {\n str = str.replace(/(?:\\\\)*\\?/g, function (val) {\n return val.charAt(0) === '\\\\' ? '?' : '\\x01';\n });\n return str.replace(/(?:\\\\)*\\*/g, function (val) {\n return val.charAt(0) === '\\\\' ? '*' : '\\x02';\n });\n }\n }, {\n key: 'createWildcardsRegExp',\n value: function createWildcardsRegExp(str) {\n var spaces = this.opt.wildcards === 'withSpaces';\n return str.replace(/\\u0001/g, spaces ? '[\\\\S\\\\s]?' : '\\\\S?').replace(/\\u0002/g, spaces ? '[\\\\S\\\\s]*?' : '\\\\S*');\n }\n }, {\n key: 'setupIgnoreJoinersRegExp',\n value: function setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, function (val, indx, original) {\n var nextChar = original.charAt(indx + 1);\n if (/[(|)\\\\]/.test(nextChar) || nextChar === '') {\n return val;\n } else {\n return val + '\\0';\n }\n });\n }\n }, {\n key: 'createJoinersRegExp',\n value: function createJoinersRegExp(str) {\n var joiner = [];\n var ignorePunctuation = this.opt.ignorePunctuation;\n if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {\n joiner.push(this.escapeStr(ignorePunctuation.join('')));\n }\n if (this.opt.ignoreJoiners) {\n joiner.push('\\\\u00ad\\\\u200b\\\\u200c\\\\u200d');\n }\n return joiner.length ? str.split(/\\u0000+/).join('[' + joiner.join('') + ']*') : str;\n }\n }, {\n key: 'createDiacriticsRegExp',\n value: function createDiacriticsRegExp(str) {\n var sens = this.opt.caseSensitive ? '' : 'i',\n dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];\n var handled = [];\n str.split('').forEach(function (ch) {\n dct.every(function (dct) {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');\n handled.push(dct);\n }\n return true;\n });\n });\n return str;\n }\n }, {\n key: 'createMergedBlanksRegExp',\n value: function createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, '[\\\\s]+');\n }\n }, {\n key: 'createAccuracyRegExp',\n value: function createAccuracyRegExp(str) {\n var _this = this;\n\n var chars = '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿';\n var acc = this.opt.accuracy,\n val = typeof acc === 'string' ? acc : acc.value,\n ls = typeof acc === 'string' ? [] : acc.limiters,\n lsJoin = '';\n ls.forEach(function (limiter) {\n lsJoin += '|' + _this.escapeStr(limiter);\n });\n switch (val) {\n case 'partially':\n default:\n return '()(' + str + ')';\n case 'complementary':\n lsJoin = '\\\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));\n return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';\n case 'exactly':\n return '(^|\\\\s' + lsJoin + ')(' + str + ')(?=$|\\\\s' + lsJoin + ')';\n }\n }\n }, {\n key: 'getSeparatedKeywords',\n value: function getSeparatedKeywords(sv) {\n var _this2 = this;\n\n var stack = [];\n sv.forEach(function (kw) {\n if (!_this2.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(' ').forEach(function (kwSplitted) {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n 'keywords': stack.sort(function (a, b) {\n return b.length - a.length;\n }),\n 'length': stack.length\n };\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric(value) {\n return Number(parseFloat(value)) == value;\n }\n }, {\n key: 'checkRanges',\n value: function checkRanges(array) {\n var _this3 = this;\n\n if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {\n this.log('markRanges() will only accept an array of objects');\n this.opt.noMatch(array);\n return [];\n }\n var stack = [];\n var last = 0;\n array.sort(function (a, b) {\n return a.start - b.start;\n }).forEach(function (item) {\n var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),\n start = _callNoMatchOnInvalid.start,\n end = _callNoMatchOnInvalid.end,\n valid = _callNoMatchOnInvalid.valid;\n\n if (valid) {\n item.start = start;\n item.length = end - start;\n stack.push(item);\n last = end;\n }\n });\n return stack;\n }\n }, {\n key: 'callNoMatchOnInvalidRanges',\n value: function callNoMatchOnInvalidRanges(range, last) {\n var start = void 0,\n end = void 0,\n valid = false;\n if (range && typeof range.start !== 'undefined') {\n start = parseInt(range.start, 10);\n end = start + parseInt(range.length, 10);\n if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {\n valid = true;\n } else {\n this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));\n this.opt.noMatch(range);\n }\n } else {\n this.log('Ignoring invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'checkWhitespaceRanges',\n value: function checkWhitespaceRanges(range, originalLength, string) {\n var end = void 0,\n valid = true,\n max = string.length,\n offset = originalLength - max,\n start = parseInt(range.start, 10) - offset;\n start = start > max ? max : start;\n end = start + parseInt(range.length, 10);\n if (end > max) {\n end = max;\n this.log('End range automatically set to the max value of ' + max);\n }\n if (start < 0 || end - start < 0 || start > max || end > max) {\n valid = false;\n this.log('Invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n } else if (string.substring(start, end).replace(/\\s+/g, '') === '') {\n valid = false;\n this.log('Skipping whitespace only range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'getTextNodes',\n value: function getTextNodes(cb) {\n var _this4 = this;\n\n var val = '',\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node: node\n });\n }, function (node) {\n if (_this4.matchesExclude(node.parentNode)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, function () {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n }, {\n key: 'matchesExclude',\n value: function matchesExclude(el) {\n return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));\n }\n }, {\n key: 'wrapRangeInTextNode',\n value: function wrapRangeInTextNode(node, start, end) {\n var hEl = !this.opt.element ? 'mark' : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n var repl = document.createElement(hEl);\n repl.setAttribute('data-markjs', 'true');\n if (this.opt.className) {\n repl.setAttribute('class', this.opt.className);\n }\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n }, {\n key: 'wrapRangeInMappedTextNode',\n value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n var _this5 = this;\n\n dict.nodes.every(function (n, i) {\n var sibl = dict.nodes[i + 1];\n if (typeof sibl === 'undefined' || sibl.start > start) {\n if (!filterCb(n.node)) {\n return false;\n }\n var s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start,\n startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n n.node = _this5.wrapRangeInTextNode(n.node, s, e);\n dict.value = startStr + endStr;\n dict.nodes.forEach(function (k, j) {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n return true;\n });\n }\n }, {\n key: 'wrapMatches',\n value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this6 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n dict.nodes.forEach(function (node) {\n node = node.node;\n var match = void 0;\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n var pos = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n }, {\n key: 'wrapMatchesAcrossElements',\n value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this7 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n var match = void 0;\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {\n var start = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n var end = start + match[matchIdx].length;\n _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(match[matchIdx], node);\n }, function (node, lastIndex) {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n endCb();\n });\n }\n }, {\n key: 'wrapRangeFromIndex',\n value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {\n var _this8 = this;\n\n this.getTextNodes(function (dict) {\n var originalLength = dict.value.length;\n ranges.forEach(function (range, counter) {\n var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),\n start = _checkWhitespaceRange.start,\n end = _checkWhitespaceRange.end,\n valid = _checkWhitespaceRange.valid;\n\n if (valid) {\n _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(node, range, dict.value.substring(start, end), counter);\n }, function (node) {\n eachCb(node, range);\n });\n }\n });\n endCb();\n });\n }\n }, {\n key: 'unwrapMatches',\n value: function unwrapMatches(node) {\n var parent = node.parentNode;\n var docFrag = document.createDocumentFragment();\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n parent.replaceChild(docFrag, node);\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n }, {\n key: 'normalizeTextNode',\n value: function normalizeTextNode(node) {\n if (!node) {\n return;\n }\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n this.normalizeTextNode(node.nextSibling);\n }\n }, {\n key: 'markRegExp',\n value: function markRegExp(regexp, opt) {\n var _this9 = this;\n\n this.opt = opt;\n this.log('Searching with expression \"' + regexp + '\"');\n var totalMatches = 0,\n fn = 'wrapMatches';\n var eachCb = function eachCb(element) {\n totalMatches++;\n _this9.opt.each(element);\n };\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n this[fn](regexp, this.opt.ignoreGroups, function (match, node) {\n return _this9.opt.filter(node, match, totalMatches);\n }, eachCb, function () {\n if (totalMatches === 0) {\n _this9.opt.noMatch(regexp);\n }\n _this9.opt.done(totalMatches);\n });\n }\n }, {\n key: 'mark',\n value: function mark(sv, opt) {\n var _this10 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),\n kwArr = _getSeparatedKeywords.keywords,\n kwArrLen = _getSeparatedKeywords.length,\n sens = this.opt.caseSensitive ? '' : 'i',\n handler = function handler(kw) {\n var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),\n matches = 0;\n _this10.log('Searching with expression \"' + regex + '\"');\n _this10[fn](regex, 1, function (term, node) {\n return _this10.opt.filter(node, kw, totalMatches, matches);\n }, function (element) {\n matches++;\n totalMatches++;\n _this10.opt.each(element);\n }, function () {\n if (matches === 0) {\n _this10.opt.noMatch(kw);\n }\n if (kwArr[kwArrLen - 1] === kw) {\n _this10.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n }, {\n key: 'markRanges',\n value: function markRanges(rawRanges, opt) {\n var _this11 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n ranges = this.checkRanges(rawRanges);\n if (ranges && ranges.length) {\n this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));\n this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {\n return _this11.opt.filter(node, range, match, counter);\n }, function (element, range) {\n totalMatches++;\n _this11.opt.each(element, range);\n }, function () {\n _this11.opt.done(totalMatches);\n });\n } else {\n this.opt.done(totalMatches);\n }\n }\n }, {\n key: 'unmark',\n value: function unmark(opt) {\n var _this12 = this;\n\n this.opt = opt;\n var sel = this.opt.element ? this.opt.element : '*';\n sel += '[data-markjs]';\n if (this.opt.className) {\n sel += '.' + this.opt.className;\n }\n this.log('Removal selector \"' + sel + '\"');\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {\n _this12.unwrapMatches(node);\n }, function (node) {\n var matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = _this12.matchesExclude(node);\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }, {\n key: 'opt',\n set: function set$$1(val) {\n this._opt = _extends({}, {\n 'element': '',\n 'className': '',\n 'exclude': [],\n 'iframes': false,\n 'iframesTimeout': 5000,\n 'separateWordSearch': true,\n 'diacritics': true,\n 'synonyms': {},\n 'accuracy': 'partially',\n 'acrossElements': false,\n 'caseSensitive': false,\n 'ignoreJoiners': false,\n 'ignoreGroups': 0,\n 'ignorePunctuation': [],\n 'wildcards': 'disabled',\n 'each': function each() {},\n 'noMatch': function noMatch() {},\n 'filter': function filter() {\n return true;\n },\n 'done': function done() {},\n 'debug': false,\n 'log': window.console\n }, val);\n },\n get: function get$$1() {\n return this._opt;\n }\n }, {\n key: 'iterator',\n get: function get$$1() {\n return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);\n }\n }]);\n return Mark;\n}();\n\nfunction Mark(ctx) {\n var _this = this;\n\n var instance = new Mark$1(ctx);\n this.mark = function (sv, opt) {\n instance.mark(sv, opt);\n return _this;\n };\n this.markRegExp = function (sv, opt) {\n instance.markRegExp(sv, opt);\n return _this;\n };\n this.markRanges = function (sv, opt) {\n instance.markRanges(sv, opt);\n return _this;\n };\n this.unmark = function (opt) {\n instance.unmark(opt);\n return _this;\n };\n return this;\n}\n\nreturn Mark;\n\n})));\n"],"names":["global","factory","module","this","_typeof","obj","classCallCheck","instance","Constructor","createClass","defineProperties","target","props","i","descriptor","protoProps","staticProps","_extends","source","key","DOMIterator","ctx","iframes","exclude","iframesTimeout","filteredCtx","isDescendant","contexts","ifr","successFn","errorFn","doc","ifrWin","bl","src","href","_this","called","tout","listener","done","_this2","eachCalled","handled","filter","each","_this3","end","open","checkEnd","con","whatToShow","contents","node","prevNode","compCurr","prev","compPrev","after","itr","currIfr","ifrDict","eCb","fCb","_this4","eachCb","filterCb","doneCb","_this5","elements","retrieveNodes","_getIteratorNode","ifrNode","_this6","ready","element","selector","selectors","fn","match","sel","Mark$1","Mark","ua","msg","level","log","str","syn","sens","joinerPlaceholder","index","value","k1","k2","val","spaces","indx","original","nextChar","joiner","ignorePunctuation","dct","ch","chars","acc","ls","lsJoin","limiter","sv","stack","kw","kwSplitted","b","array","last","a","item","_callNoMatchOnInvalid","start","valid","range","originalLength","string","max","offset","cb","nodes","el","hEl","startNode","ret","repl","dict","n","sibl","s","e","startStr","endStr","k","j","regex","ignoreGroups","endCb","matchIdx","pos","_this7","lastIndex","ranges","_this8","counter","_checkWhitespaceRange","parent","docFrag","regexp","opt","_this9","totalMatches","_this10","_getSeparatedKeywords","kwArr","kwArrLen","handler","matches","term","rawRanges","_this11","_this12","matchesSel","matchesExclude"],"mappings":";;;;;sEAOC,SAAUA,EAAQC,EAAS,CACoCC,EAAA,QAAiBD,EAAQ,CAGzF,GAAEE,EAAO,UAAY,CAEjB,IAAAC,EAAU,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAAW,SAAUC,EAAK,CACjG,OAAO,OAAOA,CAChB,EAAI,SAAUA,EAAK,CACV,OAAAA,GAAO,OAAO,QAAW,YAAcA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAA,EAavHC,EAAiB,SAAUC,EAAUC,EAAa,CAChD,GAAA,EAAED,aAAoBC,GAClB,MAAA,IAAI,UAAU,mCAAmC,CACzD,EAGEC,EAA0B,UAAA,CACnB,SAAAC,EAAiBC,EAAQC,EAAO,CACvC,QAASC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAAK,CACjC,IAAAC,EAAaF,EAAMC,CAAC,EACbC,EAAA,WAAaA,EAAW,YAAc,GACjDA,EAAW,aAAe,GACtB,UAAWA,IAAYA,EAAW,SAAW,IACjD,OAAO,eAAeH,EAAQG,EAAW,IAAKA,CAAU,CAC1D,CACF,CAEO,OAAA,SAAUN,EAAaO,EAAYC,EAAa,CACrD,OAAID,GAAYL,EAAiBF,EAAY,UAAWO,CAAU,EAC9DC,GAA8BN,EAAAF,EAAaQ,CAAW,EACnDR,CAAA,CACT,IASES,EAAW,OAAO,QAAU,SAAUN,EAAQ,CAChD,QAASE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACrC,IAAAK,EAAS,UAAUL,CAAC,EAExB,QAASM,KAAOD,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQC,CAAG,IAC3CR,EAAAQ,CAAG,EAAID,EAAOC,CAAG,EAG9B,CAEO,OAAAR,CAAA,EAGLS,EAAc,UAAY,CAC5B,SAASA,EAAYC,EAAK,CACpB,IAAAC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EAC9EC,EAAiB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,IACzFlB,EAAe,KAAMc,CAAW,EAEhC,KAAK,IAAMC,EACX,KAAK,QAAUC,EACf,KAAK,QAAUC,EACf,KAAK,eAAiBC,CACxB,CAEA,OAAAf,EAAYW,EAAa,CAAC,CACxB,IAAK,cACL,MAAO,UAAuB,CACxB,IAAAC,EAAM,OACNI,EAAc,CAAA,EAClB,OAAI,OAAO,KAAK,IAAQ,KAAe,CAAC,KAAK,IAC3CJ,EAAM,CAAA,EACG,SAAS,UAAU,cAAc,KAAK,GAAG,EAClDA,EAAM,MAAM,UAAU,MAAM,KAAK,KAAK,GAAG,EAChC,MAAM,QAAQ,KAAK,GAAG,EAC/BA,EAAM,KAAK,IACF,OAAO,KAAK,KAAQ,SACvBA,EAAA,MAAM,UAAU,MAAM,KAAK,SAAS,iBAAiB,KAAK,GAAG,CAAC,EAE9DA,EAAA,CAAC,KAAK,GAAG,EAEbA,EAAA,QAAQ,SAAUA,EAAK,CACzB,IAAIK,EAAeD,EAAY,OAAO,SAAUE,EAAU,CACjD,OAAAA,EAAS,SAASN,CAAG,CAAA,CAC7B,EAAE,OAAS,EACRI,EAAY,QAAQJ,CAAG,IAAM,IAAM,CAACK,GACtCD,EAAY,KAAKJ,CAAG,CACtB,CACD,EACMI,CACT,CAAA,EACC,CACD,IAAK,oBACL,MAAO,SAA2BG,EAAKC,EAAW,CAC5C,IAAAC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,UAAY,CAAA,EAE1FC,EAAM,OACN,GAAA,CACF,IAAIC,EAASJ,EAAI,cAEb,GADJG,EAAMC,EAAO,SACT,CAACA,GAAU,CAACD,EACR,MAAA,IAAI,MAAM,qBAAqB,OAE7B,CACFD,GACV,CACIC,GACFF,EAAUE,CAAG,CAEjB,CAAA,EACC,CACD,IAAK,gBACL,MAAO,SAAuBH,EAAK,CACjC,IAAIK,EAAK,cACLC,EAAMN,EAAI,aAAa,KAAK,EAAE,KAAA,EAC9BO,EAAOP,EAAI,cAAc,SAAS,KAC/B,OAAAO,IAASF,GAAMC,IAAQD,GAAMC,CACtC,CAAA,EACC,CACD,IAAK,oBACL,MAAO,SAA2BN,EAAKC,EAAWC,EAAS,CACzD,IAAIM,EAAQ,KAERC,EAAS,GACTC,EAAO,KACPC,EAAW,SAASA,GAAW,CACjC,GAAI,CAAAF,EAGK,CAAAA,EAAA,GACT,aAAaC,CAAI,EACb,GAAA,CACGF,EAAM,cAAcR,CAAG,IACtBA,EAAA,oBAAoB,OAAQW,CAAQ,EAClCH,EAAA,kBAAkBR,EAAKC,EAAWC,CAAO,QAEvC,CACFA,GACV,EAAA,EAEEF,EAAA,iBAAiB,OAAQW,CAAQ,EAC9BD,EAAA,WAAWC,EAAU,KAAK,cAAc,CACjD,CAAA,EACC,CACD,IAAK,gBACL,MAAO,SAAuBX,EAAKC,EAAWC,EAAS,CACjD,GAAA,CACEF,EAAI,cAAc,SAAS,aAAe,WACxC,KAAK,cAAcA,CAAG,EACnB,KAAA,kBAAkBA,EAAKC,EAAWC,CAAO,EAEzC,KAAA,kBAAkBF,EAAKC,EAAWC,CAAO,EAG3C,KAAA,kBAAkBF,EAAKC,EAAWC,CAAO,OAEtC,CACFA,GACV,CACF,CAAA,EACC,CACD,IAAK,iBACL,MAAO,SAAwBT,EAAKmB,EAAM,CACxC,IAAIC,EAAS,KAETC,EAAa,EACZ,KAAA,cAAcrB,EAAK,UAAY,CAC3B,MAAA,EACT,EAAG,SAAUO,EAAK,CAChBc,IACAD,EAAO,eAAeb,EAAI,cAAc,MAAM,EAAG,UAAY,CACrD,EAAEc,GACDF,GACP,CACD,CACH,EAAG,SAAUG,EAAS,CACfA,GACEH,GACP,CACD,CACH,CAAA,EACC,CACD,IAAK,gBACL,MAAO,SAAuBnB,EAAKuB,EAAQC,EAAM,CAC/C,IAAIC,EAAS,KAETC,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,UAAY,CAAA,EAEtFnB,EAAMP,EAAI,iBAAiB,QAAQ,EACnC2B,EAAOpB,EAAI,OACXe,EAAU,EACdf,EAAM,MAAM,UAAU,MAAM,KAAKA,CAAG,EAChC,IAAAqB,EAAW,UAAoB,CAC7B,EAAED,GAAQ,GACZD,EAAIJ,CAAO,CACb,EAEGK,GACMC,IAEPrB,EAAA,QAAQ,SAAUA,EAAK,CACrBR,EAAY,QAAQQ,EAAKkB,EAAO,OAAO,EAChCG,IAEFH,EAAA,cAAclB,EAAK,SAAUsB,EAAK,CACnCN,EAAOhB,CAAG,IACZe,IACAE,EAAKK,CAAG,GAEDD,KACRA,CAAQ,CACb,CACD,CACH,CAAA,EACC,CACD,IAAK,iBACL,MAAO,SAAwB5B,EAAK8B,EAAYP,EAAQ,CACtD,OAAO,SAAS,mBAAmBvB,EAAK8B,EAAYP,EAAQ,EAAK,CACnE,CAAA,EACC,CACD,IAAK,yBACL,MAAO,SAAgCQ,EAAU,CAC/C,OAAO,IAAIhC,EAAYgC,EAAS,cAAc,MAAM,EAAG,KAAK,OAAO,CACrE,CAAA,EACC,CACD,IAAK,oBACL,MAAO,SAA2BC,EAAMC,EAAU1B,EAAK,CACrD,IAAI2B,EAAWF,EAAK,wBAAwBzB,CAAG,EAC3C4B,EAAO,KAAK,4BAChB,GAAID,EAAWC,EACb,GAAIF,IAAa,KAAM,CACrB,IAAIG,EAAWH,EAAS,wBAAwB1B,CAAG,EAC/C8B,EAAQ,KAAK,4BACjB,GAAID,EAAWC,EACN,MAAA,EACT,KAEO,OAAA,GAGJ,MAAA,EACT,CAAA,EACC,CACD,IAAK,kBACL,MAAO,SAAyBC,EAAK,CAC/B,IAAAL,EAAWK,EAAI,eACfN,EAAO,OACX,OAAIC,IAAa,KACfD,EAAOM,EAAI,WAEXN,EAAOM,EAAI,SAAc,GAAAA,EAAI,SAAS,EAEjC,CACL,SAAAL,EACA,KAAAD,CAAA,CAEJ,CAAA,EACC,CACD,IAAK,oBACL,MAAO,SAA2BA,EAAMC,EAAUM,EAAShC,EAAK,CAC1D,IAAAT,EAAM,GACNwB,EAAU,GAOd,OANIf,EAAA,QAAQ,SAAUiC,EAAShD,EAAG,CAC5BgD,EAAQ,MAAQD,IACZzC,EAAAN,EACN8B,EAAUkB,EAAQ,QACpB,CACD,EACG,KAAK,kBAAkBR,EAAMC,EAAUM,CAAO,GAC5CzC,IAAQ,IAAS,CAACwB,EACpBf,EAAI,KAAK,CACP,IAAKgC,EACL,QAAS,EAAA,CACV,EACQzC,IAAQ,IAAS,CAACwB,IACvBf,EAAAT,CAAG,EAAE,QAAU,IAEd,KAELA,IAAQ,IACVS,EAAI,KAAK,CACP,IAAKgC,EACL,QAAS,EAAA,CACV,EAEI,GACT,CAAA,EACC,CACD,IAAK,oBACL,MAAO,SAA2BhC,EAAKuB,EAAYW,EAAKC,EAAK,CAC3D,IAAIC,EAAS,KAETpC,EAAA,QAAQ,SAAUiC,EAAS,CACxBA,EAAQ,SACXG,EAAO,kBAAkBH,EAAQ,IAAK,SAAUX,EAAK,CACnDc,EAAO,uBAAuBd,CAAG,EAAE,YAAYC,EAAYW,EAAKC,CAAG,CAAA,CACpE,CACH,CACD,CACH,CAAA,EACC,CACD,IAAK,sBACL,MAAO,SAA6BZ,EAAY9B,EAAK4C,EAAQC,EAAUC,EAAQ,CAgB7E,QAfIC,EAAS,KAETT,EAAM,KAAK,eAAetC,EAAK8B,EAAYe,CAAQ,EACnDtC,EAAM,CAAA,EACNyC,EAAW,CAAC,EACZhB,EAAO,OACPC,EAAW,OACXgB,EAAgB,UAAyB,CACvC,IAAAC,EAAmBH,EAAO,gBAAgBT,CAAG,EAEjD,OAAAL,EAAWiB,EAAiB,SAC5BlB,EAAOkB,EAAiB,KAEjBlB,CAAA,EAEFiB,KACD,KAAK,SACF,KAAA,cAAcjD,EAAK,SAAUuC,EAAS,CACzC,OAAOQ,EAAO,kBAAkBf,EAAMC,EAAUM,EAAShC,CAAG,CAC9D,EAAG,SAAUsB,EAAK,CAChBkB,EAAO,uBAAuBlB,CAAG,EAAE,YAAYC,EAAY,SAAUqB,EAAS,CACrE,OAAAH,EAAS,KAAKG,CAAO,GAC3BN,CAAQ,CAAA,CACZ,EAEHG,EAAS,KAAKhB,CAAI,EAEXgB,EAAA,QAAQ,SAAUhB,EAAM,CAC/BY,EAAOZ,CAAI,CAAA,CACZ,EACG,KAAK,SACP,KAAK,kBAAkBzB,EAAKuB,EAAYc,EAAQC,CAAQ,EAEnDC,GACT,CAAA,EACC,CACD,IAAK,cACL,MAAO,SAAqBhB,EAAYN,EAAMD,EAAQ,CACpD,IAAI6B,EAAS,KAETjC,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,UAAY,CAAA,EAEvFb,EAAW,KAAK,cAChBqB,EAAOrB,EAAS,OACfqB,GACER,IAEEb,EAAA,QAAQ,SAAUN,EAAK,CAC1B,IAAAqD,EAAQ,UAAiB,CAC3BD,EAAO,oBAAoBtB,EAAY9B,EAAKwB,EAAMD,EAAQ,UAAY,CAChE,EAAEI,GAAQ,GACPR,GACP,CACD,CAAA,EAECiC,EAAO,QACFA,EAAA,eAAepD,EAAKqD,CAAK,EAE1BA,GACR,CACD,CACH,CACD,CAAA,EAAG,CAAC,CACH,IAAK,UACL,MAAO,SAAiBC,EAASC,EAAU,CACzC,IAAIC,EAAY,OAAOD,GAAa,SAAW,CAACA,CAAQ,EAAIA,EACxDE,EAAKH,EAAQ,SAAWA,EAAQ,iBAAmBA,EAAQ,mBAAqBA,EAAQ,oBAAsBA,EAAQ,kBAAoBA,EAAQ,sBACtJ,GAAIG,EAAI,CACN,IAAIC,EAAQ,GACF,OAAAF,EAAA,MAAM,SAAUG,EAAK,CAC7B,OAAIF,EAAG,KAAKH,EAASK,CAAG,GACdD,EAAA,GACD,IAEF,EAAA,CACR,EACMA,CAAA,KAEA,OAAA,EAEX,CACD,CAAA,CAAC,EACK3D,CAAA,IAGL6D,EAAS,UAAY,CACvB,SAASC,EAAK7D,EAAK,CACjBf,EAAe,KAAM4E,CAAI,EAEzB,KAAK,IAAM7D,EACX,KAAK,GAAK,GACN,IAAA8D,EAAK,OAAO,UAAU,WACtBA,EAAG,QAAQ,MAAM,EAAI,IAAMA,EAAG,QAAQ,SAAS,EAAI,MACrD,KAAK,GAAK,GAEd,CAEA,OAAA1E,EAAYyE,EAAM,CAAC,CACjB,IAAK,MACL,MAAO,SAAaE,EAAK,CACnB,IAAAC,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,QAE5EC,EAAM,KAAK,IAAI,IACd,KAAK,IAAI,QAGT,OAAOA,EAAQ,IAAc,YAAclF,EAAQkF,CAAG,KAAO,UAAY,OAAOA,EAAID,CAAK,GAAM,YAClGC,EAAID,CAAK,EAAE,YAAcD,CAAG,CAEhC,CAAA,EACC,CACD,IAAK,YACL,MAAO,SAAmBG,EAAK,CACtB,OAAAA,EAAI,QAAQ,sCAAuC,MAAM,CAClE,CAAA,EACC,CACD,IAAK,eACL,MAAO,SAAsBA,EAAK,CAC5B,OAAA,KAAK,IAAI,YAAc,aACnBA,EAAA,KAAK,qBAAqBA,CAAG,GAE/BA,EAAA,KAAK,UAAUA,CAAG,EACpB,OAAO,KAAK,KAAK,IAAI,QAAQ,EAAE,SAC3BA,EAAA,KAAK,qBAAqBA,CAAG,IAEjC,KAAK,IAAI,eAAiB,KAAK,IAAI,kBAAkB,UACjDA,EAAA,KAAK,yBAAyBA,CAAG,GAErC,KAAK,IAAI,aACLA,EAAA,KAAK,uBAAuBA,CAAG,GAEjCA,EAAA,KAAK,yBAAyBA,CAAG,GACnC,KAAK,IAAI,eAAiB,KAAK,IAAI,kBAAkB,UACjDA,EAAA,KAAK,oBAAoBA,CAAG,GAEhC,KAAK,IAAI,YAAc,aACnBA,EAAA,KAAK,sBAAsBA,CAAG,GAEhCA,EAAA,KAAK,qBAAqBA,CAAG,EAC5BA,CACT,CAAA,EACC,CACD,IAAK,uBACL,MAAO,SAA8BA,EAAK,CACxC,IAAIC,EAAM,KAAK,IAAI,SACfC,EAAO,KAAK,IAAI,cAAgB,GAAK,IACrCC,EAAoB,KAAK,IAAI,eAAiB,KAAK,IAAI,kBAAkB,OAAS,KAAO,GAC7F,QAASC,KAASH,EACZ,GAAAA,EAAI,eAAeG,CAAK,EAAG,CAC7B,IAAIC,EAAQJ,EAAIG,CAAK,EACjBE,EAAK,KAAK,IAAI,YAAc,WAAa,KAAK,qBAAqBF,CAAK,EAAI,KAAK,UAAUA,CAAK,EAChGG,EAAK,KAAK,IAAI,YAAc,WAAa,KAAK,qBAAqBF,CAAK,EAAI,KAAK,UAAUA,CAAK,EAChGC,IAAO,IAAMC,IAAO,KACtBP,EAAMA,EAAI,QAAQ,IAAI,OAAO,IAAM,KAAK,UAAUM,CAAE,EAAI,IAAM,KAAK,UAAUC,CAAE,EAAI,IAAK,KAAOL,CAAI,EAAGC,GAAqB,IAAM,KAAK,gBAAgBG,CAAE,EAAI,MAAQ,KAAK,gBAAgBC,CAAE,EAAI,KAAOJ,CAAiB,EAE3N,CAEK,OAAAH,CACT,CAAA,EACC,CACD,IAAK,kBACL,MAAO,SAAyBA,EAAK,CACnC,OAAI,KAAK,IAAI,eAAiB,KAAK,IAAI,kBAAkB,UACjDA,EAAA,KAAK,yBAAyBA,CAAG,GAElCA,CACT,CAAA,EACC,CACD,IAAK,uBACL,MAAO,SAA8BA,EAAK,CACxC,OAAAA,EAAMA,EAAI,QAAQ,aAAc,SAAUQ,EAAK,CAC7C,OAAOA,EAAI,OAAO,CAAC,IAAM,KAAO,IAAM,GAAA,CACvC,EACMR,EAAI,QAAQ,aAAc,SAAUQ,EAAK,CAC9C,OAAOA,EAAI,OAAO,CAAC,IAAM,KAAO,IAAM,GAAA,CACvC,CACH,CAAA,EACC,CACD,IAAK,wBACL,MAAO,SAA+BR,EAAK,CACrC,IAAAS,EAAS,KAAK,IAAI,YAAc,aAC7B,OAAAT,EAAI,QAAQ,UAAWS,EAAS,YAAc,MAAM,EAAE,QAAQ,UAAWA,EAAS,aAAe,MAAM,CAChH,CAAA,EACC,CACD,IAAK,2BACL,MAAO,SAAkCT,EAAK,CAC5C,OAAOA,EAAI,QAAQ,YAAa,SAAUQ,EAAKE,EAAMC,EAAU,CAC7D,IAAIC,EAAWD,EAAS,OAAOD,EAAO,CAAC,EACvC,MAAI,UAAU,KAAKE,CAAQ,GAAKA,IAAa,GACpCJ,EAEAA,EAAM,IACf,CACD,CACH,CAAA,EACC,CACD,IAAK,sBACL,MAAO,SAA6BR,EAAK,CACvC,IAAIa,EAAS,CAAA,EACTC,EAAoB,KAAK,IAAI,kBACjC,OAAI,MAAM,QAAQA,CAAiB,GAAKA,EAAkB,QACxDD,EAAO,KAAK,KAAK,UAAUC,EAAkB,KAAK,EAAE,CAAC,CAAC,EAEpD,KAAK,IAAI,eACXD,EAAO,KAAK,8BAA8B,EAErCA,EAAO,OAASb,EAAI,MAAM,SAAS,EAAE,KAAK,IAAMa,EAAO,KAAK,EAAE,EAAI,IAAI,EAAIb,CACnF,CAAA,EACC,CACD,IAAK,yBACL,MAAO,SAAgCA,EAAK,CACtC,IAAAE,EAAO,KAAK,IAAI,cAAgB,GAAK,IACrCa,EAAM,KAAK,IAAI,cAAgB,CAAC,yBAA0B,yBAA0B,OAAQ,OAAQ,MAAO,MAAO,mBAAoB,mBAAoB,YAAa,YAAa,KAAM,KAAM,OAAQ,OAAQ,wBAAyB,wBAAyB,KAAM,KAAM,QAAS,QAAS,OAAQ,OAAQ,mBAAoB,mBAAoB,UAAW,UAAW,OAAQ,MAAM,EAAI,CAAC,+CAAgD,WAAY,SAAU,mCAAoC,qBAAsB,OAAQ,WAAY,6CAA8C,OAAQ,aAAc,WAAY,mCAAoC,iBAAkB,UAAU,EACrqB3D,EAAU,CAAA,EACd,OAAA4C,EAAI,MAAM,EAAE,EAAE,QAAQ,SAAUgB,EAAI,CAC9BD,EAAA,MAAM,SAAUA,EAAK,CACvB,GAAIA,EAAI,QAAQC,CAAE,IAAM,GAAI,CAC1B,GAAI5D,EAAQ,QAAQ2D,CAAG,EAAI,GAClB,MAAA,GAETf,EAAMA,EAAI,QAAQ,IAAI,OAAO,IAAMe,EAAM,IAAK,KAAOb,CAAI,EAAG,IAAMa,EAAM,GAAG,EAC3E3D,EAAQ,KAAK2D,CAAG,CAClB,CACO,MAAA,EAAA,CACR,CAAA,CACF,EACMf,CACT,CAAA,EACC,CACD,IAAK,2BACL,MAAO,SAAkCA,EAAK,CACrC,OAAAA,EAAI,QAAQ,WAAY,QAAQ,CACzC,CAAA,EACC,CACD,IAAK,uBACL,MAAO,SAA8BA,EAAK,CACxC,IAAInD,EAAQ,KAERoE,EAAQ,uCACRC,EAAM,KAAK,IAAI,SACfV,EAAM,OAAOU,GAAQ,SAAWA,EAAMA,EAAI,MAC1CC,EAAK,OAAOD,GAAQ,SAAW,CAAK,EAAAA,EAAI,SACxCE,EAAS,GAIb,OAHGD,EAAA,QAAQ,SAAUE,EAAS,CAClBD,GAAA,IAAMvE,EAAM,UAAUwE,CAAO,CAAA,CACxC,EACOb,EAAK,CACX,IAAK,YACL,QACE,MAAO,MAAQR,EAAM,IACvB,IAAK,gBACH,OAAAoB,EAAS,OAASA,GAAkB,KAAK,UAAUH,CAAK,GACjD,QAAUG,EAAS,KAAOpB,EAAM,KAAOoB,EAAS,MACzD,IAAK,UACH,MAAO,SAAWA,EAAS,KAAOpB,EAAM,YAAcoB,EAAS,GACnE,CACF,CAAA,EACC,CACD,IAAK,uBACL,MAAO,SAA8BE,EAAI,CACvC,IAAIpE,EAAS,KAETqE,EAAQ,CAAA,EACT,OAAAD,EAAA,QAAQ,SAAUE,EAAI,CAClBtE,EAAO,IAAI,mBAKdsE,EAAG,MAAM,GAAG,EAAE,QAAQ,SAAUC,EAAY,CACtCA,EAAW,QAAUF,EAAM,QAAQE,CAAU,IAAM,IACrDF,EAAM,KAAKE,CAAU,CACvB,CACD,EARGD,EAAG,QAAUD,EAAM,QAAQC,CAAE,IAAM,IACrCD,EAAM,KAAKC,CAAE,CAQjB,CACD,EACM,CACL,SAAYD,EAAM,KAAK,SAAU,EAAGG,EAAG,CAC9B,OAAAA,EAAE,OAAS,EAAE,MAAA,CACrB,EACD,OAAUH,EAAM,MAAA,CAEpB,CAAA,EACC,CACD,IAAK,YACL,MAAO,SAAmBlB,EAAO,CAC/B,OAAO,OAAO,WAAWA,CAAK,CAAC,GAAKA,CACtC,CAAA,EACC,CACD,IAAK,cACL,MAAO,SAAqBsB,EAAO,CACjC,IAAIpE,EAAS,KAEb,GAAI,CAAC,MAAM,QAAQoE,CAAK,GAAK,OAAO,UAAU,SAAS,KAAKA,EAAM,CAAC,CAAC,IAAM,kBACxE,YAAK,IAAI,mDAAmD,EACvD,KAAA,IAAI,QAAQA,CAAK,EACf,GAET,IAAIJ,EAAQ,CAAA,EACRK,EAAO,EACL,OAAAD,EAAA,KAAK,SAAUE,EAAGH,EAAG,CAClB,OAAAG,EAAE,MAAQH,EAAE,KAAA,CACpB,EAAE,QAAQ,SAAUI,EAAM,CACzB,IAAIC,EAAwBxE,EAAO,2BAA2BuE,EAAMF,CAAI,EACpEI,EAAQD,EAAsB,MAC9BvE,EAAMuE,EAAsB,IAC5BE,EAAQF,EAAsB,MAE9BE,IACFH,EAAK,MAAQE,EACbF,EAAK,OAAStE,EAAMwE,EACpBT,EAAM,KAAKO,CAAI,EACRF,EAAApE,EACT,CACD,EACM+D,CACT,CAAA,EACC,CACD,IAAK,6BACL,MAAO,SAAoCW,EAAON,EAAM,CACtD,IAAII,EAAQ,OACRxE,EAAM,OACNyE,EAAQ,GACZ,OAAIC,GAAS,OAAOA,EAAM,MAAU,KAC1BF,EAAA,SAASE,EAAM,MAAO,EAAE,EAChC1E,EAAMwE,EAAQ,SAASE,EAAM,OAAQ,EAAE,EACnC,KAAK,UAAUA,EAAM,KAAK,GAAK,KAAK,UAAUA,EAAM,MAAM,GAAK1E,EAAMoE,EAAO,GAAKpE,EAAMwE,EAAQ,EACzFC,EAAA,IAER,KAAK,IAAI,2CAA6C,GAAK,KAAK,UAAUC,CAAK,EAAE,EAC5E,KAAA,IAAI,QAAQA,CAAK,KAGxB,KAAK,IAAI,2BAA6B,KAAK,UAAUA,CAAK,CAAC,EACtD,KAAA,IAAI,QAAQA,CAAK,GAEjB,CACL,MAAAF,EACA,IAAAxE,EACA,MAAAyE,CAAA,CAEJ,CAAA,EACC,CACD,IAAK,wBACL,MAAO,SAA+BC,EAAOC,EAAgBC,EAAQ,CACnE,IAAI5E,EAAM,OACNyE,EAAQ,GACRI,EAAMD,EAAO,OACbE,EAASH,EAAiBE,EAC1BL,EAAQ,SAASE,EAAM,MAAO,EAAE,EAAII,EAChC,OAAAN,EAAAA,EAAQK,EAAMA,EAAML,EAC5BxE,EAAMwE,EAAQ,SAASE,EAAM,OAAQ,EAAE,EACnC1E,EAAM6E,IACF7E,EAAA6E,EACD,KAAA,IAAI,mDAAqDA,CAAG,GAE/DL,EAAQ,GAAKxE,EAAMwE,EAAQ,GAAKA,EAAQK,GAAO7E,EAAM6E,GAC/CJ,EAAA,GACR,KAAK,IAAI,kBAAoB,KAAK,UAAUC,CAAK,CAAC,EAC7C,KAAA,IAAI,QAAQA,CAAK,GACbE,EAAO,UAAUJ,EAAOxE,CAAG,EAAE,QAAQ,OAAQ,EAAE,IAAM,KACtDyE,EAAA,GACR,KAAK,IAAI,mCAAqC,KAAK,UAAUC,CAAK,CAAC,EAC9D,KAAA,IAAI,QAAQA,CAAK,GAEjB,CACL,MAAAF,EACA,IAAAxE,EACA,MAAAyE,CAAA,CAEJ,CAAA,EACC,CACD,IAAK,eACL,MAAO,SAAsBM,EAAI,CAC/B,IAAI9D,EAAS,KAET+B,EAAM,GACNgC,EAAQ,GACZ,KAAK,SAAS,YAAY,WAAW,UAAW,SAAU1E,EAAM,CAC9D0E,EAAM,KAAK,CACT,MAAOhC,EAAI,OACX,KAAMA,GAAO1C,EAAK,aAAa,OAC/B,KAAAA,CAAA,CACD,CACH,EAAG,SAAUA,EAAM,CACjB,OAAIW,EAAO,eAAeX,EAAK,UAAU,EAChC,WAAW,cAEX,WAAW,aACpB,EACC,UAAY,CACVyE,EAAA,CACD,MAAO/B,EACP,MAAAgC,CAAA,CACD,CAAA,CACF,CACH,CAAA,EACC,CACD,IAAK,iBACL,MAAO,SAAwBC,EAAI,CACjC,OAAO5G,EAAY,QAAQ4G,EAAI,KAAK,IAAI,QAAQ,OAAO,CAAC,SAAU,QAAS,QAAS,OAAQ,MAAM,CAAC,CAAC,CACtG,CAAA,EACC,CACD,IAAK,sBACL,MAAO,SAA6B3E,EAAMkE,EAAOxE,EAAK,CACpD,IAAIkF,EAAO,KAAK,IAAI,QAAmB,KAAK,IAAI,QAAlB,OAC1BC,EAAY7E,EAAK,UAAUkE,CAAK,EAChCY,EAAMD,EAAU,UAAUnF,EAAMwE,CAAK,EACrCa,EAAO,SAAS,cAAcH,CAAG,EAChC,OAAAG,EAAA,aAAa,cAAe,MAAM,EACnC,KAAK,IAAI,WACXA,EAAK,aAAa,QAAS,KAAK,IAAI,SAAS,EAE/CA,EAAK,YAAcF,EAAU,YACnBA,EAAA,WAAW,aAAaE,EAAMF,CAAS,EAC1CC,CACT,CAAA,EACC,CACD,IAAK,4BACL,MAAO,SAAmCE,EAAMd,EAAOxE,EAAKmB,EAAUD,EAAQ,CAC5E,IAAIG,EAAS,KAEbiE,EAAK,MAAM,MAAM,SAAUC,EAAGzH,EAAG,CAC/B,IAAI0H,EAAOF,EAAK,MAAMxH,EAAI,CAAC,EAC3B,GAAI,OAAO0H,EAAS,KAAeA,EAAK,MAAQhB,EAAO,CACrD,GAAI,CAACrD,EAASoE,EAAE,IAAI,EACX,MAAA,GAEL,IAAAE,EAAIjB,EAAQe,EAAE,MACdG,GAAK1F,EAAMuF,EAAE,IAAMA,EAAE,IAAMvF,GAAOuF,EAAE,MACpCI,EAAWL,EAAK,MAAM,OAAO,EAAGC,EAAE,KAAK,EACvCK,EAASN,EAAK,MAAM,OAAOI,EAAIH,EAAE,KAAK,EAatC,GAZJA,EAAE,KAAOlE,EAAO,oBAAoBkE,EAAE,KAAME,EAAGC,CAAC,EAChDJ,EAAK,MAAQK,EAAWC,EACxBN,EAAK,MAAM,QAAQ,SAAUO,EAAGC,EAAG,CAC7BA,GAAKhI,IACHwH,EAAK,MAAMQ,CAAC,EAAE,MAAQ,GAAKA,IAAMhI,IAC9BwH,EAAA,MAAMQ,CAAC,EAAE,OAASJ,GAEpBJ,EAAA,MAAMQ,CAAC,EAAE,KAAOJ,EACvB,CACD,EACM1F,GAAA0F,EACPxE,EAAOqE,EAAE,KAAK,gBAAiBA,EAAE,KAAK,EAClCvF,EAAMuF,EAAE,IACVf,EAAQe,EAAE,QAEH,OAAA,EAEX,CACO,MAAA,EAAA,CACR,CACH,CAAA,EACC,CACD,IAAK,cACL,MAAO,SAAqBQ,EAAOC,EAAc7E,EAAUD,EAAQ+E,EAAO,CACxE,IAAIvE,EAAS,KAETwE,EAAWF,IAAiB,EAAI,EAAIA,EAAe,EAClD,KAAA,aAAa,SAAUV,EAAM,CAC3BA,EAAA,MAAM,QAAQ,SAAUhF,EAAM,CACjCA,EAAOA,EAAK,KAEJ,QADJ0B,EAAQ,QACJA,EAAQ+D,EAAM,KAAKzF,EAAK,WAAW,KAAO,MAAQ0B,EAAMkE,CAAQ,IAAM,IAC5E,GAAK/E,EAASa,EAAMkE,CAAQ,EAAG5F,CAAI,EAGnC,KAAI6F,EAAMnE,EAAM,MAChB,GAAIkE,IAAa,EACf,QAASpI,EAAI,EAAGA,EAAIoI,EAAUpI,IACrBqI,GAAAnE,EAAMlE,CAAC,EAAE,OAGbwC,EAAAoB,EAAO,oBAAoBpB,EAAM6F,EAAKA,EAAMnE,EAAMkE,CAAQ,EAAE,MAAM,EACzEhF,EAAOZ,EAAK,eAAe,EAC3ByF,EAAM,UAAY,EACpB,CACD,EACKE,GAAA,CACP,CACH,CAAA,EACC,CACD,IAAK,4BACL,MAAO,SAAmCF,EAAOC,EAAc7E,EAAUD,EAAQ+E,EAAO,CACtF,IAAIG,EAAS,KAETF,EAAWF,IAAiB,EAAI,EAAIA,EAAe,EAClD,KAAA,aAAa,SAAUV,EAAM,CAExB,QADJtD,EAAQ,QACJA,EAAQ+D,EAAM,KAAKT,EAAK,KAAK,KAAO,MAAQtD,EAAMkE,CAAQ,IAAM,IAAI,CAC1E,IAAI1B,EAAQxC,EAAM,MAClB,GAAIkE,IAAa,EACf,QAASpI,EAAI,EAAGA,EAAIoI,EAAUpI,IACnB0G,GAAAxC,EAAMlE,CAAC,EAAE,OAGtB,IAAIkC,EAAMwE,EAAQxC,EAAMkE,CAAQ,EAAE,OAClCE,EAAO,0BAA0Bd,EAAMd,EAAOxE,EAAK,SAAUM,EAAM,CACjE,OAAOa,EAASa,EAAMkE,CAAQ,EAAG5F,CAAI,CAAA,EACpC,SAAUA,EAAM+F,EAAW,CAC5BN,EAAM,UAAYM,EAClBnF,EAAOZ,CAAI,CAAA,CACZ,CACH,CACM2F,GAAA,CACP,CACH,CAAA,EACC,CACD,IAAK,qBACL,MAAO,SAA4BK,EAAQnF,EAAUD,EAAQ+E,EAAO,CAClE,IAAIM,EAAS,KAER,KAAA,aAAa,SAAUjB,EAAM,CAC5B,IAAAX,EAAiBW,EAAK,MAAM,OACzBgB,EAAA,QAAQ,SAAU5B,EAAO8B,EAAS,CACvC,IAAIC,EAAwBF,EAAO,sBAAsB7B,EAAOC,EAAgBW,EAAK,KAAK,EACtFd,EAAQiC,EAAsB,MAC9BzG,EAAMyG,EAAsB,IAC5BhC,EAAQgC,EAAsB,MAE9BhC,GACF8B,EAAO,0BAA0BjB,EAAMd,EAAOxE,EAAK,SAAUM,EAAM,CAC1D,OAAAa,EAASb,EAAMoE,EAAOY,EAAK,MAAM,UAAUd,EAAOxE,CAAG,EAAGwG,CAAO,CACxE,EAAG,SAAUlG,EAAM,CACjBY,EAAOZ,EAAMoE,CAAK,CAAA,CACnB,CACH,CACD,EACKuB,GAAA,CACP,CACH,CAAA,EACC,CACD,IAAK,gBACL,MAAO,SAAuB3F,EAAM,CAGlC,QAFIoG,EAASpG,EAAK,WACdqG,EAAU,SAAS,yBAChBrG,EAAK,YACVqG,EAAQ,YAAYrG,EAAK,YAAYA,EAAK,UAAU,CAAC,EAEhDoG,EAAA,aAAaC,EAASrG,CAAI,EAC5B,KAAK,GAGR,KAAK,kBAAkBoG,CAAM,EAF7BA,EAAO,UAAU,CAIrB,CAAA,EACC,CACD,IAAK,oBACL,MAAO,SAA2BpG,EAAM,CACtC,GAAKA,EAGD,IAAAA,EAAK,WAAa,EACpB,KAAOA,EAAK,aAAeA,EAAK,YAAY,WAAa,GAClDA,EAAA,WAAaA,EAAK,YAAY,UAC9BA,EAAA,WAAW,YAAYA,EAAK,WAAW,OAGzC,KAAA,kBAAkBA,EAAK,UAAU,EAEnC,KAAA,kBAAkBA,EAAK,WAAW,EACzC,CAAA,EACC,CACD,IAAK,aACL,MAAO,SAAoBsG,EAAQC,EAAK,CACtC,IAAIC,EAAS,KAEb,KAAK,IAAMD,EACN,KAAA,IAAI,8BAAgCD,EAAS,GAAG,EACjD,IAAAG,EAAe,EACfhF,EAAK,cACLb,EAAS,SAAgBU,EAAS,CACpCmF,IACOD,EAAA,IAAI,KAAKlF,CAAO,CAAA,EAErB,KAAK,IAAI,iBACNG,EAAA,6BAEF,KAAAA,CAAE,EAAE6E,EAAQ,KAAK,IAAI,aAAc,SAAU5E,EAAO1B,EAAM,CAC7D,OAAOwG,EAAO,IAAI,OAAOxG,EAAM0B,EAAO+E,CAAY,CACpD,EAAG7F,EAAQ,UAAY,CACjB6F,IAAiB,GACZD,EAAA,IAAI,QAAQF,CAAM,EAEpBE,EAAA,IAAI,KAAKC,CAAY,CAAA,CAC7B,CACH,CAAA,EACC,CACD,IAAK,OACL,MAAO,SAAcjD,EAAI+C,EAAK,CAC5B,IAAIG,EAAU,KAEd,KAAK,IAAMH,EACP,IAAAE,EAAe,EACfhF,EAAK,cAELkF,EAAwB,KAAK,qBAAqB,OAAOnD,GAAO,SAAW,CAACA,CAAE,EAAIA,CAAE,EACpFoD,EAAQD,EAAsB,SAC9BE,EAAWF,EAAsB,OACjCvE,EAAO,KAAK,IAAI,cAAgB,GAAK,IACrC0E,EAAU,SAASA,EAAQpD,EAAI,CAC7B,IAAA+B,EAAQ,IAAI,OAAOiB,EAAQ,aAAahD,CAAE,EAAG,KAAOtB,CAAI,EACxD2E,EAAU,EACNL,EAAA,IAAI,8BAAgCjB,EAAQ,GAAG,EACvDiB,EAAQjF,CAAE,EAAEgE,EAAO,EAAG,SAAUuB,EAAMhH,EAAM,CAC1C,OAAO0G,EAAQ,IAAI,OAAO1G,EAAM0D,EAAI+C,EAAcM,CAAO,CAC3D,EAAG,SAAUzF,EAAS,CACpByF,IACAN,IACQC,EAAA,IAAI,KAAKpF,CAAO,CAAA,EACvB,UAAY,CACTyF,IAAY,GACNL,EAAA,IAAI,QAAQhD,CAAE,EAEpBkD,EAAMC,EAAW,CAAC,IAAMnD,EAClBgD,EAAA,IAAI,KAAKD,CAAY,EAE7BK,EAAQF,EAAMA,EAAM,QAAQlD,CAAE,EAAI,CAAC,CAAC,CACtC,CACD,CAAA,EAGC,KAAK,IAAI,iBACNjC,EAAA,6BAEHoF,IAAa,EACV,KAAA,IAAI,KAAKJ,CAAY,EAElBK,EAAAF,EAAM,CAAC,CAAC,CAEpB,CAAA,EACC,CACD,IAAK,aACL,MAAO,SAAoBK,EAAWV,EAAK,CACzC,IAAIW,EAAU,KAEd,KAAK,IAAMX,EACX,IAAIE,EAAe,EACfT,EAAS,KAAK,YAAYiB,CAAS,EACnCjB,GAAUA,EAAO,QACnB,KAAK,IAAI,+CAAiD,KAAK,UAAUA,CAAM,CAAC,EAChF,KAAK,mBAAmBA,EAAQ,SAAUhG,EAAMoE,EAAO1C,EAAOwE,EAAS,CACrE,OAAOgB,EAAQ,IAAI,OAAOlH,EAAMoE,EAAO1C,EAAOwE,CAAO,CAAA,EACpD,SAAU5E,EAAS8C,EAAO,CAC3BqC,IACQS,EAAA,IAAI,KAAK5F,EAAS8C,CAAK,CAAA,EAC9B,UAAY,CACL8C,EAAA,IAAI,KAAKT,CAAY,CAAA,CAC9B,GAEI,KAAA,IAAI,KAAKA,CAAY,CAE9B,CAAA,EACC,CACD,IAAK,SACL,MAAO,SAAgBF,EAAK,CAC1B,IAAIY,EAAU,KAEd,KAAK,IAAMZ,EACX,IAAI5E,EAAM,KAAK,IAAI,QAAU,KAAK,IAAI,QAAU,IACzCA,GAAA,gBACH,KAAK,IAAI,YACJA,GAAA,IAAM,KAAK,IAAI,WAEnB,KAAA,IAAI,qBAAuBA,EAAM,GAAG,EACzC,KAAK,SAAS,YAAY,WAAW,aAAc,SAAU3B,EAAM,CACjEmH,EAAQ,cAAcnH,CAAI,CAC5B,EAAG,SAAUA,EAAM,CACb,IAAAoH,EAAarJ,EAAY,QAAQiC,EAAM2B,CAAG,EAC1C0F,EAAiBF,EAAQ,eAAenH,CAAI,EAC5C,MAAA,CAACoH,GAAcC,EACV,WAAW,cAEX,WAAW,aACpB,EACC,KAAK,IAAI,IAAI,CAClB,CAAA,EACC,CACD,IAAK,MACL,IAAK,SAAgB3E,EAAK,CACnB,KAAA,KAAO9E,EAAS,GAAI,CACvB,QAAW,GACX,UAAa,GACb,QAAW,CAAC,EACZ,QAAW,GACX,eAAkB,IAClB,mBAAsB,GACtB,WAAc,GACd,SAAY,CAAC,EACb,SAAY,YACZ,eAAkB,GAClB,cAAiB,GACjB,cAAiB,GACjB,aAAgB,EAChB,kBAAqB,CAAC,EACtB,UAAa,WACb,KAAQ,UAAgB,CAAC,EACzB,QAAW,UAAmB,CAAC,EAC/B,OAAU,UAAkB,CACnB,MAAA,EACT,EACA,KAAQ,UAAgB,CAAC,EACzB,MAAS,GACT,IAAO,OAAO,SACb8E,CAAG,CACR,EACA,IAAK,UAAkB,CACrB,OAAO,KAAK,IACd,CAAA,EACC,CACD,IAAK,WACL,IAAK,UAAkB,CACrB,OAAO,IAAI3E,EAAY,KAAK,IAAK,KAAK,IAAI,QAAS,KAAK,IAAI,QAAS,KAAK,IAAI,cAAc,CAC9F,CACD,CAAA,CAAC,EACK8D,CAAA,IAGT,SAASA,EAAK7D,EAAK,CACjB,IAAIe,EAAQ,KAER7B,EAAW,IAAI0E,EAAO5D,CAAG,EACxB,YAAA,KAAO,SAAUwF,EAAI+C,EAAK,CACpB,OAAArJ,EAAA,KAAKsG,EAAI+C,CAAG,EACdxH,CAAA,EAEJ,KAAA,WAAa,SAAUyE,EAAI+C,EAAK,CAC1B,OAAArJ,EAAA,WAAWsG,EAAI+C,CAAG,EACpBxH,CAAA,EAEJ,KAAA,WAAa,SAAUyE,EAAI+C,EAAK,CAC1B,OAAArJ,EAAA,WAAWsG,EAAI+C,CAAG,EACpBxH,CAAA,EAEJ,KAAA,OAAS,SAAUwH,EAAK,CAC3B,OAAArJ,EAAS,OAAOqJ,CAAG,EACZxH,CAAA,EAEF,IACT,CAEO,OAAA8C,CAEP,CAAE","x_google_ignoreList":[0]}