{"version":3,"file":"timeline-definition-Z64GVDOM-BuEzRggx.chunk.mjs","sources":["../node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-Z64GVDOM.mjs"],"sourcesContent":["import {\n  selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n  parseFontSize\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n  clear,\n  commonDb_exports,\n  getConfig,\n  getConfig2,\n  setupGraphViewbox\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n  log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n  __export,\n  __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/timeline/parser/timeline.jison\nvar parser = (function() {\n  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n    for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n    return o2;\n  }, \"o\"), $V0 = [6, 11, 13, 14, 15, 17, 19, 20, 23, 24], $V1 = [1, 12], $V2 = [1, 13], $V3 = [1, 14], $V4 = [1, 15], $V5 = [1, 16], $V6 = [1, 19], $V7 = [1, 20];\n  var parser2 = {\n    trace: /* @__PURE__ */ __name(function trace() {\n    }, \"trace\"),\n    yy: {},\n    symbols_: { \"error\": 2, \"start\": 3, \"timeline_header\": 4, \"document\": 5, \"EOF\": 6, \"timeline\": 7, \"timeline_lr\": 8, \"timeline_td\": 9, \"line\": 10, \"SPACE\": 11, \"statement\": 12, \"NEWLINE\": 13, \"title\": 14, \"acc_title\": 15, \"acc_title_value\": 16, \"acc_descr\": 17, \"acc_descr_value\": 18, \"acc_descr_multiline_value\": 19, \"section\": 20, \"period_statement\": 21, \"event_statement\": 22, \"period\": 23, \"event\": 24, \"$accept\": 0, \"$end\": 1 },\n    terminals_: { 2: \"error\", 6: \"EOF\", 7: \"timeline\", 8: \"timeline_lr\", 9: \"timeline_td\", 11: \"SPACE\", 13: \"NEWLINE\", 14: \"title\", 15: \"acc_title\", 16: \"acc_title_value\", 17: \"acc_descr\", 18: \"acc_descr_value\", 19: \"acc_descr_multiline_value\", 20: \"section\", 23: \"period\", 24: \"event\" },\n    productions_: [0, [3, 3], [4, 1], [4, 1], [4, 1], [5, 0], [5, 2], [10, 2], [10, 1], [10, 1], [10, 1], [12, 1], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [21, 1], [22, 1]],\n    performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n      var $0 = $$.length - 1;\n      switch (yystate) {\n        case 1:\n          return $$[$0 - 1];\n          break;\n        case 3:\n          yy.setDirection(\"LR\");\n          break;\n        case 4:\n          yy.setDirection(\"TD\");\n          break;\n        case 5:\n          this.$ = [];\n          break;\n        case 6:\n          $$[$0 - 1].push($$[$0]);\n          this.$ = $$[$0 - 1];\n          break;\n        case 7:\n        case 8:\n          this.$ = $$[$0];\n          break;\n        case 9:\n        case 10:\n          this.$ = [];\n          break;\n        case 11:\n          yy.getCommonDb().setDiagramTitle($$[$0].substr(6));\n          this.$ = $$[$0].substr(6);\n          break;\n        case 12:\n          this.$ = $$[$0].trim();\n          yy.getCommonDb().setAccTitle(this.$);\n          break;\n        case 13:\n        case 14:\n          this.$ = $$[$0].trim();\n          yy.getCommonDb().setAccDescription(this.$);\n          break;\n        case 15:\n          yy.addSection($$[$0].substr(8));\n          this.$ = $$[$0].substr(8);\n          break;\n        case 18:\n          yy.addTask($$[$0], 0, \"\");\n          this.$ = $$[$0];\n          break;\n        case 19:\n          yy.addEvent($$[$0].substr(2));\n          this.$ = $$[$0];\n          break;\n      }\n    }, \"anonymous\"),\n    table: [{ 3: 1, 4: 2, 7: [1, 3], 8: [1, 4], 9: [1, 5] }, { 1: [3] }, o($V0, [2, 5], { 5: 6 }), o($V0, [2, 2]), o($V0, [2, 3]), o($V0, [2, 4]), { 6: [1, 7], 10: 8, 11: [1, 9], 12: 10, 13: [1, 11], 14: $V1, 15: $V2, 17: $V3, 19: $V4, 20: $V5, 21: 17, 22: 18, 23: $V6, 24: $V7 }, o($V0, [2, 10], { 1: [2, 1] }), o($V0, [2, 6]), { 12: 21, 14: $V1, 15: $V2, 17: $V3, 19: $V4, 20: $V5, 21: 17, 22: 18, 23: $V6, 24: $V7 }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 11]), { 16: [1, 22] }, { 18: [1, 23] }, o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 7]), o($V0, [2, 12]), o($V0, [2, 13])],\n    defaultActions: {},\n    parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n      if (hash.recoverable) {\n        this.trace(str);\n      } else {\n        var error = new Error(str);\n        error.hash = hash;\n        throw error;\n      }\n    }, \"parseError\"),\n    parse: /* @__PURE__ */ __name(function parse(input) {\n      var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n      var args = lstack.slice.call(arguments, 1);\n      var lexer2 = Object.create(this.lexer);\n      var sharedState = { yy: {} };\n      for (var k in this.yy) {\n        if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n          sharedState.yy[k] = this.yy[k];\n        }\n      }\n      lexer2.setInput(input, sharedState.yy);\n      sharedState.yy.lexer = lexer2;\n      sharedState.yy.parser = this;\n      if (typeof lexer2.yylloc == \"undefined\") {\n        lexer2.yylloc = {};\n      }\n      var yyloc = lexer2.yylloc;\n      lstack.push(yyloc);\n      var ranges = lexer2.options && lexer2.options.ranges;\n      if (typeof sharedState.yy.parseError === \"function\") {\n        this.parseError = sharedState.yy.parseError;\n      } else {\n        this.parseError = Object.getPrototypeOf(this).parseError;\n      }\n      function popStack(n) {\n        stack.length = stack.length - 2 * n;\n        vstack.length = vstack.length - n;\n        lstack.length = lstack.length - n;\n      }\n      __name(popStack, \"popStack\");\n      function lex() {\n        var token;\n        token = tstack.pop() || lexer2.lex() || EOF;\n        if (typeof token !== \"number\") {\n          if (token instanceof Array) {\n            tstack = token;\n            token = tstack.pop();\n          }\n          token = self.symbols_[token] || token;\n        }\n        return token;\n      }\n      __name(lex, \"lex\");\n      var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n      while (true) {\n        state = stack[stack.length - 1];\n        if (this.defaultActions[state]) {\n          action = this.defaultActions[state];\n        } else {\n          if (symbol === null || typeof symbol == \"undefined\") {\n            symbol = lex();\n          }\n          action = table[state] && table[state][symbol];\n        }\n        if (typeof action === \"undefined\" || !action.length || !action[0]) {\n          var errStr = \"\";\n          expected = [];\n          for (p in table[state]) {\n            if (this.terminals_[p] && p > TERROR) {\n              expected.push(\"'\" + this.terminals_[p] + \"'\");\n            }\n          }\n          if (lexer2.showPosition) {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n          } else {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n          }\n          this.parseError(errStr, {\n            text: lexer2.match,\n            token: this.terminals_[symbol] || symbol,\n            line: lexer2.yylineno,\n            loc: yyloc,\n            expected\n          });\n        }\n        if (action[0] instanceof Array && action.length > 1) {\n          throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n        }\n        switch (action[0]) {\n          case 1:\n            stack.push(symbol);\n            vstack.push(lexer2.yytext);\n            lstack.push(lexer2.yylloc);\n            stack.push(action[1]);\n            symbol = null;\n            if (!preErrorSymbol) {\n              yyleng = lexer2.yyleng;\n              yytext = lexer2.yytext;\n              yylineno = lexer2.yylineno;\n              yyloc = lexer2.yylloc;\n              if (recovering > 0) {\n                recovering--;\n              }\n            } else {\n              symbol = preErrorSymbol;\n              preErrorSymbol = null;\n            }\n            break;\n          case 2:\n            len = this.productions_[action[1]][1];\n            yyval.$ = vstack[vstack.length - len];\n            yyval._$ = {\n              first_line: lstack[lstack.length - (len || 1)].first_line,\n              last_line: lstack[lstack.length - 1].last_line,\n              first_column: lstack[lstack.length - (len || 1)].first_column,\n              last_column: lstack[lstack.length - 1].last_column\n            };\n            if (ranges) {\n              yyval._$.range = [\n                lstack[lstack.length - (len || 1)].range[0],\n                lstack[lstack.length - 1].range[1]\n              ];\n            }\n            r = this.performAction.apply(yyval, [\n              yytext,\n              yyleng,\n              yylineno,\n              sharedState.yy,\n              action[1],\n              vstack,\n              lstack\n            ].concat(args));\n            if (typeof r !== \"undefined\") {\n              return r;\n            }\n            if (len) {\n              stack = stack.slice(0, -1 * len * 2);\n              vstack = vstack.slice(0, -1 * len);\n              lstack = lstack.slice(0, -1 * len);\n            }\n            stack.push(this.productions_[action[1]][0]);\n            vstack.push(yyval.$);\n            lstack.push(yyval._$);\n            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n            stack.push(newState);\n            break;\n          case 3:\n            return true;\n        }\n      }\n      return true;\n    }, \"parse\")\n  };\n  var lexer = /* @__PURE__ */ (function() {\n    var lexer2 = {\n      EOF: 1,\n      parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n        if (this.yy.parser) {\n          this.yy.parser.parseError(str, hash);\n        } else {\n          throw new Error(str);\n        }\n      }, \"parseError\"),\n      // resets the lexer, sets new input\n      setInput: /* @__PURE__ */ __name(function(input, yy) {\n        this.yy = yy || this.yy || {};\n        this._input = input;\n        this._more = this._backtrack = this.done = false;\n        this.yylineno = this.yyleng = 0;\n        this.yytext = this.matched = this.match = \"\";\n        this.conditionStack = [\"INITIAL\"];\n        this.yylloc = {\n          first_line: 1,\n          first_column: 0,\n          last_line: 1,\n          last_column: 0\n        };\n        if (this.options.ranges) {\n          this.yylloc.range = [0, 0];\n        }\n        this.offset = 0;\n        return this;\n      }, \"setInput\"),\n      // consumes and returns one char from the input\n      input: /* @__PURE__ */ __name(function() {\n        var ch = this._input[0];\n        this.yytext += ch;\n        this.yyleng++;\n        this.offset++;\n        this.match += ch;\n        this.matched += ch;\n        var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n          this.yylineno++;\n          this.yylloc.last_line++;\n        } else {\n          this.yylloc.last_column++;\n        }\n        if (this.options.ranges) {\n          this.yylloc.range[1]++;\n        }\n        this._input = this._input.slice(1);\n        return ch;\n      }, \"input\"),\n      // unshifts one char (or a string) into the input\n      unput: /* @__PURE__ */ __name(function(ch) {\n        var len = ch.length;\n        var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n        this._input = ch + this._input;\n        this.yytext = this.yytext.substr(0, this.yytext.length - len);\n        this.offset -= len;\n        var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n        this.match = this.match.substr(0, this.match.length - 1);\n        this.matched = this.matched.substr(0, this.matched.length - 1);\n        if (lines.length - 1) {\n          this.yylineno -= lines.length - 1;\n        }\n        var r = this.yylloc.range;\n        this.yylloc = {\n          first_line: this.yylloc.first_line,\n          last_line: this.yylineno + 1,\n          first_column: this.yylloc.first_column,\n          last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n        };\n        if (this.options.ranges) {\n          this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n        }\n        this.yyleng = this.yytext.length;\n        return this;\n      }, \"unput\"),\n      // When called from action, caches matched text and appends it on next action\n      more: /* @__PURE__ */ __name(function() {\n        this._more = true;\n        return this;\n      }, \"more\"),\n      // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n      reject: /* @__PURE__ */ __name(function() {\n        if (this.options.backtrack_lexer) {\n          this._backtrack = true;\n        } else {\n          return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n            text: \"\",\n            token: null,\n            line: this.yylineno\n          });\n        }\n        return this;\n      }, \"reject\"),\n      // retain first n characters of the match\n      less: /* @__PURE__ */ __name(function(n) {\n        this.unput(this.match.slice(n));\n      }, \"less\"),\n      // displays already matched input, i.e. for error messages\n      pastInput: /* @__PURE__ */ __name(function() {\n        var past = this.matched.substr(0, this.matched.length - this.match.length);\n        return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n      }, \"pastInput\"),\n      // displays upcoming input, i.e. for error messages\n      upcomingInput: /* @__PURE__ */ __name(function() {\n        var next = this.match;\n        if (next.length < 20) {\n          next += this._input.substr(0, 20 - next.length);\n        }\n        return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n      }, \"upcomingInput\"),\n      // displays the character position where the lexing error occurred, i.e. for error messages\n      showPosition: /* @__PURE__ */ __name(function() {\n        var pre = this.pastInput();\n        var c = new Array(pre.length + 1).join(\"-\");\n        return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n      }, \"showPosition\"),\n      // test the lexed token: return FALSE when not a match, otherwise return token\n      test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n        var token, lines, backup;\n        if (this.options.backtrack_lexer) {\n          backup = {\n            yylineno: this.yylineno,\n            yylloc: {\n              first_line: this.yylloc.first_line,\n              last_line: this.last_line,\n              first_column: this.yylloc.first_column,\n              last_column: this.yylloc.last_column\n            },\n            yytext: this.yytext,\n            match: this.match,\n            matches: this.matches,\n            matched: this.matched,\n            yyleng: this.yyleng,\n            offset: this.offset,\n            _more: this._more,\n            _input: this._input,\n            yy: this.yy,\n            conditionStack: this.conditionStack.slice(0),\n            done: this.done\n          };\n          if (this.options.ranges) {\n            backup.yylloc.range = this.yylloc.range.slice(0);\n          }\n        }\n        lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n          this.yylineno += lines.length;\n        }\n        this.yylloc = {\n          first_line: this.yylloc.last_line,\n          last_line: this.yylineno + 1,\n          first_column: this.yylloc.last_column,\n          last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n        };\n        this.yytext += match[0];\n        this.match += match[0];\n        this.matches = match;\n        this.yyleng = this.yytext.length;\n        if (this.options.ranges) {\n          this.yylloc.range = [this.offset, this.offset += this.yyleng];\n        }\n        this._more = false;\n        this._backtrack = false;\n        this._input = this._input.slice(match[0].length);\n        this.matched += match[0];\n        token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n        if (this.done && this._input) {\n          this.done = false;\n        }\n        if (token) {\n          return token;\n        } else if (this._backtrack) {\n          for (var k in backup) {\n            this[k] = backup[k];\n          }\n          return false;\n        }\n        return false;\n      }, \"test_match\"),\n      // return next match in input\n      next: /* @__PURE__ */ __name(function() {\n        if (this.done) {\n          return this.EOF;\n        }\n        if (!this._input) {\n          this.done = true;\n        }\n        var token, match, tempMatch, index;\n        if (!this._more) {\n          this.yytext = \"\";\n          this.match = \"\";\n        }\n        var rules = this._currentRules();\n        for (var i = 0; i < rules.length; i++) {\n          tempMatch = this._input.match(this.rules[rules[i]]);\n          if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n            match = tempMatch;\n            index = i;\n            if (this.options.backtrack_lexer) {\n              token = this.test_match(tempMatch, rules[i]);\n              if (token !== false) {\n                return token;\n              } else if (this._backtrack) {\n                match = false;\n                continue;\n              } else {\n                return false;\n              }\n            } else if (!this.options.flex) {\n              break;\n            }\n          }\n        }\n        if (match) {\n          token = this.test_match(match, rules[index]);\n          if (token !== false) {\n            return token;\n          }\n          return false;\n        }\n        if (this._input === \"\") {\n          return this.EOF;\n        } else {\n          return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n            text: \"\",\n            token: null,\n            line: this.yylineno\n          });\n        }\n      }, \"next\"),\n      // return next match that has a token\n      lex: /* @__PURE__ */ __name(function lex() {\n        var r = this.next();\n        if (r) {\n          return r;\n        } else {\n          return this.lex();\n        }\n      }, \"lex\"),\n      // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n      begin: /* @__PURE__ */ __name(function begin(condition) {\n        this.conditionStack.push(condition);\n      }, \"begin\"),\n      // pop the previously active lexer condition state off the condition stack\n      popState: /* @__PURE__ */ __name(function popState() {\n        var n = this.conditionStack.length - 1;\n        if (n > 0) {\n          return this.conditionStack.pop();\n        } else {\n          return this.conditionStack[0];\n        }\n      }, \"popState\"),\n      // produce the lexer rule set which is active for the currently active lexer condition state\n      _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n        if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n          return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n        } else {\n          return this.conditions[\"INITIAL\"].rules;\n        }\n      }, \"_currentRules\"),\n      // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n      topState: /* @__PURE__ */ __name(function topState(n) {\n        n = this.conditionStack.length - 1 - Math.abs(n || 0);\n        if (n >= 0) {\n          return this.conditionStack[n];\n        } else {\n          return \"INITIAL\";\n        }\n      }, \"topState\"),\n      // alias for begin(condition)\n      pushState: /* @__PURE__ */ __name(function pushState(condition) {\n        this.begin(condition);\n      }, \"pushState\"),\n      // return the number of states currently on the stack\n      stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n        return this.conditionStack.length;\n      }, \"stateStackSize\"),\n      options: { \"case-insensitive\": true },\n      performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n        var YYSTATE = YY_START;\n        switch ($avoiding_name_collisions) {\n          case 0:\n            break;\n          case 1:\n            break;\n          case 2:\n            return 13;\n            break;\n          case 3:\n            break;\n          case 4:\n            break;\n          case 5:\n            return 8;\n            break;\n          case 6:\n            return 9;\n            break;\n          case 7:\n            return 7;\n            break;\n          case 8:\n            return 14;\n            break;\n          case 9:\n            this.begin(\"acc_title\");\n            return 15;\n            break;\n          case 10:\n            this.popState();\n            return \"acc_title_value\";\n            break;\n          case 11:\n            this.begin(\"acc_descr\");\n            return 17;\n            break;\n          case 12:\n            this.popState();\n            return \"acc_descr_value\";\n            break;\n          case 13:\n            this.begin(\"acc_descr_multiline\");\n            break;\n          case 14:\n            this.popState();\n            break;\n          case 15:\n            return \"acc_descr_multiline_value\";\n            break;\n          case 16:\n            return 20;\n            break;\n          case 17:\n            return 24;\n            break;\n          case 18:\n            return 23;\n            break;\n          case 19:\n            return 6;\n            break;\n          case 20:\n            return \"INVALID\";\n            break;\n        }\n      }, \"anonymous\"),\n      rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:timeline[ \\t]+LR\\b)/i, /^(?:timeline[ \\t]+TD\\b)/i, /^(?:timeline\\b)/i, /^(?:title\\s[^\\n]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^:\\n]+)/i, /^(?::\\s(?:[^:\\n]|:(?!\\s))+)/i, /^(?:[^#:\\n]+)/i, /^(?:$)/i, /^(?:.)/i],\n      conditions: { \"acc_descr_multiline\": { \"rules\": [14, 15], \"inclusive\": false }, \"acc_descr\": { \"rules\": [12], \"inclusive\": false }, \"acc_title\": { \"rules\": [10], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20], \"inclusive\": true } }\n    };\n    return lexer2;\n  })();\n  parser2.lexer = lexer;\n  function Parser() {\n    this.yy = {};\n  }\n  __name(Parser, \"Parser\");\n  Parser.prototype = parser2;\n  parser2.Parser = Parser;\n  return new Parser();\n})();\nparser.parser = parser;\nvar timeline_default = parser;\n\n// src/diagrams/timeline/timelineDb.js\nvar timelineDb_exports = {};\n__export(timelineDb_exports, {\n  addEvent: () => addEvent,\n  addSection: () => addSection,\n  addTask: () => addTask,\n  addTaskOrg: () => addTaskOrg,\n  clear: () => clear2,\n  default: () => timelineDb_default,\n  getCommonDb: () => getCommonDb,\n  getDirection: () => getDirection,\n  getSections: () => getSections,\n  getTasks: () => getTasks,\n  setDirection: () => setDirection\n});\nvar currentSection = \"\";\nvar currentTaskId = 0;\nvar direction = \"LR\";\nvar sections = [];\nvar tasks = [];\nvar rawTasks = [];\nvar getCommonDb = /* @__PURE__ */ __name(() => commonDb_exports, \"getCommonDb\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n  sections.length = 0;\n  tasks.length = 0;\n  currentSection = \"\";\n  rawTasks.length = 0;\n  direction = \"LR\";\n  clear();\n}, \"clear\");\nvar setDirection = /* @__PURE__ */ __name(function(dir) {\n  direction = dir;\n}, \"setDirection\");\nvar getDirection = /* @__PURE__ */ __name(function() {\n  return direction;\n}, \"getDirection\");\nvar addSection = /* @__PURE__ */ __name(function(txt) {\n  currentSection = txt;\n  sections.push(txt);\n}, \"addSection\");\nvar getSections = /* @__PURE__ */ __name(function() {\n  return sections;\n}, \"getSections\");\nvar getTasks = /* @__PURE__ */ __name(function() {\n  let allItemsProcessed = compileTasks();\n  const maxDepth = 100;\n  let iterationCount = 0;\n  while (!allItemsProcessed && iterationCount < maxDepth) {\n    allItemsProcessed = compileTasks();\n    iterationCount++;\n  }\n  tasks.push(...rawTasks);\n  return tasks;\n}, \"getTasks\");\nvar addTask = /* @__PURE__ */ __name(function(period, length, event) {\n  const rawTask = {\n    id: currentTaskId++,\n    section: currentSection,\n    type: currentSection,\n    task: period,\n    score: length ? length : 0,\n    //if event is defined, then add it the events array\n    events: event ? [event] : []\n  };\n  rawTasks.push(rawTask);\n}, \"addTask\");\nvar addEvent = /* @__PURE__ */ __name(function(event) {\n  const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n  currentTask.events.push(event);\n}, \"addEvent\");\nvar addTaskOrg = /* @__PURE__ */ __name(function(descr) {\n  const newTask = {\n    section: currentSection,\n    type: currentSection,\n    description: descr,\n    task: descr,\n    classes: []\n  };\n  tasks.push(newTask);\n}, \"addTaskOrg\");\nvar compileTasks = /* @__PURE__ */ __name(function() {\n  const compileTask = /* @__PURE__ */ __name(function(pos) {\n    return rawTasks[pos].processed;\n  }, \"compileTask\");\n  let allProcessed = true;\n  for (const [i, rawTask] of rawTasks.entries()) {\n    compileTask(i);\n    allProcessed = allProcessed && rawTask.processed;\n  }\n  return allProcessed;\n}, \"compileTasks\");\nvar timelineDb_default = {\n  clear: clear2,\n  getCommonDb,\n  getDirection,\n  setDirection,\n  addSection,\n  getSections,\n  getTasks,\n  addTask,\n  addTaskOrg,\n  addEvent\n};\n\n// src/diagrams/timeline/timelineRenderer.ts\nimport { select as select2 } from \"d3\";\n\n// src/diagrams/timeline/svgDraw.js\nimport { arc as d3arc, select } from \"d3\";\nvar nodeCount = 0;\nvar drawRect = /* @__PURE__ */ __name(function(elem, rectData) {\n  const rectElem = elem.append(\"rect\");\n  rectElem.attr(\"x\", rectData.x);\n  rectElem.attr(\"y\", rectData.y);\n  rectElem.attr(\"fill\", rectData.fill);\n  rectElem.attr(\"stroke\", rectData.stroke);\n  rectElem.attr(\"width\", rectData.width);\n  rectElem.attr(\"height\", rectData.height);\n  rectElem.attr(\"rx\", rectData.rx);\n  rectElem.attr(\"ry\", rectData.ry);\n  if (rectData.class !== void 0) {\n    rectElem.attr(\"class\", rectData.class);\n  }\n  return rectElem;\n}, \"drawRect\");\nvar drawFace = /* @__PURE__ */ __name(function(element, faceData) {\n  const radius = 15;\n  const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n  const face = element.append(\"g\");\n  face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n  face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n  function smile(face2) {\n    const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n    face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n  }\n  __name(smile, \"smile\");\n  function sad(face2) {\n    const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n    face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n  }\n  __name(sad, \"sad\");\n  function ambivalent(face2) {\n    face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n  }\n  __name(ambivalent, \"ambivalent\");\n  if (faceData.score > 3) {\n    smile(face);\n  } else if (faceData.score < 3) {\n    sad(face);\n  } else {\n    ambivalent(face);\n  }\n  return circleElement;\n}, \"drawFace\");\nvar drawCircle = /* @__PURE__ */ __name(function(element, circleData) {\n  const circleElement = element.append(\"circle\");\n  circleElement.attr(\"cx\", circleData.cx);\n  circleElement.attr(\"cy\", circleData.cy);\n  circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n  circleElement.attr(\"fill\", circleData.fill);\n  circleElement.attr(\"stroke\", circleData.stroke);\n  circleElement.attr(\"r\", circleData.r);\n  if (circleElement.class !== void 0) {\n    circleElement.attr(\"class\", circleElement.class);\n  }\n  if (circleData.title !== void 0) {\n    circleElement.append(\"title\").text(circleData.title);\n  }\n  return circleElement;\n}, \"drawCircle\");\nvar drawText = /* @__PURE__ */ __name(function(elem, textData) {\n  const nText = textData.text.replace(/<br\\s*\\/?>/gi, \" \");\n  const textElem = elem.append(\"text\");\n  textElem.attr(\"x\", textData.x);\n  textElem.attr(\"y\", textData.y);\n  textElem.attr(\"class\", \"legend\");\n  textElem.style(\"text-anchor\", textData.anchor);\n  if (textData.class !== void 0) {\n    textElem.attr(\"class\", textData.class);\n  }\n  const span = textElem.append(\"tspan\");\n  span.attr(\"x\", textData.x + textData.textMargin * 2);\n  span.text(nText);\n  return textElem;\n}, \"drawText\");\nvar drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {\n  function genPoints(x, y, width, height, cut) {\n    return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n  }\n  __name(genPoints, \"genPoints\");\n  const polygon = elem.append(\"polygon\");\n  polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n  polygon.attr(\"class\", \"labelBox\");\n  txtObject.y = txtObject.y + txtObject.labelMargin;\n  txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n  drawText(elem, txtObject);\n}, \"drawLabel\");\nvar drawSection = /* @__PURE__ */ __name(function(elem, section, conf) {\n  const g = elem.append(\"g\");\n  const rect = getNoteRect();\n  rect.x = section.x;\n  rect.y = section.y;\n  rect.fill = section.fill;\n  rect.width = conf.width;\n  rect.height = conf.height;\n  rect.class = \"journey-section section-type-\" + section.num;\n  rect.rx = 3;\n  rect.ry = 3;\n  drawRect(g, rect);\n  _drawTextCandidateFunc(conf)(\n    section.text,\n    g,\n    rect.x,\n    rect.y,\n    rect.width,\n    rect.height,\n    { class: \"journey-section section-type-\" + section.num },\n    conf,\n    section.colour\n  );\n}, \"drawSection\");\nvar taskCount = -1;\nvar drawTask = /* @__PURE__ */ __name(function(elem, task, conf, diagramId) {\n  const center = task.x + conf.width / 2;\n  const g = elem.append(\"g\");\n  taskCount++;\n  const maxHeight = 300 + 5 * 30;\n  g.append(\"line\").attr(\"id\", diagramId + \"-task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n  drawFace(g, {\n    cx: center,\n    cy: 300 + (5 - task.score) * 30,\n    score: task.score\n  });\n  const rect = getNoteRect();\n  rect.x = task.x;\n  rect.y = task.y;\n  rect.fill = task.fill;\n  rect.width = conf.width;\n  rect.height = conf.height;\n  rect.class = \"task task-type-\" + task.num;\n  rect.rx = 3;\n  rect.ry = 3;\n  drawRect(g, rect);\n  _drawTextCandidateFunc(conf)(\n    task.task,\n    g,\n    rect.x,\n    rect.y,\n    rect.width,\n    rect.height,\n    { class: \"task\" },\n    conf,\n    task.colour\n  );\n}, \"drawTask\");\nvar drawBackgroundRect = /* @__PURE__ */ __name(function(elem, bounds) {\n  const rectElem = drawRect(elem, {\n    x: bounds.startx,\n    y: bounds.starty,\n    width: bounds.stopx - bounds.startx,\n    height: bounds.stopy - bounds.starty,\n    fill: bounds.fill,\n    class: \"rect\"\n  });\n  rectElem.lower();\n}, \"drawBackgroundRect\");\nvar getTextObj = /* @__PURE__ */ __name(function() {\n  return {\n    x: 0,\n    y: 0,\n    fill: void 0,\n    \"text-anchor\": \"start\",\n    width: 100,\n    height: 100,\n    textMargin: 0,\n    rx: 0,\n    ry: 0\n  };\n}, \"getTextObj\");\nvar getNoteRect = /* @__PURE__ */ __name(function() {\n  return {\n    x: 0,\n    y: 0,\n    width: 100,\n    anchor: \"start\",\n    height: 100,\n    rx: 0,\n    ry: 0\n  };\n}, \"getNoteRect\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ (function() {\n  function byText(content, g, x, y, width, height, textAttrs, colour) {\n    const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n    _setTextAttrs(text, textAttrs);\n  }\n  __name(byText, \"byText\");\n  function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {\n    const { taskFontSize, taskFontFamily } = conf;\n    const lines = content.split(/<br\\s*\\/?>/gi);\n    for (let i = 0; i < lines.length; i++) {\n      const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n      const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n      text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n      text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n      _setTextAttrs(text, textAttrs);\n    }\n  }\n  __name(byTspan, \"byTspan\");\n  function byFo(content, g, x, y, width, height, textAttrs, conf) {\n    const body = g.append(\"switch\");\n    const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n    const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n    text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n    byTspan(content, body, x, y, width, height, textAttrs, conf);\n    _setTextAttrs(text, textAttrs);\n  }\n  __name(byFo, \"byFo\");\n  function _setTextAttrs(toText, fromTextAttrsDict) {\n    for (const key in fromTextAttrsDict) {\n      if (key in fromTextAttrsDict) {\n        toText.attr(key, fromTextAttrsDict[key]);\n      }\n    }\n  }\n  __name(_setTextAttrs, \"_setTextAttrs\");\n  return function(conf) {\n    return conf.textPlacement === \"fo\" ? byFo : conf.textPlacement === \"old\" ? byText : byTspan;\n  };\n})();\nvar initGraphics = /* @__PURE__ */ __name(function(graphics, id) {\n  nodeCount = 0;\n  taskCount = -1;\n  graphics.append(\"defs\").append(\"marker\").attr(\"id\", id + \"-arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n}, \"initGraphics\");\nfunction wrap(text, width) {\n  text.each(function() {\n    var text2 = select(this), words = text2.text().split(/(\\s+|<br>)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr(\"y\"), dy = parseFloat(text2.attr(\"dy\")), tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\");\n    for (let j = 0; j < words.length; j++) {\n      word = words[words.length - 1 - j];\n      line.push(word);\n      tspan.text(line.join(\" \").trim());\n      if (tspan.node().getComputedTextLength() > width || word === \"<br>\") {\n        line.pop();\n        tspan.text(line.join(\" \").trim());\n        if (word === \"<br>\") {\n          line = [\"\"];\n        } else {\n          line = [word];\n        }\n        tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").text(word);\n      }\n    }\n  });\n}\n__name(wrap, \"wrap\");\nvar drawNode = /* @__PURE__ */ __name(function(elem, node, fullSection, conf, diagramId, isEvent = false) {\n  const { theme, look } = conf;\n  const isReduxTheme = theme?.includes(\"redux\");\n  const maxSections = conf?.themeVariables?.THEME_COLOR_LIMIT ?? 12;\n  const section = fullSection % maxSections - 1;\n  const nodeElem = elem.append(\"g\");\n  node.section = section;\n  nodeElem.attr(\n    \"class\",\n    (node.class ? node.class + \" \" : \"\") + \"timeline-node \" + (\"section-\" + section)\n  );\n  const bkgElem = nodeElem.append(\"g\");\n  const textElem = nodeElem.append(\"g\");\n  const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n  const bbox = txt.node().getBBox();\n  const fontSize = conf.fontSize?.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n  node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n  node.height = Math.max(node.height, node.maxHeight);\n  node.width = node.width + 2 * node.padding;\n  textElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + node.padding / 2 + \")\");\n  if (isReduxTheme) {\n    textElem.attr(\n      \"transform\",\n      `translate(${node.width / 2}, ${isEvent ? node.padding / 2 + 3 : node.padding})`\n    );\n  }\n  defaultBkg(bkgElem, node, section, diagramId, conf);\n  if (look === \"neo\") {\n    nodeElem.attr(\"data-look\", `neo`);\n    if (isReduxTheme) {\n      const isDark2 = theme.includes(\"dark\");\n      const rootSvgNode = elem.node()?.ownerSVGElement ?? elem.node();\n      const rootSvg = select(rootSvgNode);\n      const svgId = rootSvg.attr(\"id\") ?? \"\";\n      const dropShadowId = svgId ? `${svgId}-drop-shadow` : \"drop-shadow\";\n      if (rootSvg.select(`#${dropShadowId}`).empty()) {\n        const existingDefs = rootSvg.select(\"defs\");\n        const defsEl = existingDefs.empty() ? rootSvg.append(\"defs\") : existingDefs;\n        defsEl.append(\"filter\").attr(\"id\", dropShadowId).attr(\"height\", \"130%\").attr(\"width\", \"130%\").append(\"feDropShadow\").attr(\"dx\", \"4\").attr(\"dy\", \"4\").attr(\"stdDeviation\", 0).attr(\"flood-opacity\", isDark2 ? \"0.2\" : \"0.06\").attr(\"flood-color\", isDark2 ? \"#FFFFFF\" : \"#000000\");\n      }\n    }\n  }\n  return node;\n}, \"drawNode\");\nvar getVirtualNodeHeight = /* @__PURE__ */ __name(function(elem, node, conf) {\n  const textElem = elem.append(\"g\");\n  const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n  const bbox = txt.node().getBBox();\n  const fontSize = conf.fontSize?.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n  textElem.remove();\n  return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n}, \"getVirtualNodeHeight\");\nvar defaultBkg = /* @__PURE__ */ __name(function(elem, node, section, diagramId, config) {\n  const { theme } = config;\n  const r = theme?.includes(\"redux\") ? 0 : 5;\n  const rd = 5;\n  const d = r > 0 ? `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-${r},${r},-${r} h${node.width - 2 * rd} q${r},0,${r},${r} v${node.height - rd} H0 Z` : `M0 ${node.height - rd} v${-(node.height - rd)} h${node.width} v${node.height} H0 Z`;\n  elem.append(\"path\").attr(\"id\", diagramId + \"-node-\" + nodeCount++).attr(\"class\", \"node-bkg node-\" + node.type).attr(\"d\", d);\n  if (!theme?.includes(\"redux\")) {\n    elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n  }\n}, \"defaultBkg\");\nvar svgDraw_default = {\n  drawRect,\n  drawCircle,\n  drawSection,\n  drawText,\n  drawLabel,\n  drawTask,\n  drawBackgroundRect,\n  getTextObj,\n  getNoteRect,\n  initGraphics,\n  drawNode,\n  getVirtualNodeHeight\n};\n\n// src/diagrams/timeline/timelineRenderer.ts\nvar draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {\n  const conf = getConfig2();\n  const { look, theme, themeVariables } = conf;\n  const { useGradient, gradientStart, gradientStop } = themeVariables;\n  const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;\n  log.debug(\"timeline\", diagObj.db);\n  const securityLevel = conf.securityLevel;\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select2(\"#i\" + id);\n  }\n  const root = securityLevel === \"sandbox\" ? select2(sandboxElement.nodes()[0].contentDocument.body) : select2(\"body\");\n  const svg = root.select(\"#\" + id);\n  svg.append(\"g\");\n  const tasks2 = diagObj.db.getTasks();\n  const title = diagObj.db.getCommonDb().getDiagramTitle();\n  log.debug(\"task\", tasks2);\n  svgDraw_default.initGraphics(svg, id);\n  const sections2 = diagObj.db.getSections();\n  log.debug(\"sections\", sections2);\n  let maxSectionHeight = 0;\n  let maxTaskHeight = 0;\n  let depthY = 0;\n  let sectionBeginY = 0;\n  let masterX = 50 + LEFT_MARGIN;\n  let masterY = 50;\n  sectionBeginY = 50;\n  let sectionNumber = 0;\n  let hasSections = true;\n  sections2.forEach(function(section) {\n    const sectionNode = {\n      number: sectionNumber,\n      descr: section,\n      section: sectionNumber,\n      width: 150,\n      padding: 20,\n      maxHeight: maxSectionHeight\n    };\n    const sectionHeight = svgDraw_default.getVirtualNodeHeight(svg, sectionNode, conf);\n    log.debug(\"sectionHeight before draw\", sectionHeight);\n    maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);\n  });\n  let maxEventCount = 0;\n  let maxEventLineLength = 0;\n  log.debug(\"tasks.length\", tasks2.length);\n  for (const [i, task] of tasks2.entries()) {\n    const taskNode = {\n      number: i,\n      descr: task,\n      section: task.section,\n      width: 150,\n      padding: 20,\n      maxHeight: maxTaskHeight\n    };\n    const taskHeight = svgDraw_default.getVirtualNodeHeight(svg, taskNode, conf);\n    log.debug(\"taskHeight before draw\", taskHeight);\n    maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);\n    maxEventCount = Math.max(maxEventCount, task.events.length);\n    let maxEventLineLengthTemp = 0;\n    for (const event of task.events) {\n      const eventNode = {\n        descr: event,\n        section: task.section,\n        number: task.section,\n        width: 150,\n        padding: 20,\n        maxHeight: 50\n      };\n      maxEventLineLengthTemp += svgDraw_default.getVirtualNodeHeight(svg, eventNode, conf);\n    }\n    if (task.events.length > 0) {\n      maxEventLineLengthTemp += (task.events.length - 1) * 10;\n    }\n    maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);\n  }\n  log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n  log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n  if (sections2 && sections2.length > 0) {\n    sections2.forEach((section) => {\n      const tasksForSection = tasks2.filter((task) => task.section === section);\n      const sectionNode = {\n        number: sectionNumber,\n        descr: section,\n        section: sectionNumber,\n        width: 200 * Math.max(tasksForSection.length, 1) - 50,\n        padding: 20,\n        maxHeight: maxSectionHeight\n      };\n      log.debug(\"sectionNode\", sectionNode);\n      const sectionNodeWrapper = svg.append(\"g\");\n      const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf, id);\n      log.debug(\"sectionNode output\", node);\n      sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n      masterY += maxSectionHeight + 50;\n      if (tasksForSection.length > 0) {\n        drawTasks(\n          svg,\n          tasksForSection,\n          sectionNumber,\n          masterX,\n          masterY,\n          maxTaskHeight,\n          conf,\n          maxEventCount,\n          maxEventLineLength,\n          maxSectionHeight,\n          false,\n          id\n        );\n      }\n      masterX += 200 * Math.max(tasksForSection.length, 1);\n      masterY = sectionBeginY;\n      sectionNumber++;\n    });\n  } else {\n    hasSections = false;\n    drawTasks(\n      svg,\n      tasks2,\n      sectionNumber,\n      masterX,\n      masterY,\n      maxTaskHeight,\n      conf,\n      maxEventCount,\n      maxEventLineLength,\n      maxSectionHeight,\n      true,\n      id\n    );\n  }\n  const box = svg.node().getBBox();\n  log.debug(\"bounds\", box);\n  if (title) {\n    svg.append(\"text\").text(title).attr(\"x\", look === \"neo\" ? box.x * 2 + LEFT_MARGIN : box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n  }\n  depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;\n  const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n  lineWrapper.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", depthY).attr(\"x2\", box.width + 3 * LEFT_MARGIN).attr(\"y2\", depthY).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", `url(#${id}-arrowhead)`);\n  if (look === \"neo\" && useGradient && theme !== \"neutral\") {\n    const existingDefs = svg.select(\"defs\");\n    const defsEl = existingDefs.empty() ? svg.append(\"defs\") : existingDefs;\n    const gradient = defsEl.append(\"linearGradient\").attr(\"id\", svg.attr(\"id\") + \"-gradient\").attr(\"gradientUnits\", \"objectBoundingBox\").attr(\"x1\", \"0%\").attr(\"y1\", \"0%\").attr(\"x2\", \"100%\").attr(\"y2\", \"0%\");\n    gradient.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", gradientStart).attr(\"stop-opacity\", 1);\n    gradient.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", gradientStop).attr(\"stop-opacity\", 1);\n  }\n  setupGraphViewbox(\n    void 0,\n    svg,\n    conf.timeline?.padding ?? 50,\n    conf.timeline?.useMaxWidth ?? false\n  );\n}, \"draw\");\nvar drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections, diagramId) {\n  for (const task of tasks2) {\n    const taskNode = {\n      descr: task.task,\n      section: sectionColor,\n      number: sectionColor,\n      width: 150,\n      padding: 20,\n      maxHeight: maxTaskHeight\n    };\n    log.debug(\"taskNode\", taskNode);\n    const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n    const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf, diagramId);\n    const taskHeight = node.height;\n    log.debug(\"taskHeight after draw\", taskHeight);\n    taskWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n    maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n    if (task.events) {\n      const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n      let lineLength = maxTaskHeight;\n      masterY += 100;\n      lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf, diagramId);\n      masterY -= 100;\n      lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\"y2\", masterY + maxTaskHeight + 100 + maxEventLineLength + 100).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", `url(#${diagramId}-arrowhead)`).attr(\"stroke-dasharray\", \"5,5\");\n    }\n    masterX = masterX + 200;\n    if (isWithoutSections && !conf.timeline?.disableMulticolor) {\n      sectionColor++;\n    }\n  }\n  masterY = masterY - 10;\n}, \"drawTasks\");\nvar drawEvents = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, masterX, masterY, conf, diagramId) {\n  let maxEventHeight = 0;\n  const eventBeginY = masterY;\n  masterY = masterY + 100;\n  for (const event of events) {\n    const eventNode = {\n      descr: event,\n      section: sectionColor,\n      number: sectionColor,\n      width: 150,\n      padding: 20,\n      maxHeight: 50\n    };\n    log.debug(\"eventNode\", eventNode);\n    const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n    const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf, diagramId, true);\n    const eventHeight = node.height;\n    maxEventHeight = maxEventHeight + eventHeight;\n    eventWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n    masterY = masterY + 10 + eventHeight;\n  }\n  masterY = eventBeginY;\n  return maxEventHeight;\n}, \"drawEvents\");\nvar timelineRenderer_default = {\n  setConf: /* @__PURE__ */ __name(() => {\n  }, \"setConf\"),\n  draw\n};\n\n// src/diagrams/timeline/timelineRendererVertical.ts\nvar NODE_WIDTH = 200;\nvar NODE_PADDING = 5;\nvar NODE_TOTAL_WIDTH = NODE_WIDTH + NODE_PADDING * 2;\nvar EVENT_WIDTH = NODE_WIDTH + 100;\nvar EVENT_TOTAL_WIDTH = EVENT_WIDTH + NODE_PADDING * 2;\nvar EVENT_SPACING = 10;\nvar EVENT_VERTICAL_GAP = 0;\nvar SECTION_TASK_GAP = 20;\nvar TASK_AXIS_GAP = 20;\nvar TASK_VERTICAL_GAP = 30;\nvar EVENT_AXIS_GAP = 50;\nvar draw2 = /* @__PURE__ */ __name(function(text, id, version, diagObj) {\n  const conf = getConfig2();\n  const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;\n  log.debug(\"timeline\", diagObj.db);\n  const svg = selectSvgElement(id);\n  svg.append(\"g\");\n  const tasks2 = diagObj.db.getTasks();\n  const title = diagObj.db.getCommonDb().getDiagramTitle();\n  log.debug(\"task\", tasks2);\n  svgDraw_default.initGraphics(svg);\n  const sections2 = diagObj.db.getSections();\n  log.debug(\"sections\", sections2);\n  let maxSectionHeight = 0;\n  let maxTaskHeight = 0;\n  const masterX = 50 + LEFT_MARGIN;\n  let masterY = 50;\n  const contentTopY = masterY;\n  const sectionBeginX = masterX;\n  const leftWidth = NODE_TOTAL_WIDTH + TASK_AXIS_GAP;\n  const rightWidth = EVENT_TOTAL_WIDTH + EVENT_AXIS_GAP;\n  const axisX = sectionBeginX + leftWidth;\n  let sectionNumber = 0;\n  const hasSections = sections2 && sections2.length > 0;\n  const timelineX = hasSections ? axisX : masterX + leftWidth;\n  const sectionWidth = Math.max(50, leftWidth + rightWidth - NODE_PADDING * 2);\n  sections2.forEach(function(section) {\n    const sectionNode = {\n      number: sectionNumber,\n      descr: section,\n      section: sectionNumber,\n      width: sectionWidth,\n      padding: NODE_PADDING,\n      maxHeight: maxSectionHeight\n    };\n    const sectionHeight = svgDraw_default.getVirtualNodeHeight(svg, sectionNode, conf);\n    log.debug(\"sectionHeight before draw\", sectionHeight);\n    maxSectionHeight = Math.max(maxSectionHeight, sectionHeight);\n  });\n  let maxEventStackHeight = 0;\n  log.debug(\"tasks.length\", tasks2.length);\n  for (const [i, task] of tasks2.entries()) {\n    const taskNode = {\n      number: i,\n      descr: task,\n      section: task.section,\n      width: NODE_WIDTH,\n      padding: NODE_PADDING,\n      maxHeight: maxTaskHeight\n    };\n    const taskHeight = svgDraw_default.getVirtualNodeHeight(svg, taskNode, conf);\n    log.debug(\"taskHeight before draw\", taskHeight);\n    maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n    let maxEventStackHeightTemp = 0;\n    for (const event of task.events) {\n      const eventNode = {\n        descr: event,\n        section: task.section,\n        number: task.section,\n        width: EVENT_WIDTH,\n        padding: NODE_PADDING,\n        maxHeight: 50\n      };\n      maxEventStackHeightTemp += svgDraw_default.getVirtualNodeHeight(svg, eventNode, conf);\n    }\n    if (task.events.length > 0) {\n      maxEventStackHeightTemp += (task.events.length - 1) * EVENT_SPACING;\n    }\n    maxEventStackHeight = Math.max(maxEventStackHeight, maxEventStackHeightTemp) + EVENT_VERTICAL_GAP;\n  }\n  log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n  log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n  const taskBlockHeight = Math.max(maxTaskHeight, maxEventStackHeight);\n  const taskSpacing = taskBlockHeight + TASK_VERTICAL_GAP;\n  if (hasSections) {\n    sections2.forEach((section) => {\n      const tasksForSection = tasks2.filter((task) => task.section === section);\n      const sectionNode = {\n        number: sectionNumber,\n        descr: section,\n        section: sectionNumber,\n        width: sectionWidth,\n        padding: NODE_PADDING,\n        maxHeight: maxSectionHeight\n      };\n      log.debug(\"sectionNode\", sectionNode);\n      const sectionNodeWrapper = svg.append(\"g\");\n      const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);\n      log.debug(\"sectionNode output\", node);\n      const sectionX = timelineX - leftWidth;\n      sectionNodeWrapper.attr(\"transform\", `translate(${sectionX}, ${masterY})`);\n      const taskStartY = masterY + node.height + SECTION_TASK_GAP;\n      if (tasksForSection.length > 0) {\n        drawTasks2(\n          svg,\n          tasksForSection,\n          sectionNumber,\n          timelineX,\n          taskStartY,\n          maxTaskHeight,\n          conf,\n          taskSpacing,\n          false\n        );\n      }\n      const taskCount2 = tasksForSection.length;\n      const sectionHeight = node.height + SECTION_TASK_GAP + taskSpacing * Math.max(taskCount2, 1) - (taskCount2 > 0 ? TASK_VERTICAL_GAP * 2 : 0);\n      masterY += sectionHeight;\n      sectionNumber++;\n    });\n  } else {\n    drawTasks2(\n      svg,\n      tasks2,\n      sectionNumber,\n      timelineX,\n      masterY,\n      maxTaskHeight,\n      conf,\n      taskSpacing,\n      true\n    );\n  }\n  let box = svg.node()?.getBBox();\n  if (!box) {\n    throw new Error(\"bbox not found\");\n  }\n  log.debug(\"bounds\", box);\n  if (title) {\n    svg.append(\"text\").text(title).attr(\"x\", box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n    box = svg.node()?.getBBox();\n    if (!box) {\n      throw new Error(\"bbox not found\");\n    }\n    log.debug(\"bounds after title\", box);\n  }\n  const [fontSize] = parseFontSize(conf.fontSize);\n  const arrowTopOffset = (fontSize ?? 16) * 2;\n  const arrowBottomPadding = (fontSize ?? 16) * 0.5 + 20;\n  const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n  lineWrapper.append(\"line\").attr(\"x1\", timelineX).attr(\"y1\", contentTopY - arrowTopOffset).attr(\"x2\", timelineX).attr(\"y2\", box.y + box.height + arrowBottomPadding).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n  lineWrapper.lower();\n  setupGraphViewbox(\n    void 0,\n    svg,\n    conf.timeline?.padding ?? 50,\n    conf.timeline?.useMaxWidth ?? false\n  );\n}, \"draw\");\nvar drawTasks2 = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, timelineX, masterY, maxTaskHeight, conf, taskSpacing, isWithoutSections) {\n  for (const task of tasks2) {\n    const taskNode = {\n      descr: task.task,\n      section: sectionColor,\n      number: sectionColor,\n      width: NODE_WIDTH,\n      padding: NODE_PADDING,\n      maxHeight: maxTaskHeight\n    };\n    log.debug(\"taskNode\", taskNode);\n    const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n    const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf);\n    const taskHeight = node.height;\n    log.debug(\"taskHeight after draw\", taskHeight);\n    const taskX = timelineX - TASK_AXIS_GAP - node.width;\n    taskWrapper.attr(\"transform\", `translate(${taskX}, ${masterY})`);\n    maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n    if (task.events && task.events.length > 0) {\n      const eventsStartY = masterY;\n      const eventsX = timelineX + EVENT_AXIS_GAP;\n      drawEvents2(diagram2, task.events, sectionColor, timelineX, eventsX, eventsStartY, conf);\n    }\n    masterY = masterY + taskSpacing;\n    if (isWithoutSections && !conf.timeline?.disableMulticolor) {\n      sectionColor++;\n    }\n  }\n}, \"drawTasks\");\nvar drawEvents2 = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, axisX, eventsX, startY, conf) {\n  let currentY = startY;\n  for (const event of events) {\n    const eventNode = {\n      descr: event,\n      section: sectionColor,\n      number: sectionColor,\n      width: EVENT_WIDTH,\n      padding: NODE_PADDING,\n      maxHeight: 0\n    };\n    log.debug(\"eventNode\", eventNode);\n    const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n    const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf);\n    const eventHeight = node.height;\n    eventWrapper.attr(\"transform\", `translate(${eventsX}, ${currentY})`);\n    const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n    const lineY = currentY + eventHeight / 2;\n    lineWrapper.append(\"line\").attr(\"x1\", axisX).attr(\"y1\", lineY).attr(\"x2\", eventsX).attr(\"y2\", lineY).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n    currentY = currentY + eventHeight + EVENT_SPACING;\n  }\n  return currentY - startY;\n}, \"drawEvents\");\nvar timelineRendererVertical_default = {\n  setConf: /* @__PURE__ */ __name(() => {\n  }, \"setConf\"),\n  draw: draw2\n};\n\n// src/diagrams/timeline/styles.js\nimport { darken, lighten, isDark } from \"khroma\";\nvar genReduxSections = /* @__PURE__ */ __name((options) => {\n  const { theme } = getConfig();\n  const isDarkTheme = theme?.includes(\"dark\");\n  const isColorTheme = theme?.includes(\"color\");\n  const rawSvgId = options.svgId?.replace(/^#/, \"\") ?? \"\";\n  const scopedDropShadow = rawSvgId ? `url(#${rawSvgId}-drop-shadow)` : options.dropShadow ?? \"none\";\n  let sections2 = \"\";\n  for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n    const sw = `${17 - 3 * i}`;\n    const color = isColorTheme ? options.borderColorArray[i] : options.mainBkg;\n    const stroke = isColorTheme ? options.borderColorArray[i] : options.nodeBorder;\n    sections2 += `\n    .section-${i - 1} rect,\n    .section-${i - 1} path,\n    .section-${i - 1} circle {\n      fill: ${isDarkTheme && isColorTheme ? options.mainBkg : color};\n      stroke: ${stroke};\n      stroke-width: ${options.strokeWidth};\n      filter: ${scopedDropShadow};\n    }\n\n    .section-${i - 1} text {\n      fill: ${options.nodeBorder};\n      font-weight: ${options.fontWeight}\n    }\n\n    .node-icon-${i - 1} {\n      font-size: 40px;\n      color: ${options[\"cScaleLabel\" + i]};\n    }\n\n    .section-edge-${i - 1} {\n      stroke: ${options[\"cScale\" + i]};\n    }\n\n    .edge-depth-${i - 1} {\n      stroke-width: ${sw};\n    }\n\n    .section-${i - 1} line {\n      stroke: ${options[\"cScaleInv\" + i]};\n      stroke-width: 3;\n    }\n\n    .lineWrapper line {\n      stroke: ${options.nodeBorder};\n      stroke-width:${options.strokeWidth}\n    }\n\n    .disabled,\n    .disabled circle,\n    .disabled text {\n      fill: ${options.tertiaryColor ?? \"lightgray\"};\n    }\n\n    .disabled text {\n      fill: ${options.clusterBorder ?? \"#efefef\"};\n    }\n    `;\n  }\n  return sections2;\n}, \"genReduxSections\");\nvar genSections = /* @__PURE__ */ __name((options) => {\n  let sections2 = \"\";\n  for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n    options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n    if (isDark(options[\"lineColor\" + i])) {\n      options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n    } else {\n      options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n    }\n  }\n  for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n    const sw = \"\" + (17 - 3 * i);\n    sections2 += `\n    .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path  {\n      fill: ${options[\"cScale\" + i]};\n    }\n    .section-${i - 1} text {\n     fill: ${options[\"cScaleLabel\" + i]};\n    }\n    .node-icon-${i - 1} {\n      font-size: 40px;\n      color: ${options[\"cScaleLabel\" + i]};\n    }\n    .section-edge-${i - 1}{\n      stroke: ${options[\"cScale\" + i]};\n    }\n    .edge-depth-${i - 1}{\n      stroke-width: ${sw};\n    }\n    .section-${i - 1} line {\n      stroke: ${options[\"cScaleInv\" + i]} ;\n      stroke-width: 3;\n    }\n\n    .lineWrapper line{\n      stroke: ${options[\"cScaleLabel\" + i]} ;\n    }\n\n    .disabled, .disabled circle, .disabled text {\n      fill: ${options.tertiaryColor ?? \"lightgray\"};\n    }\n    .disabled text {\n      fill: ${options.clusterBorder ?? \"#efefef\"};\n    }\n    `;\n  }\n  return sections2;\n}, \"genSections\");\nvar getStyles = /* @__PURE__ */ __name((options) => {\n  const { theme } = getConfig();\n  const isReduxTheme = theme?.includes(\"redux\");\n  const isNeutralTheme = theme === \"neutral\";\n  const rawSvgId = options.svgId?.replace(/^#/, \"\") ?? \"\";\n  let gradientSections = \"\";\n  if (options.useGradient && rawSvgId && options.THEME_COLOR_LIMIT && !isNeutralTheme) {\n    for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n      gradientSections += `\n      .section-${i - 1}[data-look=\"neo\"] rect,\n      .section-${i - 1}[data-look=\"neo\"] path,\n      .section-${i - 1}[data-look=\"neo\"] circle {\n        fill: ${options.mainBkg};\n        stroke: url(#${rawSvgId}-gradient);\n        stroke-width: 2;\n      }\n      .section-${i - 1}[data-look=\"neo\"] line {\n        stroke: url(#${rawSvgId}-gradient);\n        stroke-width: 2;\n      }`;\n    }\n  }\n  return `\n  .edge {\n    stroke-width: 3;\n  }\n  ${isReduxTheme ? genReduxSections(options) : genSections(options)}\n  ${gradientSections}\n  .section-root rect, .section-root path, .section-root circle  {\n    fill: ${options.git0};\n  }\n  .section-root text {\n    fill: ${options.gitBranchLabel0};\n  }\n  .icon-container {\n    height:100%;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .edge {\n    fill: none;\n  }\n  .eventWrapper  {\n   filter: brightness(120%);\n  }\n`;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/timeline/timeline-definition.ts\nvar rendererSelector = {\n  setConf: /* @__PURE__ */ __name(() => {\n  }, \"setConf\"),\n  draw: /* @__PURE__ */ __name((text, id, version, diagObj) => {\n    const direction2 = diagObj?.db?.getDirection?.() ?? \"LR\";\n    if (direction2 === \"TD\") {\n      return timelineRendererVertical_default.draw(text, id, version, diagObj);\n    }\n    return timelineRenderer_default.draw(text, id, version, diagObj);\n  }, \"draw\")\n};\nvar diagram = {\n  db: timelineDb_exports,\n  renderer: rendererSelector,\n  parser: timeline_default,\n  styles: styles_default\n};\nexport {\n  diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","timeline_default","timelineDb_exports","__export","addEvent","addSection","addTask","addTaskOrg","clear2","timelineDb_default","getCommonDb","getDirection","getSections","getTasks","setDirection","currentSection","currentTaskId","direction","sections","tasks","rawTasks","commonDb_exports","clear","dir","txt","allItemsProcessed","compileTasks","maxDepth","iterationCount","period","length","event","rawTask","task","descr","newTask","compileTask","pos","allProcessed","nodeCount","drawRect","elem","rectData","rectElem","drawFace","element","faceData","circleElement","face","smile","face2","arc","d3arc","sad","ambivalent","drawCircle","circleData","drawText","textData","nText","textElem","span","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","drawSection","section","conf","g","rect","getNoteRect","_drawTextCandidateFunc","taskCount","drawTask","diagramId","center","drawBackgroundRect","bounds","getTextObj","byText","content","textAttrs","colour","text","_setTextAttrs","byTspan","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","initGraphics","graphics","id","wrap","text2","select","words","word","line","lineHeight","tspan","j","drawNode","node","fullSection","isEvent","theme","look","isReduxTheme","maxSections","nodeElem","bkgElem","bbox","fontSize","defaultBkg","isDark2","rootSvgNode","rootSvg","svgId","dropShadowId","existingDefs","getVirtualNodeHeight","config","rd","d","svgDraw_default","draw","version","diagObj","getConfig2","themeVariables","useGradient","gradientStart","gradientStop","LEFT_MARGIN","log","securityLevel","sandboxElement","select2","svg","tasks2","title","sections2","maxSectionHeight","maxTaskHeight","depthY","sectionBeginY","masterX","masterY","sectionNumber","hasSections","sectionNode","sectionHeight","maxEventCount","maxEventLineLength","taskNode","taskHeight","maxEventLineLengthTemp","eventNode","tasksForSection","sectionNodeWrapper","drawTasks","box","gradient","setupGraphViewbox","diagram2","sectionColor","isWithoutSections","taskWrapper","lineWrapper","lineLength","drawEvents","events","maxEventHeight","eventBeginY","eventWrapper","eventHeight","timelineRenderer_default","NODE_WIDTH","NODE_PADDING","NODE_TOTAL_WIDTH","EVENT_WIDTH","EVENT_TOTAL_WIDTH","EVENT_SPACING","EVENT_VERTICAL_GAP","SECTION_TASK_GAP","TASK_AXIS_GAP","TASK_VERTICAL_GAP","EVENT_AXIS_GAP","draw2","selectSvgElement","contentTopY","sectionBeginX","leftWidth","rightWidth","axisX","timelineX","sectionWidth","maxEventStackHeight","maxEventStackHeightTemp","taskSpacing","sectionX","taskStartY","drawTasks2","taskCount2","parseFontSize","arrowTopOffset","arrowBottomPadding","taskX","eventsStartY","eventsX","drawEvents2","startY","currentY","lineY","timelineRendererVertical_default","genReduxSections","options","getConfig","isDarkTheme","isColorTheme","rawSvgId","scopedDropShadow","sw","color","stroke","genSections","isDark","lighten","darken","getStyles","isNeutralTheme","gradientSections","styles_default","rendererSelector","diagram"],"mappings":"yZAsBA,IAAIA,GAAU,UAAW,CACvB,IAAIC,EAAoBC,EAAO,SAASC,EAAGC,EAAGC,EAAIC,EAAG,CACnD,IAAKD,EAAKA,GAAM,GAAIC,EAAIH,EAAE,OAAQG,IAAKD,EAAGF,EAAEG,CAAC,CAAC,EAAIF,EAAG,CACrD,OAAOC,CACT,EAAG,GAAG,EAAGE,EAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAC1JC,EAAU,CACZ,MAAuBb,EAAO,UAAiB,CAC/C,EAAG,OAAO,EACV,GAAI,CAAA,EACJ,SAAU,CAAE,MAAS,EAAG,MAAS,EAAG,gBAAmB,EAAG,SAAY,EAAG,IAAO,EAAG,SAAY,EAAG,YAAe,EAAG,YAAe,EAAG,KAAQ,GAAI,MAAS,GAAI,UAAa,GAAI,QAAW,GAAI,MAAS,GAAI,UAAa,GAAI,gBAAmB,GAAI,UAAa,GAAI,gBAAmB,GAAI,0BAA6B,GAAI,QAAW,GAAI,iBAAoB,GAAI,gBAAmB,GAAI,OAAU,GAAI,MAAS,GAAI,QAAW,EAAG,KAAQ,CAAC,EAC7a,WAAY,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,WAAY,EAAG,cAAe,EAAG,cAAe,GAAI,QAAS,GAAI,UAAW,GAAI,QAAS,GAAI,YAAa,GAAI,kBAAmB,GAAI,YAAa,GAAI,kBAAmB,GAAI,4BAA6B,GAAI,UAAW,GAAI,SAAU,GAAI,OAAO,EACzR,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,CAAC,EACrL,cAA+BA,EAAO,SAAmBc,EAAQC,EAAQC,EAAUC,EAAIC,EAASC,EAAIC,EAAI,CACtG,IAAIC,EAAKF,EAAG,OAAS,EACrB,OAAQD,EAAO,CACb,IAAK,GACH,OAAOC,EAAGE,EAAK,CAAC,EAElB,IAAK,GACHJ,EAAG,aAAa,IAAI,EACpB,MACF,IAAK,GACHA,EAAG,aAAa,IAAI,EACpB,MACF,IAAK,GACH,KAAK,EAAI,CAAA,EACT,MACF,IAAK,GACHE,EAAGE,EAAK,CAAC,EAAE,KAAKF,EAAGE,CAAE,CAAC,EACtB,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,GACL,IAAK,GACH,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,GACL,IAAK,IACH,KAAK,EAAI,CAAA,EACT,MACF,IAAK,IACHJ,EAAG,YAAW,EAAG,gBAAgBE,EAAGE,CAAE,EAAE,OAAO,CAAC,CAAC,EACjD,KAAK,EAAIF,EAAGE,CAAE,EAAE,OAAO,CAAC,EACxB,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,YAAW,EAAG,YAAY,KAAK,CAAC,EACnC,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIE,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,YAAW,EAAG,kBAAkB,KAAK,CAAC,EACzC,MACF,IAAK,IACHA,EAAG,WAAWE,EAAGE,CAAE,EAAE,OAAO,CAAC,CAAC,EAC9B,KAAK,EAAIF,EAAGE,CAAE,EAAE,OAAO,CAAC,EACxB,MACF,IAAK,IACHJ,EAAG,QAAQE,EAAGE,CAAE,EAAG,EAAG,EAAE,EACxB,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,IACHJ,EAAG,SAASE,EAAGE,CAAE,EAAE,OAAO,CAAC,CAAC,EAC5B,KAAK,EAAIF,EAAGE,CAAE,EACd,KACV,CACI,EAAG,WAAW,EACd,MAAO,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,CAAC,EAAI,CAAE,EAAG,CAAC,CAAC,CAAC,EAAItB,EAAEM,EAAK,CAAC,EAAG,CAAC,EAAG,CAAE,EAAG,EAAG,EAAGN,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,GAAOb,EAAEM,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,EAAG,CAAC,EAAG,CAAC,CAAC,CAAE,EAAGN,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG,CAAE,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,GAAOb,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAIN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGN,EAAEM,EAAK,CAAC,EAAG,EAAE,CAAC,CAAC,EACzoB,eAAgB,CAAA,EAChB,WAA4BL,EAAO,SAAoBsB,EAAKC,EAAM,CAChE,GAAIA,EAAK,YACP,KAAK,MAAMD,CAAG,MACT,CACL,IAAIE,EAAQ,IAAI,MAAMF,CAAG,EACzB,MAAAE,EAAM,KAAOD,EACPC,CACR,CACF,EAAG,YAAY,EACf,MAAuBxB,EAAO,SAAeyB,EAAO,CAC/C,IAACC,EAAO,KAAMC,EAAQ,CAAC,CAAC,EAAGC,EAAS,CAAA,EAAIC,EAAS,CAAC,IAAI,EAAGC,EAAS,CAAA,EAAIC,EAAQ,KAAK,MAAOjB,EAAS,GAAIE,EAAW,EAAGD,EAAS,EAAmBiB,EAAS,EAAGC,EAAM,EAClKC,EAAOJ,EAAO,MAAM,KAAK,UAAW,CAAC,EACrCK,EAAS,OAAO,OAAO,KAAK,KAAK,EACjCC,EAAc,CAAE,GAAI,EAAE,EAC1B,QAASnC,KAAK,KAAK,GACb,OAAO,UAAU,eAAe,KAAK,KAAK,GAAIA,CAAC,IACjDmC,EAAY,GAAGnC,CAAC,EAAI,KAAK,GAAGA,CAAC,GAGjCkC,EAAO,SAASV,EAAOW,EAAY,EAAE,EACrCA,EAAY,GAAG,MAAQD,EACvBC,EAAY,GAAG,OAAS,KACpB,OAAOD,EAAO,OAAU,MAC1BA,EAAO,OAAS,CAAA,GAElB,IAAIE,EAAQF,EAAO,OACnBL,EAAO,KAAKO,CAAK,EACjB,IAAIC,EAASH,EAAO,SAAWA,EAAO,QAAQ,OAC1C,OAAOC,EAAY,GAAG,YAAe,WACvC,KAAK,WAAaA,EAAY,GAAG,WAEjC,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE,WAEhD,SAASG,EAASC,EAAG,CACnBb,EAAM,OAASA,EAAM,OAAS,EAAIa,EAClCX,EAAO,OAASA,EAAO,OAASW,EAChCV,EAAO,OAASA,EAAO,OAASU,CAClC,CACAxC,EAAOuC,EAAU,UAAU,EAC3B,SAASE,GAAM,CACb,IAAIC,EACJ,OAAAA,EAAQd,EAAO,IAAG,GAAMO,EAAO,IAAG,GAAMF,EACpC,OAAOS,GAAU,WACfA,aAAiB,QACnBd,EAASc,EACTA,EAAQd,EAAO,IAAG,GAEpBc,EAAQhB,EAAK,SAASgB,CAAK,GAAKA,GAE3BA,CACT,CACA1C,EAAOyC,EAAK,KAAK,EAEjB,QADIE,EAAwBC,EAAOC,EAAWC,EAAGC,EAAQ,CAAA,EAAIC,EAAGC,EAAKC,EAAUC,IAClE,CAUX,GATAP,EAAQjB,EAAMA,EAAM,OAAS,CAAC,EAC1B,KAAK,eAAeiB,CAAK,EAC3BC,EAAS,KAAK,eAAeD,CAAK,IAE9BD,IAAW,MAAQ,OAAOA,EAAU,OACtCA,EAASF,EAAG,GAEdI,EAASd,EAAMa,CAAK,GAAKb,EAAMa,CAAK,EAAED,CAAM,GAE1C,OAAOE,EAAW,KAAe,CAACA,EAAO,QAAU,CAACA,EAAO,CAAC,EAAG,CACjE,IAAIO,EAAS,GACbD,EAAW,CAAA,EACX,IAAKH,KAAKjB,EAAMa,CAAK,EACf,KAAK,WAAWI,CAAC,GAAKA,EAAIhB,GAC5BmB,EAAS,KAAK,IAAM,KAAK,WAAWH,CAAC,EAAI,GAAG,EAG5Cb,EAAO,aACTiB,EAAS,wBAA0BpC,EAAW,GAAK;AAAA,EAAQmB,EAAO,aAAY,EAAK;AAAA,YAAiBgB,EAAS,KAAK,IAAI,EAAI,WAAa,KAAK,WAAWR,CAAM,GAAKA,GAAU,IAE5KS,EAAS,wBAA0BpC,EAAW,GAAK,iBAAmB2B,GAAUV,EAAM,eAAiB,KAAO,KAAK,WAAWU,CAAM,GAAKA,GAAU,KAErJ,KAAK,WAAWS,EAAQ,CACtB,KAAMjB,EAAO,MACb,MAAO,KAAK,WAAWQ,CAAM,GAAKA,EAClC,KAAMR,EAAO,SACb,IAAKE,EACL,SAAAc,CACZ,CAAW,CACH,CACA,GAAIN,EAAO,CAAC,YAAa,OAASA,EAAO,OAAS,EAChD,MAAM,IAAI,MAAM,oDAAsDD,EAAQ,YAAcD,CAAM,EAEpG,OAAQE,EAAO,CAAC,EAAC,CACf,IAAK,GACHlB,EAAM,KAAKgB,CAAM,EACjBd,EAAO,KAAKM,EAAO,MAAM,EACzBL,EAAO,KAAKK,EAAO,MAAM,EACzBR,EAAM,KAAKkB,EAAO,CAAC,CAAC,EACpBF,EAAS,KAEP5B,EAASoB,EAAO,OAChBrB,EAASqB,EAAO,OAChBnB,EAAWmB,EAAO,SAClBE,EAAQF,EAAO,OAQjB,MACF,IAAK,GAwBH,GAvBAc,EAAM,KAAK,aAAaJ,EAAO,CAAC,CAAC,EAAE,CAAC,EACpCE,EAAM,EAAIlB,EAAOA,EAAO,OAASoB,CAAG,EACpCF,EAAM,GAAK,CACT,WAAYjB,EAAOA,EAAO,QAAUmB,GAAO,EAAE,EAAE,WAC/C,UAAWnB,EAAOA,EAAO,OAAS,CAAC,EAAE,UACrC,aAAcA,EAAOA,EAAO,QAAUmB,GAAO,EAAE,EAAE,aACjD,YAAanB,EAAOA,EAAO,OAAS,CAAC,EAAE,WACrD,EACgBQ,IACFS,EAAM,GAAG,MAAQ,CACfjB,EAAOA,EAAO,QAAUmB,GAAO,EAAE,EAAE,MAAM,CAAC,EAC1CnB,EAAOA,EAAO,OAAS,CAAC,EAAE,MAAM,CAAC,CACjD,GAEYgB,EAAI,KAAK,cAAc,MAAMC,EAAO,CAClCjC,EACAC,EACAC,EACAoB,EAAY,GACZS,EAAO,CAAC,EACRhB,EACAC,CACd,EAAc,OAAOI,CAAI,CAAC,EACV,OAAOY,EAAM,IACf,OAAOA,EAELG,IACFtB,EAAQA,EAAM,MAAM,EAAG,GAAKsB,EAAM,CAAC,EACnCpB,EAASA,EAAO,MAAM,EAAG,GAAKoB,CAAG,EACjCnB,EAASA,EAAO,MAAM,EAAG,GAAKmB,CAAG,GAEnCtB,EAAM,KAAK,KAAK,aAAakB,EAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1ChB,EAAO,KAAKkB,EAAM,CAAC,EACnBjB,EAAO,KAAKiB,EAAM,EAAE,EACpBG,EAAWnB,EAAMJ,EAAMA,EAAM,OAAS,CAAC,CAAC,EAAEA,EAAMA,EAAM,OAAS,CAAC,CAAC,EACjEA,EAAM,KAAKuB,CAAQ,EACnB,MACF,IAAK,GACH,MAAO,EACnB,CACM,CACA,MAAO,EACT,EAAG,OAAO,CACd,EACMG,GAAyB,UAAW,CACtC,IAAIlB,EAAS,CACX,IAAK,EACL,WAA4BnC,EAAO,SAAoBsB,EAAKC,EAAM,CAChE,GAAI,KAAK,GAAG,OACV,KAAK,GAAG,OAAO,WAAWD,EAAKC,CAAI,MAEnC,OAAM,IAAI,MAAMD,CAAG,CAEvB,EAAG,YAAY,EAEf,SAA0BtB,EAAO,SAASyB,EAAOR,EAAI,CACnD,YAAK,GAAKA,GAAM,KAAK,IAAM,CAAA,EAC3B,KAAK,OAASQ,EACd,KAAK,MAAQ,KAAK,WAAa,KAAK,KAAO,GAC3C,KAAK,SAAW,KAAK,OAAS,EAC9B,KAAK,OAAS,KAAK,QAAU,KAAK,MAAQ,GAC1C,KAAK,eAAiB,CAAC,SAAS,EAChC,KAAK,OAAS,CACZ,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,CACvB,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,EAAG,CAAC,GAE3B,KAAK,OAAS,EACP,IACT,EAAG,UAAU,EAEb,MAAuBzB,EAAO,UAAW,CACvC,IAAIsD,EAAK,KAAK,OAAO,CAAC,EACtB,KAAK,QAAUA,EACf,KAAK,SACL,KAAK,SACL,KAAK,OAASA,EACd,KAAK,SAAWA,EAChB,IAAIC,EAAQD,EAAG,MAAM,iBAAiB,EACtC,OAAIC,GACF,KAAK,WACL,KAAK,OAAO,aAEZ,KAAK,OAAO,cAEV,KAAK,QAAQ,QACf,KAAK,OAAO,MAAM,CAAC,IAErB,KAAK,OAAS,KAAK,OAAO,MAAM,CAAC,EAC1BD,CACT,EAAG,OAAO,EAEV,MAAuBtD,EAAO,SAASsD,EAAI,CACzC,IAAIL,EAAMK,EAAG,OACTC,EAAQD,EAAG,MAAM,eAAe,EACpC,KAAK,OAASA,EAAK,KAAK,OACxB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAG,KAAK,OAAO,OAASL,CAAG,EAC5D,KAAK,QAAUA,EACf,IAAIO,EAAW,KAAK,MAAM,MAAM,eAAe,EAC/C,KAAK,MAAQ,KAAK,MAAM,OAAO,EAAG,KAAK,MAAM,OAAS,CAAC,EACvD,KAAK,QAAU,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EACzDD,EAAM,OAAS,IACjB,KAAK,UAAYA,EAAM,OAAS,GAElC,IAAIT,EAAI,KAAK,OAAO,MACpB,OAAA,KAAK,OAAS,CACZ,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,aAC1B,YAAaS,GAASA,EAAM,SAAWC,EAAS,OAAS,KAAK,OAAO,aAAe,GAAKA,EAASA,EAAS,OAASD,EAAM,MAAM,EAAE,OAASA,EAAM,CAAC,EAAE,OAAS,KAAK,OAAO,aAAeN,CAClM,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAACH,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,KAAK,OAASG,CAAG,GAErD,KAAK,OAAS,KAAK,OAAO,OACnB,IACT,EAAG,OAAO,EAEV,KAAsBjD,EAAO,UAAW,CACtC,OAAA,KAAK,MAAQ,GACN,IACT,EAAG,MAAM,EAET,OAAwBA,EAAO,UAAW,CACxC,GAAI,KAAK,QAAQ,gBACf,KAAK,WAAa,eAEX,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAAqI,KAAK,eAAgB,CAChO,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,EAEH,OAAO,IACT,EAAG,QAAQ,EAEX,KAAsBA,EAAO,SAASwC,EAAG,CACvC,KAAK,MAAM,KAAK,MAAM,MAAMA,CAAC,CAAC,CAChC,EAAG,MAAM,EAET,UAA2BxC,EAAO,UAAW,CAC3C,IAAIyD,EAAO,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,KAAK,MAAM,MAAM,EACzE,OAAQA,EAAK,OAAS,GAAK,MAAQ,IAAMA,EAAK,OAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CAC7E,EAAG,WAAW,EAEd,cAA+BzD,EAAO,UAAW,CAC/C,IAAI0D,EAAO,KAAK,MAChB,OAAIA,EAAK,OAAS,KAChBA,GAAQ,KAAK,OAAO,OAAO,EAAG,GAAKA,EAAK,MAAM,IAExCA,EAAK,OAAO,EAAG,EAAE,GAAKA,EAAK,OAAS,GAAK,MAAQ,KAAK,QAAQ,MAAO,EAAE,CACjF,EAAG,eAAe,EAElB,aAA8B1D,EAAO,UAAW,CAC9C,IAAI2D,EAAM,KAAK,UAAS,EACpBC,EAAI,IAAI,MAAMD,EAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAC1C,OAAOA,EAAM,KAAK,cAAa,EAAK;AAAA,EAAOC,EAAI,GACjD,EAAG,cAAc,EAEjB,WAA4B5D,EAAO,SAAS6D,EAAOC,EAAc,CAC/D,IAAIpB,EAAOa,EAAOQ,EAmDlB,GAlDI,KAAK,QAAQ,kBACfA,EAAS,CACP,SAAU,KAAK,SACf,OAAQ,CACN,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,UAChB,aAAc,KAAK,OAAO,aAC1B,YAAa,KAAK,OAAO,WACvC,EACY,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,GAAI,KAAK,GACT,eAAgB,KAAK,eAAe,MAAM,CAAC,EAC3C,KAAM,KAAK,IACvB,EACc,KAAK,QAAQ,SACfA,EAAO,OAAO,MAAQ,KAAK,OAAO,MAAM,MAAM,CAAC,IAGnDR,EAAQM,EAAM,CAAC,EAAE,MAAM,iBAAiB,EACpCN,IACF,KAAK,UAAYA,EAAM,QAEzB,KAAK,OAAS,CACZ,WAAY,KAAK,OAAO,UACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,YAC1B,YAAaA,EAAQA,EAAMA,EAAM,OAAS,CAAC,EAAE,OAASA,EAAMA,EAAM,OAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,OAAS,KAAK,OAAO,YAAcM,EAAM,CAAC,EAAE,MACvJ,EACQ,KAAK,QAAUA,EAAM,CAAC,EACtB,KAAK,OAASA,EAAM,CAAC,EACrB,KAAK,QAAUA,EACf,KAAK,OAAS,KAAK,OAAO,OACtB,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,KAAK,OAAQ,KAAK,QAAU,KAAK,MAAM,GAE9D,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,OAAO,MAAMA,EAAM,CAAC,EAAE,MAAM,EAC/C,KAAK,SAAWA,EAAM,CAAC,EACvBnB,EAAQ,KAAK,cAAc,KAAK,KAAM,KAAK,GAAI,KAAMoB,EAAc,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAClH,KAAK,MAAQ,KAAK,SACpB,KAAK,KAAO,IAEVpB,EACF,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1B,QAASzC,KAAK8D,EACZ,KAAK9D,CAAC,EAAI8D,EAAO9D,CAAC,EAEpB,MAAO,EACT,CACA,MAAO,EACT,EAAG,YAAY,EAEf,KAAsBD,EAAO,UAAW,CACtC,GAAI,KAAK,KACP,OAAO,KAAK,IAET,KAAK,SACR,KAAK,KAAO,IAEd,IAAI0C,EAAOmB,EAAOG,EAAWC,EACxB,KAAK,QACR,KAAK,OAAS,GACd,KAAK,MAAQ,IAGf,QADIC,EAAQ,KAAK,cAAa,EACrBC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAEhC,GADAH,EAAY,KAAK,OAAO,MAAM,KAAK,MAAME,EAAMC,CAAC,CAAC,CAAC,EAC9CH,IAAc,CAACH,GAASG,EAAU,CAAC,EAAE,OAASH,EAAM,CAAC,EAAE,SAGzD,GAFAA,EAAQG,EACRC,EAAQE,EACJ,KAAK,QAAQ,gBAAiB,CAEhC,GADAzB,EAAQ,KAAK,WAAWsB,EAAWE,EAAMC,CAAC,CAAC,EACvCzB,IAAU,GACZ,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1BmB,EAAQ,GACR,QACF,KACE,OAAO,EAEX,SAAW,CAAC,KAAK,QAAQ,KACvB,MAIN,OAAIA,GACFnB,EAAQ,KAAK,WAAWmB,EAAOK,EAAMD,CAAK,CAAC,EACvCvB,IAAU,GACLA,EAEF,IAEL,KAAK,SAAW,GACX,KAAK,IAEL,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAA2B,KAAK,eAAgB,CACtH,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,CAEL,EAAG,MAAM,EAET,IAAqB1C,EAAO,UAAe,CACzC,IAAI8C,EAAI,KAAK,KAAI,EACjB,OAAIA,GAGK,KAAK,IAAG,CAEnB,EAAG,KAAK,EAER,MAAuB9C,EAAO,SAAeoE,EAAW,CACtD,KAAK,eAAe,KAAKA,CAAS,CACpC,EAAG,OAAO,EAEV,SAA0BpE,EAAO,UAAoB,CACnD,IAAIwC,EAAI,KAAK,eAAe,OAAS,EACrC,OAAIA,EAAI,EACC,KAAK,eAAe,IAAG,EAEvB,KAAK,eAAe,CAAC,CAEhC,EAAG,UAAU,EAEb,cAA+BxC,EAAO,UAAyB,CAC7D,OAAI,KAAK,eAAe,QAAU,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,EAC3E,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAAE,MAErE,KAAK,WAAW,QAAW,KAEtC,EAAG,eAAe,EAElB,SAA0BA,EAAO,SAAkBwC,EAAG,CAEpD,OADAA,EAAI,KAAK,eAAe,OAAS,EAAI,KAAK,IAAIA,GAAK,CAAC,EAChDA,GAAK,EACA,KAAK,eAAeA,CAAC,EAErB,SAEX,EAAG,UAAU,EAEb,UAA2BxC,EAAO,SAAmBoE,EAAW,CAC9D,KAAK,MAAMA,CAAS,CACtB,EAAG,WAAW,EAEd,eAAgCpE,EAAO,UAA0B,CAC/D,OAAO,KAAK,eAAe,MAC7B,EAAG,gBAAgB,EACnB,QAAS,CAAE,mBAAoB,EAAI,EACnC,cAA+BA,EAAO,SAAmBiB,EAAIoD,EAAKC,EAA2BC,EAAU,CAErG,OAAQD,EAAyB,CAC/B,IAAK,GACH,MACF,IAAK,GACH,MACF,IAAK,GACH,MAAO,IAET,IAAK,GACH,MACF,IAAK,GACH,MACF,OACE,MAAO,GAET,IAAK,GACH,MAAO,GAET,IAAK,GACH,MAAO,GAET,IAAK,GACH,MAAO,IAET,IAAK,GACH,OAAA,KAAK,MAAM,WAAW,EACf,GAET,IAAK,IACH,OAAA,KAAK,SAAQ,EACN,kBAET,IAAK,IACH,OAAA,KAAK,MAAM,WAAW,EACf,GAET,IAAK,IACH,OAAA,KAAK,SAAQ,EACN,kBAET,IAAK,IACH,KAAK,MAAM,qBAAqB,EAChC,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,4BAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,GAET,IAAK,IACH,MAAO,SAEnB,CACM,EAAG,WAAW,EACd,MAAO,CAAC,sBAAuB,sBAAuB,cAAe,YAAa,gBAAiB,2BAA4B,2BAA4B,mBAAoB,sBAAuB,wBAAyB,wBAAyB,wBAAyB,wBAAyB,yBAA0B,aAAc,eAAgB,yBAA0B,+BAAgC,iBAAkB,UAAW,SAAS,EAClc,WAAY,CAAE,oBAAuB,CAAE,MAAS,CAAC,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,UAAa,CAAE,MAAS,CAAC,EAAE,EAAG,UAAa,EAAK,EAAI,UAAa,CAAE,MAAS,CAAC,EAAE,EAAG,UAAa,IAAS,QAAW,CAAE,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAI,CAAE,CACnS,EACI,OAAOnC,CACT,GAAC,EACDtB,EAAQ,MAAQwC,EAChB,SAASmB,GAAS,CAChB,KAAK,GAAK,CAAA,CACZ,CACA,OAAAxE,EAAOwE,EAAQ,QAAQ,EACvBA,EAAO,UAAY3D,EACnBA,EAAQ,OAAS2D,EACV,IAAIA,CACb,GAAC,EACD1E,EAAO,OAASA,EAChB,IAAI2E,GAAmB3E,EAGnB4E,GAAqB,CAAA,EACzBC,GAASD,GAAoB,CAC3B,SAAU,IAAME,GAChB,WAAY,IAAMC,GAClB,QAAS,IAAMC,GACf,WAAY,IAAMC,GAClB,MAAO,IAAMC,GACb,QAAS,IAAMC,GACf,YAAa,IAAMC,GACnB,aAAc,IAAMC,GACpB,YAAa,IAAMC,GACnB,SAAU,IAAMC,GAChB,aAAc,IAAMC,EACtB,CAAC,EACD,IAAIC,EAAiB,GACjBC,GAAgB,EAChBC,GAAY,KACZC,GAAW,CAAA,EACXC,EAAQ,CAAA,EACRC,EAAW,CAAA,EACXV,GAA8BlF,EAAO,IAAM6F,GAAkB,aAAa,EAC1Eb,GAAyBhF,EAAO,UAAW,CAC7C0F,GAAS,OAAS,EAClBC,EAAM,OAAS,EACfJ,EAAiB,GACjBK,EAAS,OAAS,EAClBH,GAAY,KACZK,GAAK,CACP,EAAG,OAAO,EACNR,GAA+BtF,EAAO,SAAS+F,EAAK,CACtDN,GAAYM,CACd,EAAG,cAAc,EACbZ,GAA+BnF,EAAO,UAAW,CACnD,OAAOyF,EACT,EAAG,cAAc,EACbZ,GAA6B7E,EAAO,SAASgG,EAAK,CACpDT,EAAiBS,EACjBN,GAAS,KAAKM,CAAG,CACnB,EAAG,YAAY,EACXZ,GAA8BpF,EAAO,UAAW,CAClD,OAAO0F,EACT,EAAG,aAAa,EACZL,GAA2BrF,EAAO,UAAW,CAC/C,IAAIiG,EAAoBC,GAAY,EACpC,MAAMC,EAAW,IACjB,IAAIC,EAAiB,EACrB,KAAO,CAACH,GAAqBG,EAAiBD,GAC5CF,EAAoBC,GAAY,EAChCE,IAEF,OAAAT,EAAM,KAAK,GAAGC,CAAQ,EACfD,CACT,EAAG,UAAU,EACTb,GAA0B9E,EAAO,SAASqG,EAAQC,EAAQC,EAAO,CACnE,MAAMC,EAAU,CACd,GAAIhB,KACJ,QAASD,EACT,KAAMA,EACN,KAAMc,EACN,MAAOC,GAAkB,EAEzB,OAAQC,EAAQ,CAACA,CAAK,EAAI,CAAA,CAC9B,EACEX,EAAS,KAAKY,CAAO,CACvB,EAAG,SAAS,EACR5B,GAA2B5E,EAAO,SAASuG,EAAO,CAChCX,EAAS,KAAMa,GAASA,EAAK,KAAOjB,GAAgB,CAAC,EAC7D,OAAO,KAAKe,CAAK,CAC/B,EAAG,UAAU,EACTxB,GAA6B/E,EAAO,SAAS0G,EAAO,CACtD,MAAMC,EAAU,CACd,QAASpB,EACT,KAAMA,EACN,YAAamB,EACb,KAAMA,EACN,QAAS,CAAA,CACb,EACEf,EAAM,KAAKgB,CAAO,CACpB,EAAG,YAAY,EACXT,GAA+BlG,EAAO,UAAW,CACnD,MAAM4G,EAA8B5G,EAAO,SAAS6G,EAAK,CACvD,OAAOjB,EAASiB,CAAG,EAAE,SACvB,EAAG,aAAa,EAChB,IAAIC,EAAe,GACnB,SAAW,CAAC3C,EAAGqC,CAAO,IAAKZ,EAAS,QAAO,EACzCgB,EAAYzC,CAAC,EACb2C,EAAeA,GAAgBN,EAAQ,UAEzC,OAAOM,CACT,EAAG,cAAc,EACb7B,GAAqB,CACvB,MAAOD,GACP,YAAAE,GACA,aAAAC,GACA,aAAAG,GACA,WAAAT,GACA,YAAAO,GACA,SAAAC,GACA,QAAAP,GACA,WAAAC,GACA,SAAAH,EACF,EAOImC,GAAY,EACZC,EAA2BhH,EAAO,SAASiH,EAAMC,EAAU,CAC7D,MAAMC,EAAWF,EAAK,OAAO,MAAM,EACnC,OAAAE,EAAS,KAAK,IAAKD,EAAS,CAAC,EAC7BC,EAAS,KAAK,IAAKD,EAAS,CAAC,EAC7BC,EAAS,KAAK,OAAQD,EAAS,IAAI,EACnCC,EAAS,KAAK,SAAUD,EAAS,MAAM,EACvCC,EAAS,KAAK,QAASD,EAAS,KAAK,EACrCC,EAAS,KAAK,SAAUD,EAAS,MAAM,EACvCC,EAAS,KAAK,KAAMD,EAAS,EAAE,EAC/BC,EAAS,KAAK,KAAMD,EAAS,EAAE,EAC3BA,EAAS,QAAU,QACrBC,EAAS,KAAK,QAASD,EAAS,KAAK,EAEhCC,CACT,EAAG,UAAU,EACTC,GAA2BpH,EAAO,SAASqH,EAASC,EAAU,CAEhE,MAAMC,EAAgBF,EAAQ,OAAO,QAAQ,EAAE,KAAK,KAAMC,EAAS,EAAE,EAAE,KAAK,KAAMA,EAAS,EAAE,EAAE,KAAK,QAAS,MAAM,EAAE,KAAK,IAAK,EAAM,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,WAAY,SAAS,EACnLE,EAAOH,EAAQ,OAAO,GAAG,EAC/BG,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMF,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,OAAQ,MAAM,EAAE,KAAK,SAAU,MAAM,EACjLE,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMF,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,OAAQ,MAAM,EAAE,KAAK,SAAU,MAAM,EACjL,SAASG,EAAMC,EAAO,CACpB,MAAMC,EAAMC,GAAK,EAAG,WAAW,KAAK,GAAK,CAAC,EAAE,SAAS,GAAK,KAAK,GAAK,EAAE,EAAE,YAAY,GAAU,EAAE,YAAY,kBAAY,EACxHF,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,IAAKC,CAAG,EAAE,KAAK,YAAa,aAAeL,EAAS,GAAK,KAAOA,EAAS,GAAK,GAAK,GAAG,CACzI,CACAtH,EAAOyH,EAAO,OAAO,EACrB,SAASI,EAAIH,EAAO,CAClB,MAAMC,EAAMC,GAAK,EAAG,WAAW,EAAI,KAAK,GAAK,CAAC,EAAE,SAAS,GAAK,KAAK,GAAK,EAAE,EAAE,YAAY,GAAU,EAAE,YAAY,kBAAY,EAC5HF,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,IAAKC,CAAG,EAAE,KAAK,YAAa,aAAeL,EAAS,GAAK,KAAOA,EAAS,GAAK,GAAK,GAAG,CACzI,CACAtH,EAAO6H,EAAK,KAAK,EACjB,SAASC,EAAWJ,EAAO,CACzBA,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,SAAU,CAAC,EAAE,KAAK,KAAMJ,EAAS,GAAK,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,CAAC,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,eAAgB,KAAK,EAAE,KAAK,SAAU,MAAM,CACxP,CACA,OAAAtH,EAAO8H,EAAY,YAAY,EAC3BR,EAAS,MAAQ,EACnBG,EAAMD,CAAI,EACDF,EAAS,MAAQ,EAC1BO,EAAIL,CAAI,EAERM,EAAWN,CAAI,EAEVD,CACT,EAAG,UAAU,EACTQ,GAA6B/H,EAAO,SAASqH,EAASW,EAAY,CACpE,MAAMT,EAAgBF,EAAQ,OAAO,QAAQ,EAC7C,OAAAE,EAAc,KAAK,KAAMS,EAAW,EAAE,EACtCT,EAAc,KAAK,KAAMS,EAAW,EAAE,EACtCT,EAAc,KAAK,QAAS,SAAWS,EAAW,GAAG,EACrDT,EAAc,KAAK,OAAQS,EAAW,IAAI,EAC1CT,EAAc,KAAK,SAAUS,EAAW,MAAM,EAC9CT,EAAc,KAAK,IAAKS,EAAW,CAAC,EAChCT,EAAc,QAAU,QAC1BA,EAAc,KAAK,QAASA,EAAc,KAAK,EAE7CS,EAAW,QAAU,QACvBT,EAAc,OAAO,OAAO,EAAE,KAAKS,EAAW,KAAK,EAE9CT,CACT,EAAG,YAAY,EACXU,GAA2BjI,EAAO,SAASiH,EAAMiB,EAAU,CAC7D,MAAMC,EAAQD,EAAS,KAAK,QAAQ,eAAgB,GAAG,EACjDE,EAAWnB,EAAK,OAAO,MAAM,EACnCmB,EAAS,KAAK,IAAKF,EAAS,CAAC,EAC7BE,EAAS,KAAK,IAAKF,EAAS,CAAC,EAC7BE,EAAS,KAAK,QAAS,QAAQ,EAC/BA,EAAS,MAAM,cAAeF,EAAS,MAAM,EACzCA,EAAS,QAAU,QACrBE,EAAS,KAAK,QAASF,EAAS,KAAK,EAEvC,MAAMG,EAAOD,EAAS,OAAO,OAAO,EACpC,OAAAC,EAAK,KAAK,IAAKH,EAAS,EAAIA,EAAS,WAAa,CAAC,EACnDG,EAAK,KAAKF,CAAK,EACRC,CACT,EAAG,UAAU,EACTE,GAA4BtI,EAAO,SAASiH,EAAMsB,EAAW,CAC/D,SAASC,EAAUC,EAAGC,EAAGC,EAAOC,EAAQC,EAAK,CAC3C,OAAOJ,EAAI,IAAMC,EAAI,KAAOD,EAAIE,GAAS,IAAMD,EAAI,KAAOD,EAAIE,GAAS,KAAOD,EAAIE,EAASC,GAAO,KAAOJ,EAAIE,EAAQE,EAAM,KAAO,KAAOH,EAAIE,GAAU,IAAMH,EAAI,KAAOC,EAAIE,EAC9K,CACA5I,EAAOwI,EAAW,WAAW,EAC7B,MAAMM,EAAU7B,EAAK,OAAO,SAAS,EACrC6B,EAAQ,KAAK,SAAUN,EAAUD,EAAU,EAAGA,EAAU,EAAG,GAAI,GAAI,CAAC,CAAC,EACrEO,EAAQ,KAAK,QAAS,UAAU,EAChCP,EAAU,EAAIA,EAAU,EAAIA,EAAU,YACtCA,EAAU,EAAIA,EAAU,EAAI,GAAMA,EAAU,YAC5CN,GAAShB,EAAMsB,CAAS,CAC1B,EAAG,WAAW,EACVQ,GAA8B/I,EAAO,SAASiH,EAAM+B,EAASC,EAAM,CACrE,MAAMC,EAAIjC,EAAK,OAAO,GAAG,EACnBkC,EAAOC,GAAW,EACxBD,EAAK,EAAIH,EAAQ,EACjBG,EAAK,EAAIH,EAAQ,EACjBG,EAAK,KAAOH,EAAQ,KACpBG,EAAK,MAAQF,EAAK,MAClBE,EAAK,OAASF,EAAK,OACnBE,EAAK,MAAQ,gCAAkCH,EAAQ,IACvDG,EAAK,GAAK,EACVA,EAAK,GAAK,EACVnC,EAASkC,EAAGC,CAAI,EAChBE,GAAuBJ,CAAI,EACzBD,EAAQ,KACRE,EACAC,EAAK,EACLA,EAAK,EACLA,EAAK,MACLA,EAAK,OACL,CAAE,MAAO,gCAAkCH,EAAQ,GAAG,EACtDC,EACAD,EAAQ,MACZ,CACA,EAAG,aAAa,EACZM,GAAY,GACZC,GAA2BvJ,EAAO,SAASiH,EAAMR,EAAMwC,EAAMO,EAAW,CAC1E,MAAMC,EAAShD,EAAK,EAAIwC,EAAK,MAAQ,EAC/BC,EAAIjC,EAAK,OAAO,GAAG,EACzBqC,KAEAJ,EAAE,OAAO,MAAM,EAAE,KAAK,KAAMM,EAAY,QAAUF,EAAS,EAAE,KAAK,KAAMG,CAAM,EAAE,KAAK,KAAMhD,EAAK,CAAC,EAAE,KAAK,KAAMgD,CAAM,EAAE,KAAK,KADzG,GACwH,EAAE,KAAK,QAAS,WAAW,EAAE,KAAK,eAAgB,KAAK,EAAE,KAAK,mBAAoB,KAAK,EAAE,KAAK,SAAU,MAAM,EACxPrC,GAAS8B,EAAG,CACV,GAAIO,EACJ,GAAI,KAAO,EAAIhD,EAAK,OAAS,GAC7B,MAAOA,EAAK,KAChB,CAAG,EACD,MAAM0C,EAAOC,GAAW,EACxBD,EAAK,EAAI1C,EAAK,EACd0C,EAAK,EAAI1C,EAAK,EACd0C,EAAK,KAAO1C,EAAK,KACjB0C,EAAK,MAAQF,EAAK,MAClBE,EAAK,OAASF,EAAK,OACnBE,EAAK,MAAQ,kBAAoB1C,EAAK,IACtC0C,EAAK,GAAK,EACVA,EAAK,GAAK,EACVnC,EAASkC,EAAGC,CAAI,EAChBE,GAAuBJ,CAAI,EACzBxC,EAAK,KACLyC,EACAC,EAAK,EACLA,EAAK,EACLA,EAAK,MACLA,EAAK,OACL,CAAE,MAAO,MAAM,EACfF,EACAxC,EAAK,MACT,CACA,EAAG,UAAU,EACTiD,GAAqC1J,EAAO,SAASiH,EAAM0C,EAAQ,CACpD3C,EAASC,EAAM,CAC9B,EAAG0C,EAAO,OACV,EAAGA,EAAO,OACV,MAAOA,EAAO,MAAQA,EAAO,OAC7B,OAAQA,EAAO,MAAQA,EAAO,OAC9B,KAAMA,EAAO,KACb,MAAO,MACX,CAAG,EACQ,MAAK,CAChB,EAAG,oBAAoB,EACnBC,GAA6B5J,EAAO,UAAW,CACjD,MAAO,CACL,EAAG,EACH,EAAG,EACH,KAAM,OACN,cAAe,QACf,MAAO,IACP,OAAQ,IACR,WAAY,EACZ,GAAI,EACJ,GAAI,CACR,CACA,EAAG,YAAY,EACXoJ,GAA8BpJ,EAAO,UAAW,CAClD,MAAO,CACL,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,QACR,OAAQ,IACR,GAAI,EACJ,GAAI,CACR,CACA,EAAG,aAAa,EACZqJ,IAA0C,UAAW,CACvD,SAASQ,EAAOC,EAASZ,EAAGT,EAAGC,EAAGC,EAAOC,EAAQmB,EAAWC,EAAQ,CAClE,MAAMC,EAAOf,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKT,EAAIE,EAAQ,CAAC,EAAE,KAAK,IAAKD,EAAIE,EAAS,EAAI,CAAC,EAAE,MAAM,aAAcoB,CAAM,EAAE,MAAM,cAAe,QAAQ,EAAE,KAAKF,CAAO,EAC5JI,EAAcD,EAAMF,CAAS,CAC/B,CACA/J,EAAO6J,EAAQ,QAAQ,EACvB,SAASM,EAAQL,EAASZ,EAAGT,EAAGC,EAAGC,EAAOC,EAAQmB,EAAWd,EAAMe,EAAQ,CACzE,KAAM,CAAE,aAAAI,EAAc,eAAAC,CAAc,EAAKpB,EACnC1F,EAAQuG,EAAQ,MAAM,cAAc,EAC1C,QAAS3F,EAAI,EAAGA,EAAIZ,EAAM,OAAQY,IAAK,CACrC,MAAMmG,EAAKnG,EAAIiG,EAAeA,GAAgB7G,EAAM,OAAS,GAAK,EAC5D0G,EAAOf,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKT,EAAIE,EAAQ,CAAC,EAAE,KAAK,IAAKD,CAAC,EAAE,KAAK,OAAQsB,CAAM,EAAE,MAAM,cAAe,QAAQ,EAAE,MAAM,YAAaI,CAAY,EAAE,MAAM,cAAeC,CAAc,EAC5LJ,EAAK,OAAO,OAAO,EAAE,KAAK,IAAKxB,EAAIE,EAAQ,CAAC,EAAE,KAAK,KAAM2B,CAAE,EAAE,KAAK/G,EAAMY,CAAC,CAAC,EAC1E8F,EAAK,KAAK,IAAKvB,EAAIE,EAAS,CAAC,EAAE,KAAK,oBAAqB,SAAS,EAAE,KAAK,qBAAsB,SAAS,EACxGsB,EAAcD,EAAMF,CAAS,CAC/B,CACF,CACA/J,EAAOmK,EAAS,SAAS,EACzB,SAASI,EAAKT,EAASZ,EAAGT,EAAGC,EAAGC,EAAOC,EAAQmB,EAAWd,EAAM,CAC9D,MAAMuB,EAAOtB,EAAE,OAAO,QAAQ,EAExBe,EADIO,EAAK,OAAO,eAAe,EAAE,KAAK,IAAK/B,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASC,CAAK,EAAE,KAAK,SAAUC,CAAM,EAAE,KAAK,WAAY,OAAO,EACtH,OAAO,WAAW,EAAE,MAAM,UAAW,OAAO,EAAE,MAAM,SAAU,MAAM,EAAE,MAAM,QAAS,MAAM,EAC1GqB,EAAK,OAAO,KAAK,EAAE,KAAK,QAAS,OAAO,EAAE,MAAM,UAAW,YAAY,EAAE,MAAM,aAAc,QAAQ,EAAE,MAAM,iBAAkB,QAAQ,EAAE,KAAKH,CAAO,EACrJK,EAAQL,EAASU,EAAM/B,EAAGC,EAAGC,EAAOC,EAAQmB,EAAWd,CAAI,EAC3DiB,EAAcD,EAAMF,CAAS,CAC/B,CACA/J,EAAOuK,EAAM,MAAM,EACnB,SAASL,EAAcO,EAAQC,EAAmB,CAChD,UAAWC,KAAOD,EACZC,KAAOD,GACTD,EAAO,KAAKE,EAAKD,EAAkBC,CAAG,CAAC,CAG7C,CACA,OAAA3K,EAAOkK,EAAe,eAAe,EAC9B,SAASjB,EAAM,CACpB,OAAOA,EAAK,gBAAkB,KAAOsB,EAAOtB,EAAK,gBAAkB,MAAQY,EAASM,CACtF,CACF,GAAC,EACGS,GAA+B5K,EAAO,SAAS6K,EAAUC,EAAI,CAC/D/D,GAAY,EACZuC,GAAY,GACZuB,EAAS,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMC,EAAK,YAAY,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,CAAC,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,kBAAkB,CAC1N,EAAG,cAAc,EACjB,SAASC,GAAKd,EAAMtB,EAAO,CACzBsB,EAAK,KAAK,UAAW,CACnB,IAAIe,EAAQC,EAAO,IAAI,EAAGC,EAAQF,EAAM,KAAI,EAAG,MAAM,YAAY,EAAE,QAAO,EAAIG,EAAMC,EAAO,CAAA,EAAIC,EAAa,IAAK3C,EAAIsC,EAAM,KAAK,GAAG,EAAGV,EAAK,WAAWU,EAAM,KAAK,IAAI,CAAC,EAAGM,EAAQN,EAAM,KAAK,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAKtC,CAAC,EAAE,KAAK,KAAM4B,EAAK,IAAI,EAChQ,QAASiB,EAAI,EAAGA,EAAIL,EAAM,OAAQK,IAChCJ,EAAOD,EAAMA,EAAM,OAAS,EAAIK,CAAC,EACjCH,EAAK,KAAKD,CAAI,EACdG,EAAM,KAAKF,EAAK,KAAK,GAAG,EAAE,MAAM,GAC5BE,EAAM,OAAO,sBAAqB,EAAK3C,GAASwC,IAAS,UAC3DC,EAAK,IAAG,EACRE,EAAM,KAAKF,EAAK,KAAK,GAAG,EAAE,MAAM,EAC5BD,IAAS,OACXC,EAAO,CAAC,EAAE,EAEVA,EAAO,CAACD,CAAI,EAEdG,EAAQN,EAAM,OAAO,OAAO,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAKtC,CAAC,EAAE,KAAK,KAAM2C,EAAa,IAAI,EAAE,KAAKF,CAAI,EAGrG,CAAC,CACH,CACAnL,EAAO+K,GAAM,MAAM,EACnB,IAAIS,GAA2BxL,EAAO,SAASiH,EAAMwE,EAAMC,EAAazC,EAAMO,EAAWmC,EAAU,GAAO,CACxG,KAAM,CAAE,MAAAC,EAAO,KAAAC,CAAI,EAAK5C,EAClB6C,EAAeF,GAAO,SAAS,OAAO,EACtCG,EAAc9C,GAAM,gBAAgB,mBAAqB,GACzDD,EAAU0C,EAAcK,EAAc,EACtCC,EAAW/E,EAAK,OAAO,GAAG,EAChCwE,EAAK,QAAUzC,EACfgD,EAAS,KACP,SACCP,EAAK,MAAQA,EAAK,MAAQ,IAAM,IAAM,kBAAoB,WAAazC,EAC5E,EACE,MAAMiD,EAAUD,EAAS,OAAO,GAAG,EAC7B5D,EAAW4D,EAAS,OAAO,GAAG,EAE9BE,EADM9D,EAAS,OAAO,MAAM,EAAE,KAAKqD,EAAK,KAAK,EAAE,KAAK,KAAM,KAAK,EAAE,KAAK,qBAAsB,QAAQ,EAAE,KAAK,oBAAqB,QAAQ,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAKV,GAAMU,EAAK,KAAK,EAClL,KAAI,EAAG,QAAO,EACzBU,EAAWlD,EAAK,UAAU,QAAUA,EAAK,SAAS,QAAQ,KAAM,EAAE,EAAIA,EAAK,SAYjF,GAXAwC,EAAK,OAASS,EAAK,OAASC,EAAW,IAAM,GAAMV,EAAK,QACxDA,EAAK,OAAS,KAAK,IAAIA,EAAK,OAAQA,EAAK,SAAS,EAClDA,EAAK,MAAQA,EAAK,MAAQ,EAAIA,EAAK,QACnCrD,EAAS,KAAK,YAAa,aAAeqD,EAAK,MAAQ,EAAI,KAAOA,EAAK,QAAU,EAAI,GAAG,EACpFK,GACF1D,EAAS,KACP,YACA,aAAaqD,EAAK,MAAQ,CAAC,KAAKE,EAAUF,EAAK,QAAU,EAAI,EAAIA,EAAK,OAAO,GACnF,EAEEW,GAAWH,EAASR,EAAMzC,EAASQ,EAAWP,CAAI,EAC9C4C,IAAS,QACXG,EAAS,KAAK,YAAa,KAAK,EAC5BF,GAAc,CAChB,MAAMO,EAAUT,EAAM,SAAS,MAAM,EAC/BU,EAAcrF,EAAK,KAAI,GAAI,iBAAmBA,EAAK,KAAI,EACvDsF,EAAUtB,EAAOqB,CAAW,EAC5BE,EAAQD,EAAQ,KAAK,IAAI,GAAK,GAC9BE,EAAeD,EAAQ,GAAGA,CAAK,eAAiB,cACtD,GAAID,EAAQ,OAAO,IAAIE,CAAY,EAAE,EAAE,QAAS,CAC9C,MAAMC,EAAeH,EAAQ,OAAO,MAAM,GAC3BG,EAAa,MAAK,EAAKH,EAAQ,OAAO,MAAM,EAAIG,GACxD,OAAO,QAAQ,EAAE,KAAK,KAAMD,CAAY,EAAE,KAAK,SAAU,MAAM,EAAE,KAAK,QAAS,MAAM,EAAE,OAAO,cAAc,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,gBAAiBJ,EAAU,MAAQ,MAAM,EAAE,KAAK,cAAeA,EAAU,UAAY,SAAS,CAClR,CACF,CAEF,OAAOZ,CACT,EAAG,UAAU,EACTkB,GAAuC3M,EAAO,SAASiH,EAAMwE,EAAMxC,EAAM,CAC3E,MAAMb,EAAWnB,EAAK,OAAO,GAAG,EAE1BiF,EADM9D,EAAS,OAAO,MAAM,EAAE,KAAKqD,EAAK,KAAK,EAAE,KAAK,KAAM,KAAK,EAAE,KAAK,qBAAsB,QAAQ,EAAE,KAAK,oBAAqB,QAAQ,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAKV,GAAMU,EAAK,KAAK,EAClL,KAAI,EAAG,QAAO,EACzBU,EAAWlD,EAAK,UAAU,QAAUA,EAAK,SAAS,QAAQ,KAAM,EAAE,EAAIA,EAAK,SACjF,OAAAb,EAAS,OAAM,EACR8D,EAAK,OAASC,EAAW,IAAM,GAAMV,EAAK,OACnD,EAAG,sBAAsB,EACrBW,GAA6BpM,EAAO,SAASiH,EAAMwE,EAAMzC,EAASQ,EAAWoD,EAAQ,CACvF,KAAM,CAAE,MAAAhB,CAAK,EAAKgB,EACZ9J,EAAI8I,GAAO,SAAS,OAAO,EAAI,EAAI,EACnCiB,EAAK,EACLC,EAAIhK,EAAI,EAAI,MAAM2I,EAAK,OAASoB,CAAE,KAAK,CAACpB,EAAK,OAAS,EAAIoB,CAAE,QAAQ/J,CAAC,IAAIA,CAAC,KAAKA,CAAC,KAAK2I,EAAK,MAAQ,EAAIoB,CAAE,KAAK/J,CAAC,MAAMA,CAAC,IAAIA,CAAC,KAAK2I,EAAK,OAASoB,CAAE,QAAU,MAAMpB,EAAK,OAASoB,CAAE,KAAK,EAAEpB,EAAK,OAASoB,EAAG,KAAKpB,EAAK,KAAK,KAAKA,EAAK,MAAM,QAC5OxE,EAAK,OAAO,MAAM,EAAE,KAAK,KAAMuC,EAAY,SAAWzC,IAAW,EAAE,KAAK,QAAS,iBAAmB0E,EAAK,IAAI,EAAE,KAAK,IAAKqB,CAAC,EACrHlB,GAAO,SAAS,OAAO,GAC1B3E,EAAK,OAAO,MAAM,EAAE,KAAK,QAAS,aAAe+B,CAAO,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAMyC,EAAK,MAAM,EAAE,KAAK,KAAMA,EAAK,KAAK,EAAE,KAAK,KAAMA,EAAK,MAAM,CAEjJ,EAAG,YAAY,EACXsB,EAAkB,CACpB,SAAA/F,EACA,WAAAe,GACA,YAAAgB,GACA,SAAAd,GACA,UAAAK,GACA,SAAAiB,GACA,mBAAAG,GACA,WAAAE,GACA,YAAAR,GACA,aAAAwB,GACA,SAAAY,GACA,qBAAAmB,EACF,EAGIK,GAAuBhN,EAAO,SAASiK,EAAMa,EAAImC,EAASC,EAAS,CACrE,MAAMjE,EAAOkE,GAAU,EACjB,CAAE,KAAAtB,EAAM,MAAAD,EAAO,eAAAwB,CAAc,EAAKnE,EAClC,CAAE,YAAAoE,EAAa,cAAAC,EAAe,aAAAC,CAAY,EAAKH,EAC/CI,EAAcvE,EAAK,UAAU,YAAc,GACjDwE,EAAI,MAAM,WAAYP,EAAQ,EAAE,EAChC,MAAMQ,EAAgBzE,EAAK,cAC3B,IAAI0E,EACAD,IAAkB,YACpBC,EAAiBC,EAAQ,KAAO9C,CAAE,GAGpC,MAAM+C,GADOH,IAAkB,UAAYE,EAAQD,EAAe,QAAQ,CAAC,EAAE,gBAAgB,IAAI,EAAIC,EAAQ,MAAM,GAClG,OAAO,IAAM9C,CAAE,EAChC+C,EAAI,OAAO,GAAG,EACd,MAAMC,EAASZ,EAAQ,GAAG,SAAQ,EAC5Ba,EAAQb,EAAQ,GAAG,YAAW,EAAG,gBAAe,EACtDO,EAAI,MAAM,OAAQK,CAAM,EACxBf,EAAgB,aAAac,EAAK/C,CAAE,EACpC,MAAMkD,EAAYd,EAAQ,GAAG,YAAW,EACxCO,EAAI,MAAM,WAAYO,CAAS,EAC/B,IAAIC,EAAmB,EACnBC,EAAgB,EAChBC,EAAS,EACTC,EAAgB,EAChBC,EAAU,GAAKb,EACfc,EAAU,GACdF,EAAgB,GAChB,IAAIG,EAAgB,EAChBC,EAAc,GAClBR,EAAU,QAAQ,SAAShF,EAAS,CAClC,MAAMyF,EAAc,CAClB,OAAQF,EACR,MAAOvF,EACP,QAASuF,EACT,MAAO,IACP,QAAS,GACT,UAAWN,CACjB,EACUS,EAAgB3B,EAAgB,qBAAqBc,EAAKY,EAAaxF,CAAI,EACjFwE,EAAI,MAAM,4BAA6BiB,CAAa,EACpDT,EAAmB,KAAK,IAAIA,EAAkBS,EAAgB,EAAE,CAClE,CAAC,EACD,IAAIC,EAAgB,EAChBC,EAAqB,EACzBnB,EAAI,MAAM,eAAgBK,EAAO,MAAM,EACvC,SAAW,CAAC3J,EAAGsC,CAAI,IAAKqH,EAAO,QAAO,EAAI,CACxC,MAAMe,EAAW,CACf,OAAQ1K,EACR,MAAOsC,EACP,QAASA,EAAK,QACd,MAAO,IACP,QAAS,GACT,UAAWyH,CACjB,EACUY,EAAa/B,EAAgB,qBAAqBc,EAAKgB,EAAU5F,CAAI,EAC3EwE,EAAI,MAAM,yBAA0BqB,CAAU,EAC9CZ,EAAgB,KAAK,IAAIA,EAAeY,EAAa,EAAE,EACvDH,EAAgB,KAAK,IAAIA,EAAelI,EAAK,OAAO,MAAM,EAC1D,IAAIsI,EAAyB,EAC7B,UAAWxI,KAASE,EAAK,OAAQ,CAC/B,MAAMuI,EAAY,CAChB,MAAOzI,EACP,QAASE,EAAK,QACd,OAAQA,EAAK,QACb,MAAO,IACP,QAAS,GACT,UAAW,EACnB,EACMsI,GAA0BhC,EAAgB,qBAAqBc,EAAKmB,EAAW/F,CAAI,CACrF,CACIxC,EAAK,OAAO,OAAS,IACvBsI,IAA2BtI,EAAK,OAAO,OAAS,GAAK,IAEvDmI,EAAqB,KAAK,IAAIA,EAAoBG,CAAsB,CAC1E,CACAtB,EAAI,MAAM,+BAAgCQ,CAAgB,EAC1DR,EAAI,MAAM,4BAA6BS,CAAa,EAChDF,GAAaA,EAAU,OAAS,EAClCA,EAAU,QAAShF,GAAY,CAC7B,MAAMiG,EAAkBnB,EAAO,OAAQrH,GAASA,EAAK,UAAYuC,CAAO,EAClEyF,EAAc,CAClB,OAAQF,EACR,MAAOvF,EACP,QAASuF,EACT,MAAO,IAAM,KAAK,IAAIU,EAAgB,OAAQ,CAAC,EAAI,GACnD,QAAS,GACT,UAAWhB,CACnB,EACMR,EAAI,MAAM,cAAegB,CAAW,EACpC,MAAMS,EAAqBrB,EAAI,OAAO,GAAG,EACnCpC,EAAOsB,EAAgB,SAASmC,EAAoBT,EAAaF,EAAetF,EAAM6B,CAAE,EAC9F2C,EAAI,MAAM,qBAAsBhC,CAAI,EACpCyD,EAAmB,KAAK,YAAa,aAAab,CAAO,KAAKD,CAAa,GAAG,EAC9EE,GAAWL,EAAmB,GAC1BgB,EAAgB,OAAS,GAC3BE,GACEtB,EACAoB,EACAV,EACAF,EACAC,EACAJ,EACAjF,EACA0F,EACAC,EACAX,EACA,GACAnD,CACV,EAEMuD,GAAW,IAAM,KAAK,IAAIY,EAAgB,OAAQ,CAAC,EACnDX,EAAUF,EACVG,GACF,CAAC,GAEDC,EAAc,GACdW,GACEtB,EACAC,EACAS,EACAF,EACAC,EACAJ,EACAjF,EACA0F,EACAC,EACAX,EACA,GACAnD,CACN,GAEE,MAAMsE,EAAMvB,EAAI,KAAI,EAAG,QAAO,EAQ9B,GAPAJ,EAAI,MAAM,SAAU2B,CAAG,EACnBrB,GACFF,EAAI,OAAO,MAAM,EAAE,KAAKE,CAAK,EAAE,KAAK,IAAKlC,IAAS,MAAQuD,EAAI,EAAI,EAAI5B,EAAc4B,EAAI,MAAQ,EAAI5B,CAAW,EAAE,KAAK,YAAa,KAAK,EAAE,KAAK,cAAe,MAAM,EAAE,KAAK,IAAK,EAAE,EAEpLW,EAASK,EAAcP,EAAmBC,EAAgB,IAAMA,EAAgB,IAC5DL,EAAI,OAAO,GAAG,EAAE,KAAK,QAAS,aAAa,EACnD,OAAO,MAAM,EAAE,KAAK,KAAML,CAAW,EAAE,KAAK,KAAMW,CAAM,EAAE,KAAK,KAAMiB,EAAI,MAAQ,EAAI5B,CAAW,EAAE,KAAK,KAAMW,CAAM,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,aAAc,QAAQrD,CAAE,aAAa,EACvNe,IAAS,OAASwB,GAAezB,IAAU,UAAW,CACxD,MAAMc,EAAemB,EAAI,OAAO,MAAM,EAEhCwB,GADS3C,EAAa,MAAK,EAAKmB,EAAI,OAAO,MAAM,EAAInB,GACnC,OAAO,gBAAgB,EAAE,KAAK,KAAMmB,EAAI,KAAK,IAAI,EAAI,WAAW,EAAE,KAAK,gBAAiB,mBAAmB,EAAE,KAAK,KAAM,IAAI,EAAE,KAAK,KAAM,IAAI,EAAE,KAAK,KAAM,MAAM,EAAE,KAAK,KAAM,IAAI,EACzMwB,EAAS,OAAO,MAAM,EAAE,KAAK,SAAU,IAAI,EAAE,KAAK,aAAc/B,CAAa,EAAE,KAAK,eAAgB,CAAC,EACrG+B,EAAS,OAAO,MAAM,EAAE,KAAK,SAAU,MAAM,EAAE,KAAK,aAAc9B,CAAY,EAAE,KAAK,eAAgB,CAAC,CACxG,CACA+B,GACE,OACAzB,EACA5E,EAAK,UAAU,SAAW,GAC1BA,EAAK,UAAU,aAAe,EAClC,CACA,EAAG,MAAM,EACLkG,GAA4BnP,EAAO,SAASuP,EAAUzB,EAAQ0B,EAAcnB,EAASC,EAASJ,EAAejF,EAAM0F,EAAeC,EAAoBX,EAAkBwB,EAAmBjG,EAAW,CACxM,UAAW/C,KAAQqH,EAAQ,CACzB,MAAMe,EAAW,CACf,MAAOpI,EAAK,KACZ,QAAS+I,EACT,OAAQA,EACR,MAAO,IACP,QAAS,GACT,UAAWtB,CACjB,EACIT,EAAI,MAAM,WAAYoB,CAAQ,EAC9B,MAAMa,EAAcH,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,aAAa,EAE9DT,EADO/B,EAAgB,SAAS2C,EAAab,EAAUW,EAAcvG,EAAMO,CAAS,EAClE,OAIxB,GAHAiE,EAAI,MAAM,wBAAyBqB,CAAU,EAC7CY,EAAY,KAAK,YAAa,aAAarB,CAAO,KAAKC,CAAO,GAAG,EACjEJ,EAAgB,KAAK,IAAIA,EAAeY,CAAU,EAC9CrI,EAAK,OAAQ,CACf,MAAMkJ,EAAcJ,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,aAAa,EACpE,IAAIK,EAAa1B,EACjBI,GAAW,IACXsB,EAAaA,EAAaC,GAAWN,EAAU9I,EAAK,OAAQ+I,EAAcnB,EAASC,EAASrF,EAAMO,CAAS,EAC3G8E,GAAW,IACXqB,EAAY,OAAO,MAAM,EAAE,KAAK,KAAMtB,EAAU,IAAM,CAAC,EAAE,KAAK,KAAMC,EAAUJ,CAAa,EAAE,KAAK,KAAMG,EAAU,IAAM,CAAC,EAAE,KAAK,KAAMC,EAAUJ,EAAgB,IAAMU,EAAqB,GAAG,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,aAAc,QAAQpF,CAAS,aAAa,EAAE,KAAK,mBAAoB,KAAK,CACnU,CACA6E,EAAUA,EAAU,IAChBoB,GAAqB,CAACxG,EAAK,UAAU,mBACvCuG,GAEJ,CACAlB,EAAUA,EAAU,EACtB,EAAG,WAAW,EACVuB,GAA6B7P,EAAO,SAASuP,EAAUO,EAAQN,EAAcnB,EAASC,EAASrF,EAAMO,EAAW,CAClH,IAAIuG,EAAiB,EACrB,MAAMC,EAAc1B,EACpBA,EAAUA,EAAU,IACpB,UAAW/H,KAASuJ,EAAQ,CAC1B,MAAMd,EAAY,CAChB,MAAOzI,EACP,QAASiJ,EACT,OAAQA,EACR,MAAO,IACP,QAAS,GACT,UAAW,EACjB,EACI/B,EAAI,MAAM,YAAauB,CAAS,EAChC,MAAMiB,EAAeV,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,cAAc,EAEhEW,EADOnD,EAAgB,SAASkD,EAAcjB,EAAWQ,EAAcvG,EAAMO,EAAW,EAAI,EACzE,OACzBuG,EAAiBA,EAAiBG,EAClCD,EAAa,KAAK,YAAa,aAAa5B,CAAO,KAAKC,CAAO,GAAG,EAClEA,EAAUA,EAAU,GAAK4B,CAC3B,CACA,OAAA5B,EAAU0B,EACHD,CACT,EAAG,YAAY,EACXI,GAA2B,CAC7B,QAAyBnQ,EAAO,IAAM,CACtC,EAAG,SAAS,EACZ,KAAAgN,EACF,EAGIoD,EAAa,IACbC,EAAe,EACfC,GAAmBF,EAAaC,EAAe,EAC/CE,GAAcH,EAAa,IAC3BI,GAAoBD,GAAcF,EAAe,EACjDI,GAAgB,GAChBC,GAAqB,EACrBC,GAAmB,GACnBC,GAAgB,GAChBC,GAAoB,GACpBC,GAAiB,GACjBC,GAAwB/Q,EAAO,SAASiK,EAAMa,EAAImC,EAASC,EAAS,CACtE,MAAMjE,EAAOkE,GAAU,EACjBK,EAAcvE,EAAK,UAAU,YAAc,GACjDwE,EAAI,MAAM,WAAYP,EAAQ,EAAE,EAChC,MAAMW,EAAMmD,GAAiBlG,CAAE,EAC/B+C,EAAI,OAAO,GAAG,EACd,MAAMC,EAASZ,EAAQ,GAAG,SAAQ,EAC5Ba,EAAQb,EAAQ,GAAG,YAAW,EAAG,gBAAe,EACtDO,EAAI,MAAM,OAAQK,CAAM,EACxBf,EAAgB,aAAac,CAAG,EAChC,MAAMG,EAAYd,EAAQ,GAAG,YAAW,EACxCO,EAAI,MAAM,WAAYO,CAAS,EAC/B,IAAIC,EAAmB,EACnBC,EAAgB,EACpB,MAAMG,EAAU,GAAKb,EACrB,IAAIc,EAAU,GACd,MAAM2C,EAAc3C,EACd4C,EAAgB7C,EAChB8C,EAAYb,GAAmBM,GAC/BQ,EAAaZ,GAAoBM,GACjCO,EAAQH,EAAgBC,EAC9B,IAAI5C,EAAgB,EACpB,MAAMC,EAAcR,GAAaA,EAAU,OAAS,EAC9CsD,EAAY9C,EAAc6C,EAAQhD,EAAU8C,EAC5CI,EAAe,KAAK,IAAI,GAAIJ,EAAYC,EAAaf,EAAe,CAAC,EAC3ErC,EAAU,QAAQ,SAAShF,EAAS,CAClC,MAAMyF,EAAc,CAClB,OAAQF,EACR,MAAOvF,EACP,QAASuF,EACT,MAAOgD,EACP,QAASlB,EACT,UAAWpC,CACjB,EACUS,EAAgB3B,EAAgB,qBAAqBc,EAAKY,EAAaxF,CAAI,EACjFwE,EAAI,MAAM,4BAA6BiB,CAAa,EACpDT,EAAmB,KAAK,IAAIA,EAAkBS,CAAa,CAC7D,CAAC,EACD,IAAI8C,EAAsB,EAC1B/D,EAAI,MAAM,eAAgBK,EAAO,MAAM,EACvC,SAAW,CAAC3J,EAAGsC,CAAI,IAAKqH,EAAO,QAAO,EAAI,CACxC,MAAMe,EAAW,CACf,OAAQ1K,EACR,MAAOsC,EACP,QAASA,EAAK,QACd,MAAO2J,EACP,QAASC,EACT,UAAWnC,CACjB,EACUY,EAAa/B,EAAgB,qBAAqBc,EAAKgB,EAAU5F,CAAI,EAC3EwE,EAAI,MAAM,yBAA0BqB,CAAU,EAC9CZ,EAAgB,KAAK,IAAIA,EAAeY,CAAU,EAClD,IAAI2C,EAA0B,EAC9B,UAAWlL,KAASE,EAAK,OAAQ,CAC/B,MAAMuI,EAAY,CAChB,MAAOzI,EACP,QAASE,EAAK,QACd,OAAQA,EAAK,QACb,MAAO8J,GACP,QAASF,EACT,UAAW,EACnB,EACMoB,GAA2B1E,EAAgB,qBAAqBc,EAAKmB,EAAW/F,CAAI,CACtF,CACIxC,EAAK,OAAO,OAAS,IACvBgL,IAA4BhL,EAAK,OAAO,OAAS,GAAKgK,IAExDe,EAAsB,KAAK,IAAIA,EAAqBC,CAAuB,EAAIf,EACjF,CACAjD,EAAI,MAAM,+BAAgCQ,CAAgB,EAC1DR,EAAI,MAAM,4BAA6BS,CAAa,EAEpD,MAAMwD,EADkB,KAAK,IAAIxD,EAAesD,CAAmB,EAC7BX,GAClCrC,EACFR,EAAU,QAAShF,GAAY,CAC7B,MAAMiG,EAAkBnB,EAAO,OAAQrH,GAASA,EAAK,UAAYuC,CAAO,EAClEyF,EAAc,CAClB,OAAQF,EACR,MAAOvF,EACP,QAASuF,EACT,MAAOgD,EACP,QAASlB,EACT,UAAWpC,CACnB,EACMR,EAAI,MAAM,cAAegB,CAAW,EACpC,MAAMS,EAAqBrB,EAAI,OAAO,GAAG,EACnCpC,EAAOsB,EAAgB,SAASmC,EAAoBT,EAAaF,EAAetF,CAAI,EAC1FwE,EAAI,MAAM,qBAAsBhC,CAAI,EACpC,MAAMkG,EAAWL,EAAYH,EAC7BjC,EAAmB,KAAK,YAAa,aAAayC,CAAQ,KAAKrD,CAAO,GAAG,EACzE,MAAMsD,EAAatD,EAAU7C,EAAK,OAASkF,GACvC1B,EAAgB,OAAS,GAC3B4C,GACEhE,EACAoB,EACAV,EACA+C,EACAM,EACA1D,EACAjF,EACAyI,EACA,EACV,EAEM,MAAMI,EAAa7C,EAAgB,OAC7BP,EAAgBjD,EAAK,OAASkF,GAAmBe,EAAc,KAAK,IAAII,EAAY,CAAC,GAAKA,EAAa,EAAIjB,GAAoB,EAAI,GACzIvC,GAAWI,EACXH,GACF,CAAC,EAEDsD,GACEhE,EACAC,EACAS,EACA+C,EACAhD,EACAJ,EACAjF,EACAyI,EACA,EACN,EAEE,IAAItC,EAAMvB,EAAI,KAAI,GAAI,QAAO,EAC7B,GAAI,CAACuB,EACH,MAAM,IAAI,MAAM,gBAAgB,EAGlC,GADA3B,EAAI,MAAM,SAAU2B,CAAG,EACnBrB,EAAO,CAGT,GAFAF,EAAI,OAAO,MAAM,EAAE,KAAKE,CAAK,EAAE,KAAK,IAAKqB,EAAI,MAAQ,EAAI5B,CAAW,EAAE,KAAK,YAAa,KAAK,EAAE,KAAK,cAAe,MAAM,EAAE,KAAK,IAAK,EAAE,EACvI4B,EAAMvB,EAAI,KAAI,GAAI,QAAO,EACrB,CAACuB,EACH,MAAM,IAAI,MAAM,gBAAgB,EAElC3B,EAAI,MAAM,qBAAsB2B,CAAG,CACrC,CACA,KAAM,CAACjD,CAAQ,EAAI4F,GAAc9I,EAAK,QAAQ,EACxC+I,GAAkB7F,GAAY,IAAM,EACpC8F,GAAsB9F,GAAY,IAAM,GAAM,GAC9CwD,EAAc9B,EAAI,OAAO,GAAG,EAAE,KAAK,QAAS,aAAa,EAC/D8B,EAAY,OAAO,MAAM,EAAE,KAAK,KAAM2B,CAAS,EAAE,KAAK,KAAML,EAAce,CAAc,EAAE,KAAK,KAAMV,CAAS,EAAE,KAAK,KAAMlC,EAAI,EAAIA,EAAI,OAAS6C,CAAkB,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,aAAc,iBAAiB,EACxPtC,EAAY,MAAK,EACjBL,GACE,OACAzB,EACA5E,EAAK,UAAU,SAAW,GAC1BA,EAAK,UAAU,aAAe,EAClC,CACA,EAAG,MAAM,EACL4I,GAA6B7R,EAAO,SAASuP,EAAUzB,EAAQ0B,EAAc8B,EAAWhD,EAASJ,EAAejF,EAAMyI,EAAajC,EAAmB,CACxJ,UAAWhJ,KAAQqH,EAAQ,CACzB,MAAMe,EAAW,CACf,MAAOpI,EAAK,KACZ,QAAS+I,EACT,OAAQA,EACR,MAAOY,EACP,QAASC,EACT,UAAWnC,CACjB,EACIT,EAAI,MAAM,WAAYoB,CAAQ,EAC9B,MAAMa,EAAcH,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,aAAa,EAC9D9D,EAAOsB,EAAgB,SAAS2C,EAAab,EAAUW,EAAcvG,CAAI,EACzE6F,EAAarD,EAAK,OACxBgC,EAAI,MAAM,wBAAyBqB,CAAU,EAC7C,MAAMoD,EAAQZ,EAAYV,GAAgBnF,EAAK,MAG/C,GAFAiE,EAAY,KAAK,YAAa,aAAawC,CAAK,KAAK5D,CAAO,GAAG,EAC/DJ,EAAgB,KAAK,IAAIA,EAAeY,CAAU,EAC9CrI,EAAK,QAAUA,EAAK,OAAO,OAAS,EAAG,CACzC,MAAM0L,EAAe7D,EACf8D,EAAUd,EAAYR,GAC5BuB,GAAY9C,EAAU9I,EAAK,OAAQ+I,EAAc8B,EAAWc,EAASD,EAAclJ,CAAI,CACzF,CACAqF,EAAUA,EAAUoD,EAChBjC,GAAqB,CAACxG,EAAK,UAAU,mBACvCuG,GAEJ,CACF,EAAG,WAAW,EACV6C,GAA8BrS,EAAO,SAASuP,EAAUO,EAAQN,EAAc6B,EAAOe,EAASE,EAAQrJ,EAAM,CAC9G,IAAIsJ,EAAWD,EACf,UAAW/L,KAASuJ,EAAQ,CAC1B,MAAMd,EAAY,CAChB,MAAOzI,EACP,QAASiJ,EACT,OAAQA,EACR,MAAOe,GACP,QAASF,EACT,UAAW,CACjB,EACI5C,EAAI,MAAM,YAAauB,CAAS,EAChC,MAAMiB,EAAeV,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,cAAc,EAEhEW,EADOnD,EAAgB,SAASkD,EAAcjB,EAAWQ,EAAcvG,CAAI,EACxD,OACzBgH,EAAa,KAAK,YAAa,aAAamC,CAAO,KAAKG,CAAQ,GAAG,EACnE,MAAM5C,EAAcJ,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,aAAa,EAC9DiD,EAAQD,EAAWrC,EAAc,EACvCP,EAAY,OAAO,MAAM,EAAE,KAAK,KAAM0B,CAAK,EAAE,KAAK,KAAMmB,CAAK,EAAE,KAAK,KAAMJ,CAAO,EAAE,KAAK,KAAMI,CAAK,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,aAAc,iBAAiB,EAAE,KAAK,mBAAoB,KAAK,EACzND,EAAWA,EAAWrC,EAAcO,EACtC,CACA,OAAO8B,EAAWD,CACpB,EAAG,YAAY,EACXG,GAAmC,CACrC,QAAyBzS,EAAO,IAAM,CACtC,EAAG,SAAS,EACZ,KAAM+Q,EACR,EAII2B,GAAmC1S,EAAQ2S,GAAY,CACzD,KAAM,CAAE,MAAA/G,CAAK,EAAKgH,GAAS,EACrBC,EAAcjH,GAAO,SAAS,MAAM,EACpCkH,EAAelH,GAAO,SAAS,OAAO,EACtCmH,EAAWJ,EAAQ,OAAO,QAAQ,KAAM,EAAE,GAAK,GAC/CK,EAAmBD,EAAW,QAAQA,CAAQ,gBAAkBJ,EAAQ,YAAc,OAC5F,IAAI3E,EAAY,GAChB,QAAS7J,EAAI,EAAGA,EAAIwO,EAAQ,kBAAmBxO,IAAK,CAClD,MAAM8O,EAAK,GAAG,GAAK,EAAI9O,CAAC,GAClB+O,EAAQJ,EAAeH,EAAQ,iBAAiBxO,CAAC,EAAIwO,EAAQ,QAC7DQ,EAASL,EAAeH,EAAQ,iBAAiBxO,CAAC,EAAIwO,EAAQ,WACpE3E,GAAa;AAAA,eACF7J,EAAI,CAAC;AAAA,eACLA,EAAI,CAAC;AAAA,eACLA,EAAI,CAAC;AAAA,cACN0O,GAAeC,EAAeH,EAAQ,QAAUO,CAAK;AAAA,gBACnDC,CAAM;AAAA,sBACAR,EAAQ,WAAW;AAAA,gBACzBK,CAAgB;AAAA;AAAA;AAAA,eAGjB7O,EAAI,CAAC;AAAA,cACNwO,EAAQ,UAAU;AAAA,qBACXA,EAAQ,UAAU;AAAA;AAAA;AAAA,iBAGtBxO,EAAI,CAAC;AAAA;AAAA,eAEPwO,EAAQ,cAAgBxO,CAAC,CAAC;AAAA;AAAA;AAAA,oBAGrBA,EAAI,CAAC;AAAA,gBACTwO,EAAQ,SAAWxO,CAAC,CAAC;AAAA;AAAA;AAAA,kBAGnBA,EAAI,CAAC;AAAA,sBACD8O,CAAE;AAAA;AAAA;AAAA,eAGT9O,EAAI,CAAC;AAAA,gBACJwO,EAAQ,YAAcxO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKxBwO,EAAQ,UAAU;AAAA,qBACbA,EAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAM1BA,EAAQ,eAAiB,WAAW;AAAA;AAAA;AAAA;AAAA,cAIpCA,EAAQ,eAAiB,SAAS;AAAA;AAAA,KAG9C,CACA,OAAO3E,CACT,EAAG,kBAAkB,EACjBoF,GAA8BpT,EAAQ2S,GAAY,CACpD,IAAI3E,EAAY,GAChB,QAAS7J,EAAI,EAAGA,EAAIwO,EAAQ,kBAAmBxO,IAC7CwO,EAAQ,YAAcxO,CAAC,EAAIwO,EAAQ,YAAcxO,CAAC,GAAKwO,EAAQ,YAAcxO,CAAC,EAC1EkP,GAAOV,EAAQ,YAAcxO,CAAC,CAAC,EACjCwO,EAAQ,YAAcxO,CAAC,EAAImP,GAAQX,EAAQ,YAAcxO,CAAC,EAAG,EAAE,EAE/DwO,EAAQ,YAAcxO,CAAC,EAAIoP,GAAOZ,EAAQ,YAAcxO,CAAC,EAAG,EAAE,EAGlE,QAASA,EAAI,EAAGA,EAAIwO,EAAQ,kBAAmBxO,IAAK,CAClD,MAAM8O,EAAK,IAAM,GAAK,EAAI9O,GAC1B6J,GAAa;AAAA,eACF7J,EAAI,CAAC,mBAAmBA,EAAI,CAAC,mBAAmBA,EAAI,CAAC,qBAAqBA,EAAI,CAAC;AAAA,cAChFwO,EAAQ,SAAWxO,CAAC,CAAC;AAAA;AAAA,eAEpBA,EAAI,CAAC;AAAA,aACPwO,EAAQ,cAAgBxO,CAAC,CAAC;AAAA;AAAA,iBAEtBA,EAAI,CAAC;AAAA;AAAA,eAEPwO,EAAQ,cAAgBxO,CAAC,CAAC;AAAA;AAAA,oBAErBA,EAAI,CAAC;AAAA,gBACTwO,EAAQ,SAAWxO,CAAC,CAAC;AAAA;AAAA,kBAEnBA,EAAI,CAAC;AAAA,sBACD8O,CAAE;AAAA;AAAA,eAET9O,EAAI,CAAC;AAAA,gBACJwO,EAAQ,YAAcxO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKxBwO,EAAQ,cAAgBxO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,cAI5BwO,EAAQ,eAAiB,WAAW;AAAA;AAAA;AAAA,cAGpCA,EAAQ,eAAiB,SAAS;AAAA;AAAA,KAG9C,CACA,OAAO3E,CACT,EAAG,aAAa,EACZwF,GAA4BxT,EAAQ2S,GAAY,CAClD,KAAM,CAAE,MAAA/G,CAAK,EAAKgH,GAAS,EACrB9G,EAAeF,GAAO,SAAS,OAAO,EACtC6H,EAAiB7H,IAAU,UAC3BmH,EAAWJ,EAAQ,OAAO,QAAQ,KAAM,EAAE,GAAK,GACrD,IAAIe,EAAmB,GACvB,GAAIf,EAAQ,aAAeI,GAAYJ,EAAQ,mBAAqB,CAACc,EACnE,QAAStP,EAAI,EAAGA,EAAIwO,EAAQ,kBAAmBxO,IAC7CuP,GAAoB;AAAA,iBACTvP,EAAI,CAAC;AAAA,iBACLA,EAAI,CAAC;AAAA,iBACLA,EAAI,CAAC;AAAA,gBACNwO,EAAQ,OAAO;AAAA,uBACRI,CAAQ;AAAA;AAAA;AAAA,iBAGd5O,EAAI,CAAC;AAAA,uBACC4O,CAAQ;AAAA;AAAA,SAK7B,MAAO;AAAA;AAAA;AAAA;AAAA,IAILjH,EAAe4G,GAAiBC,CAAO,EAAIS,GAAYT,CAAO,CAAC;AAAA,IAC/De,CAAgB;AAAA;AAAA,YAERf,EAAQ,IAAI;AAAA;AAAA;AAAA,YAGZA,EAAQ,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAenC,EAAG,WAAW,EACVgB,GAAiBH,GAGjBI,GAAmB,CACrB,QAAyB5T,EAAO,IAAM,CACtC,EAAG,SAAS,EACZ,KAAsBA,EAAO,CAACiK,EAAMa,EAAImC,EAASC,KAC5BA,GAAS,IAAI,eAAY,GAAQ,QACjC,KACVuF,GAAiC,KAAKxI,EAAMa,EAAImC,EAASC,CAAO,EAElEiD,GAAyB,KAAKlG,EAAMa,EAAImC,EAASC,CAAO,EAC9D,MAAM,CACX,EACI2G,GAAU,CACZ,GAAInP,GACJ,SAAUkP,GACV,OAAQnP,GACR,OAAQkP,EACV","x_google_ignoreList":[0]}