diff --git a/CHANGELOG.md b/CHANGELOG.md index fd5bd7d..0fe510c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## 0.4.1 + +* Update dependencies. + * mermaid `8.14.0` from `9.1.3` + ## 0.4.0 * Add new features. diff --git a/README.md b/README.md index ea0b881..2e62c8a 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,11 @@ This is usefull to avoid multipicate the same code on many files. [CHANGELOG.md](CHANGELOG.md) +## 0.4.1 + +* Update dependencies. + * mermaid `8.14.0` from `9.1.3` + ## 0.4.0 * Add new features. diff --git a/dist/mermaid/mermaid.core.js b/dist/mermaid/mermaid.core.js index c7f24be..37d6662 100644 --- a/dist/mermaid/mermaid.core.js +++ b/dist/mermaid/mermaid.core.js @@ -1,2 +1,2 @@ /*! For license information please see mermaid.core.js.LICENSE.txt */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,(function(){return(()=>{var t={"./src/diagrams/class/parser/classDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,6],r=[1,7],i=[1,8],n=[1,9],a=[1,12],s=[1,11],o=[1,15,24],l=[1,19],c=[1,31],h=[1,34],u=[1,32],d=[1,33],p=[1,35],g=[1,36],f=[1,37],y=[1,38],m=[1,41],b=[1,42],x=[1,43],v=[1,44],k=[15,24],C=[1,56],T=[1,57],w=[1,58],_=[1,59],E=[1,60],S=[1,61],A=[15,24,31,38,39,47,50,51,52,53,54,55,60,62],B=[15,24,29,31,38,39,43,47,50,51,52,53,54,55,60,62,77,78,79,80],D=[7,8,9,10,15,18,22,24],L=[47,77,78,79,80],I=[47,54,55,77,78,79,80],O=[47,50,51,52,53,77,78,79,80],N=[15,24,31],R=[1,93],F={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,CLASS_DIAGRAM:22,statements:23,EOF:24,statement:25,className:26,alphaNumToken:27,classLiteralName:28,GENERICTYPE:29,relationStatement:30,LABEL:31,classStatement:32,methodStatement:33,annotationStatement:34,clickStatement:35,cssClassStatement:36,CLASS:37,STYLE_SEPARATOR:38,STRUCT_START:39,members:40,STRUCT_STOP:41,ANNOTATION_START:42,ANNOTATION_END:43,MEMBER:44,SEPARATOR:45,relation:46,STR:47,relationType:48,lineType:49,AGGREGATION:50,EXTENSION:51,COMPOSITION:52,DEPENDENCY:53,LINE:54,DOTTED_LINE:55,CALLBACK:56,LINK:57,LINK_TARGET:58,CLICK:59,CALLBACK_NAME:60,CALLBACK_ARGS:61,HREF:62,CSSCLASS:63,commentToken:64,textToken:65,graphCodeTokens:66,textNoTagsToken:67,TAGSTART:68,TAGEND:69,"==":70,"--":71,PCT:72,DEFAULT:73,SPACE:74,MINUS:75,keywords:76,UNICODE_TEXT:77,NUM:78,ALPHA:79,BQUOTE_STR:80,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"CLASS_DIAGRAM",24:"EOF",29:"GENERICTYPE",31:"LABEL",37:"CLASS",38:"STYLE_SEPARATOR",39:"STRUCT_START",41:"STRUCT_STOP",42:"ANNOTATION_START",43:"ANNOTATION_END",44:"MEMBER",45:"SEPARATOR",47:"STR",50:"AGGREGATION",51:"EXTENSION",52:"COMPOSITION",53:"DEPENDENCY",54:"LINE",55:"DOTTED_LINE",56:"CALLBACK",57:"LINK",58:"LINK_TARGET",59:"CLICK",60:"CALLBACK_NAME",61:"CALLBACK_ARGS",62:"HREF",63:"CSSCLASS",66:"graphCodeTokens",68:"TAGSTART",69:"TAGEND",70:"==",71:"--",72:"PCT",73:"DEFAULT",74:"SPACE",75:"MINUS",76:"keywords",77:"UNICODE_TEXT",78:"NUM",79:"ALPHA",80:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[23,1],[23,2],[23,3],[26,1],[26,1],[26,2],[26,2],[26,2],[25,1],[25,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[32,2],[32,4],[32,5],[32,7],[34,4],[40,1],[40,2],[33,1],[33,2],[33,1],[33,1],[30,3],[30,4],[30,4],[30,5],[46,3],[46,2],[46,2],[46,1],[48,1],[48,1],[48,1],[48,1],[49,1],[49,1],[35,3],[35,4],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[36,3],[64,1],[64,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[67,1],[67,1],[67,1],[67,1],[27,1],[27,1],[27,1],[28,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:i.parseDirective(a[o],"type_directive");break;case 13:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","class");break;case 19:case 20:this.$=a[o];break;case 21:this.$=a[o-1]+a[o];break;case 22:case 23:this.$=a[o-1]+"~"+a[o];break;case 24:i.addRelation(a[o]);break;case 25:a[o-1].title=i.cleanupLabel(a[o]),i.addRelation(a[o-1]);break;case 33:i.addClass(a[o]);break;case 34:i.addClass(a[o-2]),i.setCssClass(a[o-2],a[o]);break;case 35:i.addClass(a[o-3]),i.addMembers(a[o-3],a[o-1]);break;case 36:i.addClass(a[o-5]),i.setCssClass(a[o-5],a[o-3]),i.addMembers(a[o-5],a[o-1]);break;case 37:i.addAnnotation(a[o],a[o-2]);break;case 38:this.$=[a[o]];break;case 39:a[o].push(a[o-1]),this.$=a[o];break;case 40:case 42:case 43:break;case 41:i.addMember(a[o-1],i.cleanupLabel(a[o]));break;case 44:this.$={id1:a[o-2],id2:a[o],relation:a[o-1],relationTitle1:"none",relationTitle2:"none"};break;case 45:this.$={id1:a[o-3],id2:a[o],relation:a[o-1],relationTitle1:a[o-2],relationTitle2:"none"};break;case 46:this.$={id1:a[o-3],id2:a[o],relation:a[o-2],relationTitle1:"none",relationTitle2:a[o-1]};break;case 47:this.$={id1:a[o-4],id2:a[o],relation:a[o-2],relationTitle1:a[o-3],relationTitle2:a[o-1]};break;case 48:this.$={type1:a[o-2],type2:a[o],lineType:a[o-1]};break;case 49:this.$={type1:"none",type2:a[o],lineType:a[o-1]};break;case 50:this.$={type1:a[o-1],type2:"none",lineType:a[o]};break;case 51:this.$={type1:"none",type2:"none",lineType:a[o]};break;case 52:this.$=i.relationType.AGGREGATION;break;case 53:this.$=i.relationType.EXTENSION;break;case 54:this.$=i.relationType.COMPOSITION;break;case 55:this.$=i.relationType.DEPENDENCY;break;case 56:this.$=i.lineType.LINE;break;case 57:this.$=i.lineType.DOTTED_LINE;break;case 58:case 64:this.$=a[o-2],i.setClickEvent(a[o-1],a[o]);break;case 59:case 65:this.$=a[o-3],i.setClickEvent(a[o-2],a[o-1]),i.setTooltip(a[o-2],a[o]);break;case 60:case 68:this.$=a[o-2],i.setLink(a[o-1],a[o]);break;case 61:case 69:this.$=a[o-3],i.setLink(a[o-2],a[o-1],a[o]);break;case 62:case 70:this.$=a[o-3],i.setLink(a[o-2],a[o-1]),i.setTooltip(a[o-2],a[o]);break;case 63:case 71:this.$=a[o-4],i.setLink(a[o-3],a[o-2],a[o]),i.setTooltip(a[o-3],a[o-1]);break;case 66:this.$=a[o-3],i.setClickEvent(a[o-2],a[o-1],a[o]);break;case 67:this.$=a[o-4],i.setClickEvent(a[o-3],a[o-2],a[o-1]),i.setTooltip(a[o-3],a[o]);break;case 72:i.setCssClass(a[o-1],a[o])}},table:[{3:1,4:2,5:3,6:4,7:e,8:r,9:i,10:n,11:5,12:10,18:a,22:s},{1:[3]},{1:[2,1]},{1:[2,2]},{3:13,4:2,5:3,6:4,7:e,8:r,9:i,10:n,11:5,12:10,18:a,22:s},{1:[2,8]},t(o,[2,4]),t(o,[2,5]),t(o,[2,6]),t(o,[2,7]),{13:14,19:[1,15]},{15:[1,16]},{19:[2,11]},{1:[2,3]},{14:17,16:[1,18],21:l},t([16,21],[2,12]),{5:29,6:28,7:e,8:r,9:i,10:n,12:10,18:a,23:20,25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:c,42:h,44:u,45:d,56:p,57:g,59:f,63:y,77:m,78:b,79:x,80:v},{15:[1,45]},{17:46,20:[1,47]},{15:[2,14]},{24:[1,48]},{15:[1,49],24:[2,16]},t(k,[2,24],{31:[1,50]}),t(k,[2,26]),t(k,[2,27]),t(k,[2,28]),t(k,[2,29]),t(k,[2,30]),t(k,[2,31]),t(k,[2,32]),t(k,[2,40],{46:51,48:54,49:55,31:[1,53],47:[1,52],50:C,51:T,52:w,53:_,54:E,55:S}),{26:62,27:39,28:40,77:m,78:b,79:x,80:v},t(k,[2,42]),t(k,[2,43]),{27:63,77:m,78:b,79:x},{26:64,27:39,28:40,77:m,78:b,79:x,80:v},{26:65,27:39,28:40,77:m,78:b,79:x,80:v},{26:66,27:39,28:40,77:m,78:b,79:x,80:v},{47:[1,67]},t(A,[2,19],{27:39,28:40,26:68,29:[1,69],77:m,78:b,79:x,80:v}),t(A,[2,20],{29:[1,70]}),t(B,[2,86]),t(B,[2,87]),t(B,[2,88]),t([15,24,29,31,38,39,47,50,51,52,53,54,55,60,62],[2,89]),t(D,[2,9]),{14:71,21:l},{21:[2,13]},{1:[2,15]},{5:29,6:28,7:e,8:r,9:i,10:n,12:10,18:a,23:72,24:[2,17],25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:c,42:h,44:u,45:d,56:p,57:g,59:f,63:y,77:m,78:b,79:x,80:v},t(k,[2,25]),{26:73,27:39,28:40,47:[1,74],77:m,78:b,79:x,80:v},{46:75,48:54,49:55,50:C,51:T,52:w,53:_,54:E,55:S},t(k,[2,41]),{49:76,54:E,55:S},t(L,[2,51],{48:77,50:C,51:T,52:w,53:_}),t(I,[2,52]),t(I,[2,53]),t(I,[2,54]),t(I,[2,55]),t(O,[2,56]),t(O,[2,57]),t(k,[2,33],{38:[1,78],39:[1,79]}),{43:[1,80]},{47:[1,81]},{47:[1,82]},{60:[1,83],62:[1,84]},{27:85,77:m,78:b,79:x},t(A,[2,21]),t(A,[2,22]),t(A,[2,23]),{15:[1,86]},{24:[2,18]},t(N,[2,44]),{26:87,27:39,28:40,77:m,78:b,79:x,80:v},{26:88,27:39,28:40,47:[1,89],77:m,78:b,79:x,80:v},t(L,[2,50],{48:90,50:C,51:T,52:w,53:_}),t(L,[2,49]),{27:91,77:m,78:b,79:x},{40:92,44:R},{26:94,27:39,28:40,77:m,78:b,79:x,80:v},t(k,[2,58],{47:[1,95]}),t(k,[2,60],{47:[1,97],58:[1,96]}),t(k,[2,64],{47:[1,98],61:[1,99]}),t(k,[2,68],{47:[1,101],58:[1,100]}),t(k,[2,72]),t(D,[2,10]),t(N,[2,46]),t(N,[2,45]),{26:102,27:39,28:40,77:m,78:b,79:x,80:v},t(L,[2,48]),t(k,[2,34],{39:[1,103]}),{41:[1,104]},{40:105,41:[2,38],44:R},t(k,[2,37]),t(k,[2,59]),t(k,[2,61]),t(k,[2,62],{58:[1,106]}),t(k,[2,65]),t(k,[2,66],{47:[1,107]}),t(k,[2,69]),t(k,[2,70],{58:[1,108]}),t(N,[2,47]),{40:109,44:R},t(k,[2,35]),{41:[2,39]},t(k,[2,63]),t(k,[2,67]),t(k,[2,71]),{41:[1,110]},t(k,[2,36])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],12:[2,11],13:[2,3],19:[2,14],47:[2,13],48:[2,15],72:[2,18],105:[2,39]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},j={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:case 10:case 12:case 19:break;case 11:return 15;case 13:case 14:return 22;case 15:return this.begin("struct"),39;case 16:return"EOF_IN_STRUCT";case 17:return"OPEN_IN_STRUCT";case 18:return this.popState(),41;case 20:return"MEMBER";case 21:return 37;case 22:return 63;case 23:return 56;case 24:return 57;case 25:return 59;case 26:return 42;case 27:return 43;case 28:this.begin("generic");break;case 29:case 32:case 35:case 38:case 41:case 44:this.popState();break;case 30:return"GENERICTYPE";case 31:this.begin("string");break;case 33:return"STR";case 34:this.begin("bqstring");break;case 36:return"BQUOTE_STR";case 37:this.begin("href");break;case 39:return 62;case 40:this.begin("callback_name");break;case 42:this.popState(),this.begin("callback_args");break;case 43:return 60;case 45:return 61;case 46:case 47:case 48:case 49:return 58;case 50:case 51:return 51;case 52:case 53:return 53;case 54:return 52;case 55:return 50;case 56:return 54;case 57:return 55;case 58:return 31;case 59:return 38;case 60:return 75;case 61:return"DOT";case 62:return"PLUS";case 63:return 72;case 64:case 65:return"EQUALS";case 66:return 79;case 67:return"PUNCTUATION";case 68:return 78;case 69:return 77;case 70:return 74;case 71:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[44,45],inclusive:!1},callback_name:{rules:[41,42,43],inclusive:!1},href:{rules:[38,39],inclusive:!1},struct:{rules:[16,17,18,19,20],inclusive:!1},generic:{rules:[29,30],inclusive:!1},bqstring:{rules:[35,36],inclusive:!1},string:{rules:[32,33],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,31,34,37,40,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71],inclusive:!0}}};function M(){this.yy={}}return F.lexer=j,M.prototype=F,F.Parser=M,new M}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?35ed").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/er/parser/erDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,5],i=[6,9,11,23,41],n=[1,17],a=[1,20],s=[1,25],o=[1,26],l=[1,27],c=[1,28],h=[1,37],u=[23,38,39],d=[4,6,9,11,23,41],p=[34,35,36,37],g=[22,29],f=[1,55],y={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,ALPHANUM:23,attribute:24,attributeType:25,attributeName:26,attributeKeyType:27,attributeComment:28,ATTRIBUTE_WORD:29,ATTRIBUTE_KEY:30,COMMENT:31,cardinality:32,relType:33,ZERO_OR_ONE:34,ZERO_OR_MORE:35,ONE_OR_MORE:36,ONLY_ONE:37,NON_IDENTIFYING:38,IDENTIFYING:39,WORD:40,open_directive:41,type_directive:42,arg_directive:43,close_directive:44,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"ALPHANUM",29:"ATTRIBUTE_WORD",30:"ATTRIBUTE_KEY",31:"COMMENT",34:"ZERO_OR_ONE",35:"ZERO_OR_MORE",36:"ONE_OR_MORE",37:"ONLY_ONE",38:"NON_IDENTIFYING",39:"IDENTIFYING",40:"WORD",41:"open_directive",42:"type_directive",43:"arg_directive",44:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[17,1],[21,1],[21,2],[24,2],[24,3],[24,3],[24,4],[25,1],[26,1],[27,1],[28,1],[18,3],[32,1],[32,1],[32,1],[32,1],[33,1],[33,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:a[o-1].push(a[o]),this.$=a[o-1];break;case 5:case 6:case 16:case 23:case 24:case 25:case 35:this.$=a[o];break;case 12:i.addEntity(a[o-4]),i.addEntity(a[o-2]),i.addRelationship(a[o-4],a[o],a[o-2],a[o-3]);break;case 13:i.addEntity(a[o-3]),i.addAttributes(a[o-3],a[o-1]);break;case 14:i.addEntity(a[o-2]);break;case 15:i.addEntity(a[o]);break;case 17:this.$=[a[o]];break;case 18:a[o].push(a[o-1]),this.$=a[o];break;case 19:this.$={attributeType:a[o-1],attributeName:a[o]};break;case 20:this.$={attributeType:a[o-2],attributeName:a[o-1],attributeKeyType:a[o]};break;case 21:this.$={attributeType:a[o-2],attributeName:a[o-1],attributeComment:a[o]};break;case 22:this.$={attributeType:a[o-3],attributeName:a[o-2],attributeKeyType:a[o-1],attributeComment:a[o]};break;case 26:case 34:this.$=a[o].replace(/"/g,"");break;case 27:this.$={cardA:a[o],relType:a[o-1],cardB:a[o-2]};break;case 28:this.$=i.Cardinality.ZERO_OR_ONE;break;case 29:this.$=i.Cardinality.ZERO_OR_MORE;break;case 30:this.$=i.Cardinality.ONE_OR_MORE;break;case 31:this.$=i.Cardinality.ONLY_ONE;break;case 32:this.$=i.Identification.NON_IDENTIFYING;break;case 33:this.$=i.Identification.IDENTIFYING;break;case 36:i.parseDirective("%%{","open_directive");break;case 37:i.parseDirective(a[o],"type_directive");break;case 38:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 39:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,41:r},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,41:r},{13:8,42:[1,9]},{42:[2,36]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:n,41:r},{1:[2,2]},{14:18,15:[1,19],44:a},t([15,44],[2,37]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:15,10:21,12:4,17:16,23:n,41:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),t(i,[2,15],{18:22,32:24,20:[1,23],34:s,35:o,36:l,37:c}),t([6,9,11,15,20,23,34,35,36,37,41],[2,16]),{11:[1,29]},{16:30,43:[1,31]},{11:[2,39]},t(i,[2,5]),{17:32,23:n},{21:33,22:[1,34],24:35,25:36,29:h},{33:38,38:[1,39],39:[1,40]},t(u,[2,28]),t(u,[2,29]),t(u,[2,30]),t(u,[2,31]),t(d,[2,9]),{14:41,44:a},{44:[2,38]},{15:[1,42]},{22:[1,43]},t(i,[2,14]),{21:44,22:[2,17],24:35,25:36,29:h},{26:45,29:[1,46]},{29:[2,23]},{32:47,34:s,35:o,36:l,37:c},t(p,[2,32]),t(p,[2,33]),{11:[1,48]},{19:49,23:[1,51],40:[1,50]},t(i,[2,13]),{22:[2,18]},t(g,[2,19],{27:52,28:53,30:[1,54],31:f}),t([22,29,30,31],[2,24]),{23:[2,27]},t(d,[2,10]),t(i,[2,12]),t(i,[2,34]),t(i,[2,35]),t(g,[2,20],{28:56,31:f}),t(g,[2,21]),t([22,29,31],[2,25]),t(g,[2,26]),t(g,[2,22])],defaultActions:{5:[2,36],7:[2,2],20:[2,39],31:[2,38],37:[2,23],44:[2,18],47:[2,27]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},m={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),41;case 1:return this.begin("type_directive"),42;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),44;case 4:return 43;case 5:case 6:case 8:case 13:case 17:break;case 7:return 11;case 9:return 9;case 10:return 40;case 11:return 4;case 12:return this.begin("block"),20;case 14:return 30;case 15:return 29;case 16:return 31;case 18:return this.popState(),22;case 19:case 32:return e.yytext[0];case 20:case 24:return 34;case 21:case 25:return 35;case 22:case 26:return 36;case 23:return 37;case 27:case 29:case 30:return 38;case 28:return 39;case 31:return 23;case 33:return 6}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:\s+)/i,/^(?:(?:PK)|(?:FK))/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\|o\b)/i,/^(?:\}o\b)/i,/^(?:\}\|)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},block:{rules:[13,14,15,16,17,18,19],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,20,21,22,23,24,25,26,27,28,29,30,31,32,33],inclusive:!0}}};function b(){this.yy={}}return y.lexer=m,b.prototype=y,y.Parser=b,new b}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?3c87").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/flowchart/parser/flow.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,9],r=[1,7],i=[1,6],n=[1,8],a=[1,20,21,22,23,38,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],s=[2,10],o=[1,20],l=[1,21],c=[1,22],h=[1,23],u=[1,30],d=[1,59],p=[1,45],g=[1,49],f=[1,33],y=[1,34],m=[1,35],b=[1,36],x=[1,37],v=[1,53],k=[1,60],C=[1,48],T=[1,50],w=[1,52],_=[1,56],E=[1,57],S=[1,38],A=[1,39],B=[1,40],D=[1,41],L=[1,58],I=[1,47],O=[1,51],N=[1,54],R=[1,55],F=[1,46],j=[1,63],M=[1,68],P=[1,20,21,22,23,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],z=[1,72],$=[1,71],q=[1,73],W=[20,21,23,74,75],Y=[1,94],V=[1,99],U=[1,102],H=[1,103],G=[1,96],X=[1,101],K=[1,104],Z=[1,97],Q=[1,109],J=[1,108],tt=[1,98],et=[1,100],rt=[1,105],it=[1,106],nt=[1,107],at=[1,110],st=[20,21,22,23,74,75],ot=[20,21,22,23,48,74,75],lt=[20,21,22,23,40,47,48,50,52,54,56,58,59,60,62,64,66,67,69,74,75,84,88,98,99,102,104,105,115,116,117,118,119,120],ct=[20,21,23],ht=[20,21,23,47,59,60,74,75,84,88,98,99,102,104,105,115,116,117,118,119,120],ut=[1,12,20,21,22,23,24,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],dt=[47,59,60,84,88,98,99,102,104,105,115,116,117,118,119,120],pt=[1,143],gt=[1,151],ft=[1,152],yt=[1,153],mt=[1,154],bt=[1,138],xt=[1,139],vt=[1,135],kt=[1,146],Ct=[1,147],Tt=[1,148],wt=[1,149],_t=[1,150],Et=[1,155],St=[1,156],At=[1,141],Bt=[1,144],Dt=[1,140],Lt=[1,137],It=[20,21,22,23,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],Ot=[1,159],Nt=[20,21,22,23,26,47,59,60,84,98,99,102,104,105,115,116,117,118,119,120],Rt=[20,21,22,23,24,26,38,40,41,42,47,51,53,55,57,59,60,61,63,65,66,68,70,74,75,79,80,81,82,83,84,85,88,98,99,102,104,105,106,107,115,116,117,118,119,120],Ft=[12,21,22,24],jt=[22,99],Mt=[1,242],Pt=[1,237],zt=[1,238],$t=[1,246],qt=[1,243],Wt=[1,240],Yt=[1,239],Vt=[1,241],Ut=[1,244],Ht=[1,245],Gt=[1,247],Xt=[1,265],Kt=[20,21,23,99],Zt=[20,21,22,23,59,60,79,95,98,99,102,103,104,105,106],Qt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,link:44,node:45,vertex:46,AMP:47,STYLE_SEPARATOR:48,idString:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,ALPHA:59,COLON:60,PIPE:61,CYLINDERSTART:62,CYLINDEREND:63,DIAMOND_START:64,DIAMOND_STOP:65,TAGEND:66,TRAPSTART:67,TRAPEND:68,INVTRAPSTART:69,INVTRAPEND:70,linkStatement:71,arrowText:72,TESTSTR:73,START_LINK:74,LINK:75,textToken:76,STR:77,keywords:78,STYLE:79,LINKSTYLE:80,CLASSDEF:81,CLASS:82,CLICK:83,DOWN:84,UP:85,textNoTags:86,textNoTagsToken:87,DEFAULT:88,stylesOpt:89,alphaNum:90,CALLBACKNAME:91,CALLBACKARGS:92,HREF:93,LINK_TARGET:94,HEX:95,numList:96,INTERPOLATE:97,NUM:98,COMMA:99,style:100,styleComponent:101,MINUS:102,UNIT:103,BRKT:104,DOT:105,PCT:106,TAGSTART:107,alphaNumToken:108,idStringToken:109,alphaNumStatement:110,direction_tb:111,direction_bt:112,direction_rl:113,direction_lr:114,PUNCTUATION:115,UNICODE_TEXT:116,PLUS:117,EQUALS:118,MULT:119,UNDERSCORE:120,graphCodeTokens:121,ARROW_CROSS:122,ARROW_POINT:123,ARROW_CIRCLE:124,ARROW_OPEN:125,QUOTE:126,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",47:"AMP",48:"STYLE_SEPARATOR",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"ALPHA",60:"COLON",61:"PIPE",62:"CYLINDERSTART",63:"CYLINDEREND",64:"DIAMOND_START",65:"DIAMOND_STOP",66:"TAGEND",67:"TRAPSTART",68:"TRAPEND",69:"INVTRAPSTART",70:"INVTRAPEND",73:"TESTSTR",74:"START_LINK",75:"LINK",77:"STR",79:"STYLE",80:"LINKSTYLE",81:"CLASSDEF",82:"CLASS",83:"CLICK",84:"DOWN",85:"UP",88:"DEFAULT",91:"CALLBACKNAME",92:"CALLBACKARGS",93:"HREF",94:"LINK_TARGET",95:"HEX",97:"INTERPOLATE",98:"NUM",99:"COMMA",102:"MINUS",103:"UNIT",104:"BRKT",105:"DOT",106:"PCT",107:"TAGSTART",111:"direction_tb",112:"direction_bt",113:"direction_rl",114:"direction_lr",115:"PUNCTUATION",116:"UNICODE_TEXT",117:"PLUS",118:"EQUALS",119:"MULT",120:"UNDERSCORE",122:"ARROW_CROSS",123:"ARROW_POINT",124:"ARROW_CIRCLE",125:"ARROW_OPEN",126:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[45,1],[45,5],[45,3],[46,4],[46,6],[46,4],[46,4],[46,4],[46,8],[46,4],[46,4],[46,4],[46,6],[46,4],[46,4],[46,4],[46,4],[46,4],[46,1],[44,2],[44,3],[44,3],[44,1],[44,3],[71,1],[72,3],[39,1],[39,2],[39,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[86,1],[86,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[96,1],[96,3],[89,1],[89,3],[100,1],[100,2],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[87,1],[87,1],[87,1],[87,1],[49,1],[49,2],[90,1],[90,2],[110,1],[110,1],[110,1],[110,1],[43,1],[43,1],[43,1],[43,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 5:i.parseDirective("%%{","open_directive");break;case 6:i.parseDirective(a[o],"type_directive");break;case 7:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 8:i.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:a[o]!==[]&&a[o-1].push(a[o]),this.$=a[o-1];break;case 12:case 78:case 80:case 92:case 148:case 150:case 151:case 74:case 146:this.$=a[o];break;case 19:i.setDirection("TB"),this.$="TB";break;case 20:i.setDirection(a[o-1]),this.$=a[o-1];break;case 35:this.$=a[o-1].nodes;break;case 41:this.$=i.addSubGraph(a[o-6],a[o-1],a[o-4]);break;case 42:this.$=i.addSubGraph(a[o-3],a[o-1],a[o-3]);break;case 43:this.$=i.addSubGraph(void 0,a[o-1],void 0);break;case 48:i.addLink(a[o-2].stmt,a[o],a[o-1]),this.$={stmt:a[o],nodes:a[o].concat(a[o-2].nodes)};break;case 49:i.addLink(a[o-3].stmt,a[o-1],a[o-2]),this.$={stmt:a[o-1],nodes:a[o-1].concat(a[o-3].nodes)};break;case 50:this.$={stmt:a[o-1],nodes:a[o-1]};break;case 51:this.$={stmt:a[o],nodes:a[o]};break;case 52:case 119:case 121:this.$=[a[o]];break;case 53:this.$=a[o-4].concat(a[o]);break;case 54:this.$=[a[o-2]],i.setClass(a[o-2],a[o]);break;case 55:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"square");break;case 56:this.$=a[o-5],i.addVertex(a[o-5],a[o-2],"circle");break;case 57:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"ellipse");break;case 58:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"stadium");break;case 59:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"subroutine");break;case 60:this.$=a[o-7],i.addVertex(a[o-7],a[o-1],"rect",void 0,void 0,void 0,Object.fromEntries([[a[o-5],a[o-3]]]));break;case 61:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"cylinder");break;case 62:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"round");break;case 63:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"diamond");break;case 64:this.$=a[o-5],i.addVertex(a[o-5],a[o-2],"hexagon");break;case 65:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"odd");break;case 66:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"trapezoid");break;case 67:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"inv_trapezoid");break;case 68:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"lean_right");break;case 69:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"lean_left");break;case 70:this.$=a[o],i.addVertex(a[o]);break;case 71:a[o-1].text=a[o],this.$=a[o-1];break;case 72:case 73:a[o-2].text=a[o-1],this.$=a[o-2];break;case 75:var l=i.destructLink(a[o],a[o-2]);this.$={type:l.type,stroke:l.stroke,length:l.length,text:a[o-1]};break;case 76:l=i.destructLink(a[o]),this.$={type:l.type,stroke:l.stroke,length:l.length};break;case 77:this.$=a[o-1];break;case 79:case 93:case 149:case 147:this.$=a[o-1]+""+a[o];break;case 94:case 95:this.$=a[o-4],i.addClass(a[o-2],a[o]);break;case 96:this.$=a[o-4],i.setClass(a[o-2],a[o]);break;case 97:case 105:this.$=a[o-1],i.setClickEvent(a[o-1],a[o]);break;case 98:case 106:this.$=a[o-3],i.setClickEvent(a[o-3],a[o-2]),i.setTooltip(a[o-3],a[o]);break;case 99:this.$=a[o-2],i.setClickEvent(a[o-2],a[o-1],a[o]);break;case 100:this.$=a[o-4],i.setClickEvent(a[o-4],a[o-3],a[o-2]),i.setTooltip(a[o-4],a[o]);break;case 101:case 107:this.$=a[o-1],i.setLink(a[o-1],a[o]);break;case 102:case 108:this.$=a[o-3],i.setLink(a[o-3],a[o-2]),i.setTooltip(a[o-3],a[o]);break;case 103:case 109:this.$=a[o-3],i.setLink(a[o-3],a[o-2],a[o]);break;case 104:case 110:this.$=a[o-5],i.setLink(a[o-5],a[o-4],a[o]),i.setTooltip(a[o-5],a[o-2]);break;case 111:this.$=a[o-4],i.addVertex(a[o-2],void 0,void 0,a[o]);break;case 112:case 114:this.$=a[o-4],i.updateLink(a[o-2],a[o]);break;case 113:this.$=a[o-4],i.updateLink([a[o-2]],a[o]);break;case 115:this.$=a[o-8],i.updateLinkInterpolate([a[o-6]],a[o-2]),i.updateLink([a[o-6]],a[o]);break;case 116:this.$=a[o-8],i.updateLinkInterpolate(a[o-6],a[o-2]),i.updateLink(a[o-6],a[o]);break;case 117:this.$=a[o-6],i.updateLinkInterpolate([a[o-4]],a[o]);break;case 118:this.$=a[o-6],i.updateLinkInterpolate(a[o-4],a[o]);break;case 120:case 122:a[o-2].push(a[o]),this.$=a[o-2];break;case 124:this.$=a[o-1]+a[o];break;case 152:this.$="v";break;case 153:this.$="-";break;case 154:this.$={stmt:"dir",value:"TB"};break;case 155:this.$={stmt:"dir",value:"BT"};break;case 156:this.$={stmt:"dir",value:"RL"};break;case 157:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:r,22:i,24:n},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:r,22:i,24:n},t(a,s,{17:11}),{7:12,13:[1,13]},{16:14,21:r,22:i,24:n},{16:15,21:r,22:i,24:n},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:o,21:l,22:c,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,43:31,45:32,46:42,47:d,49:43,59:p,60:g,79:f,80:y,81:m,82:b,83:x,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,111:S,112:A,113:B,114:D,115:L,116:I,117:O,118:N,119:R,120:F},{8:61,10:[1,62],15:j},t([10,15],[2,6]),t(a,[2,17]),t(a,[2,18]),t(a,[2,19]),{20:[1,65],21:[1,66],22:M,27:64,30:67},t(P,[2,11]),t(P,[2,12]),t(P,[2,13]),t(P,[2,14]),t(P,[2,15]),t(P,[2,16]),{9:69,20:z,21:$,23:q,44:70,71:74,74:[1,75],75:[1,76]},{9:77,20:z,21:$,23:q},{9:78,20:z,21:$,23:q},{9:79,20:z,21:$,23:q},{9:80,20:z,21:$,23:q},{9:81,20:z,21:$,23:q},{9:83,20:z,21:$,22:[1,82],23:q},t(P,[2,44]),t(W,[2,51],{30:84,22:M}),{22:[1,85]},{22:[1,86]},{22:[1,87]},{22:[1,88]},{26:Y,47:V,59:U,60:H,77:[1,92],84:G,90:91,91:[1,89],93:[1,90],98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(P,[2,154]),t(P,[2,155]),t(P,[2,156]),t(P,[2,157]),t(st,[2,52],{48:[1,111]}),t(ot,[2,70],{109:123,40:[1,112],47:d,50:[1,113],52:[1,114],54:[1,115],56:[1,116],58:[1,117],59:p,60:g,62:[1,118],64:[1,119],66:[1,120],67:[1,121],69:[1,122],84:v,88:k,98:C,99:T,102:w,104:_,105:E,115:L,116:I,117:O,118:N,119:R,120:F}),t(lt,[2,146]),t(lt,[2,171]),t(lt,[2,172]),t(lt,[2,173]),t(lt,[2,174]),t(lt,[2,175]),t(lt,[2,176]),t(lt,[2,177]),t(lt,[2,178]),t(lt,[2,179]),t(lt,[2,180]),t(lt,[2,181]),t(lt,[2,182]),t(lt,[2,183]),t(lt,[2,184]),t(lt,[2,185]),t(lt,[2,186]),{9:124,20:z,21:$,23:q},{11:125,14:[1,126]},t(ct,[2,8]),t(a,[2,20]),t(a,[2,26]),t(a,[2,27]),{21:[1,127]},t(ht,[2,34],{30:128,22:M}),t(P,[2,35]),{45:129,46:42,47:d,49:43,59:p,60:g,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,115:L,116:I,117:O,118:N,119:R,120:F},t(ut,[2,45]),t(ut,[2,46]),t(ut,[2,47]),t(dt,[2,74],{72:130,61:[1,132],73:[1,131]}),{22:pt,24:gt,26:ft,38:yt,39:133,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t([47,59,60,61,73,84,88,98,99,102,104,105,115,116,117,118,119,120],[2,76]),t(P,[2,36]),t(P,[2,37]),t(P,[2,38]),t(P,[2,39]),t(P,[2,40]),{22:pt,24:gt,26:ft,38:yt,39:157,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(It,s,{17:158}),t(W,[2,50],{47:Ot}),{26:Y,47:V,59:U,60:H,84:G,90:160,95:[1,161],98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},{88:[1,162],96:163,98:[1,164]},{26:Y,47:V,59:U,60:H,84:G,88:[1,165],90:166,98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},{26:Y,47:V,59:U,60:H,84:G,90:167,98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(ct,[2,97],{22:[1,168],92:[1,169]}),t(ct,[2,101],{22:[1,170]}),t(ct,[2,105],{108:95,110:172,22:[1,171],26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,115:tt,116:et,117:rt,118:it,119:nt,120:at}),t(ct,[2,107],{22:[1,173]}),t(Nt,[2,148]),t(Nt,[2,150]),t(Nt,[2,151]),t(Nt,[2,152]),t(Nt,[2,153]),t(Rt,[2,158]),t(Rt,[2,159]),t(Rt,[2,160]),t(Rt,[2,161]),t(Rt,[2,162]),t(Rt,[2,163]),t(Rt,[2,164]),t(Rt,[2,165]),t(Rt,[2,166]),t(Rt,[2,167]),t(Rt,[2,168]),t(Rt,[2,169]),t(Rt,[2,170]),{47:d,49:174,59:p,60:g,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,115:L,116:I,117:O,118:N,119:R,120:F},{22:pt,24:gt,26:ft,38:yt,39:175,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:177,42:mt,47:V,50:[1,176],59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:178,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:179,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:180,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{59:[1,181]},{22:pt,24:gt,26:ft,38:yt,39:182,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:183,42:mt,47:V,59:U,60:H,64:[1,184],66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:185,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:186,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:187,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(lt,[2,147]),t(Ft,[2,3]),{8:188,15:j},{15:[2,7]},t(a,[2,28]),t(ht,[2,33]),t(W,[2,48],{30:189,22:M}),t(dt,[2,71],{22:[1,190]}),{22:[1,191]},{22:pt,24:gt,26:ft,38:yt,39:192,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,66:bt,74:xt,75:[1,193],76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(Rt,[2,78]),t(Rt,[2,80]),t(Rt,[2,136]),t(Rt,[2,137]),t(Rt,[2,138]),t(Rt,[2,139]),t(Rt,[2,140]),t(Rt,[2,141]),t(Rt,[2,142]),t(Rt,[2,143]),t(Rt,[2,144]),t(Rt,[2,145]),t(Rt,[2,81]),t(Rt,[2,82]),t(Rt,[2,83]),t(Rt,[2,84]),t(Rt,[2,85]),t(Rt,[2,86]),t(Rt,[2,87]),t(Rt,[2,88]),t(Rt,[2,89]),t(Rt,[2,90]),t(Rt,[2,91]),{9:196,20:z,21:$,22:pt,23:q,24:gt,26:ft,38:yt,40:[1,195],42:mt,47:V,59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{18:18,19:19,20:o,21:l,22:c,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,42:[1,197],43:31,45:32,46:42,47:d,49:43,59:p,60:g,79:f,80:y,81:m,82:b,83:x,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,111:S,112:A,113:B,114:D,115:L,116:I,117:O,118:N,119:R,120:F},{22:M,30:198},{22:[1,199],26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,108:95,110:172,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:[1,200]},{22:[1,201]},{22:[1,202],99:[1,203]},t(jt,[2,119]),{22:[1,204]},{22:[1,205],26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,108:95,110:172,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:[1,206],26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,108:95,110:172,115:tt,116:et,117:rt,118:it,119:nt,120:at},{77:[1,207]},t(ct,[2,99],{22:[1,208]}),{77:[1,209],94:[1,210]},{77:[1,211]},t(Nt,[2,149]),{77:[1,212],94:[1,213]},t(st,[2,54],{109:123,47:d,59:p,60:g,84:v,88:k,98:C,99:T,102:w,104:_,105:E,115:L,116:I,117:O,118:N,119:R,120:F}),{22:pt,24:gt,26:ft,38:yt,41:[1,214],42:mt,47:V,59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:215,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,51:[1,216],59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,53:[1,217],59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,55:[1,218],59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,57:[1,219],59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{60:[1,220]},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,63:[1,221],66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,65:[1,222],66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,39:223,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,41:[1,224],42:mt,47:V,59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,66:bt,68:[1,225],70:[1,226],74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,66:bt,68:[1,228],70:[1,227],74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{9:229,20:z,21:$,23:q},t(W,[2,49],{47:Ot}),t(dt,[2,73]),t(dt,[2,72]),{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,61:[1,230],66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(dt,[2,75]),t(Rt,[2,79]),{22:pt,24:gt,26:ft,38:yt,39:231,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(It,s,{17:232}),t(P,[2,43]),{46:233,47:d,49:43,59:p,60:g,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,115:L,116:I,117:O,118:N,119:R,120:F},{22:Mt,59:Pt,60:zt,79:$t,89:234,95:qt,98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{22:Mt,59:Pt,60:zt,79:$t,89:248,95:qt,98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{22:Mt,59:Pt,60:zt,79:$t,89:249,95:qt,97:[1,250],98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{22:Mt,59:Pt,60:zt,79:$t,89:251,95:qt,97:[1,252],98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{98:[1,253]},{22:Mt,59:Pt,60:zt,79:$t,89:254,95:qt,98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{22:Mt,59:Pt,60:zt,79:$t,89:255,95:qt,98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{26:Y,47:V,59:U,60:H,84:G,90:256,98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(ct,[2,98]),{77:[1,257]},t(ct,[2,102],{22:[1,258]}),t(ct,[2,103]),t(ct,[2,106]),t(ct,[2,108],{22:[1,259]}),t(ct,[2,109]),t(ot,[2,55]),{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,51:[1,260],59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(ot,[2,62]),t(ot,[2,57]),t(ot,[2,58]),t(ot,[2,59]),{59:[1,261]},t(ot,[2,61]),t(ot,[2,63]),{22:pt,24:gt,26:ft,38:yt,42:mt,47:V,59:U,60:H,65:[1,262],66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(ot,[2,65]),t(ot,[2,66]),t(ot,[2,68]),t(ot,[2,67]),t(ot,[2,69]),t(Ft,[2,4]),t([22,47,59,60,84,88,98,99,102,104,105,115,116,117,118,119,120],[2,77]),{22:pt,24:gt,26:ft,38:yt,41:[1,263],42:mt,47:V,59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{18:18,19:19,20:o,21:l,22:c,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,42:[1,264],43:31,45:32,46:42,47:d,49:43,59:p,60:g,79:f,80:y,81:m,82:b,83:x,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,111:S,112:A,113:B,114:D,115:L,116:I,117:O,118:N,119:R,120:F},t(st,[2,53]),t(ct,[2,111],{99:Xt}),t(Kt,[2,121],{101:266,22:Mt,59:Pt,60:zt,79:$t,95:qt,98:Wt,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt}),t(Zt,[2,123]),t(Zt,[2,125]),t(Zt,[2,126]),t(Zt,[2,127]),t(Zt,[2,128]),t(Zt,[2,129]),t(Zt,[2,130]),t(Zt,[2,131]),t(Zt,[2,132]),t(Zt,[2,133]),t(Zt,[2,134]),t(Zt,[2,135]),t(ct,[2,112],{99:Xt}),t(ct,[2,113],{99:Xt}),{22:[1,267]},t(ct,[2,114],{99:Xt}),{22:[1,268]},t(jt,[2,120]),t(ct,[2,94],{99:Xt}),t(ct,[2,95],{99:Xt}),t(ct,[2,96],{108:95,110:172,26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,115:tt,116:et,117:rt,118:it,119:nt,120:at}),t(ct,[2,100]),{94:[1,269]},{94:[1,270]},{51:[1,271]},{61:[1,272]},{65:[1,273]},{9:274,20:z,21:$,23:q},t(P,[2,42]),{22:Mt,59:Pt,60:zt,79:$t,95:qt,98:Wt,100:275,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},t(Zt,[2,124]),{26:Y,47:V,59:U,60:H,84:G,90:276,98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},{26:Y,47:V,59:U,60:H,84:G,90:277,98:X,99:K,102:Z,104:Q,105:J,108:95,110:93,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(ct,[2,104]),t(ct,[2,110]),t(ot,[2,56]),{22:pt,24:gt,26:ft,38:yt,39:278,42:mt,47:V,59:U,60:H,66:bt,74:xt,76:134,77:vt,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},t(ot,[2,64]),t(It,s,{17:279}),t(Kt,[2,122],{101:266,22:Mt,59:Pt,60:zt,79:$t,95:qt,98:Wt,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt}),t(ct,[2,117],{108:95,110:172,22:[1,280],26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,115:tt,116:et,117:rt,118:it,119:nt,120:at}),t(ct,[2,118],{108:95,110:172,22:[1,281],26:Y,47:V,59:U,60:H,84:G,98:X,99:K,102:Z,104:Q,105:J,115:tt,116:et,117:rt,118:it,119:nt,120:at}),{22:pt,24:gt,26:ft,38:yt,41:[1,282],42:mt,47:V,59:U,60:H,66:bt,74:xt,76:194,78:145,79:kt,80:Ct,81:Tt,82:wt,83:_t,84:Et,85:St,87:136,88:At,98:X,99:K,102:Bt,104:Q,105:J,106:Dt,107:Lt,108:142,115:tt,116:et,117:rt,118:it,119:nt,120:at},{18:18,19:19,20:o,21:l,22:c,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,42:[1,283],43:31,45:32,46:42,47:d,49:43,59:p,60:g,79:f,80:y,81:m,82:b,83:x,84:v,88:k,98:C,99:T,102:w,104:_,105:E,109:44,111:S,112:A,113:B,114:D,115:L,116:I,117:O,118:N,119:R,120:F},{22:Mt,59:Pt,60:zt,79:$t,89:284,95:qt,98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},{22:Mt,59:Pt,60:zt,79:$t,89:285,95:qt,98:Wt,100:235,101:236,102:Yt,103:Vt,104:Ut,105:Ht,106:Gt},t(ot,[2,60]),t(P,[2,41]),t(ct,[2,115],{99:Xt}),t(ct,[2,116],{99:Xt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],126:[2,7]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},Jt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:this.begin("string");break;case 8:case 17:case 20:case 23:case 26:this.popState();break;case 9:return"STR";case 10:return 79;case 11:return 88;case 12:return 80;case 13:return 97;case 14:return 81;case 15:return 82;case 16:this.begin("href");break;case 18:return 93;case 19:this.begin("callbackname");break;case 21:this.popState(),this.begin("callbackargs");break;case 22:return 91;case 24:return 92;case 25:this.begin("click");break;case 27:return 83;case 28:case 29:return t.lex.firstGraph()&&this.begin("dir"),24;case 30:return 38;case 31:return 42;case 32:case 33:case 34:case 35:return 94;case 36:return this.popState(),25;case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:return this.popState(),26;case 47:return 111;case 48:return 112;case 49:return 113;case 50:return 114;case 51:return 98;case 52:return 104;case 53:return 48;case 54:return 60;case 55:return 47;case 56:return 20;case 57:return 99;case 58:return 119;case 59:case 60:case 61:return 75;case 62:case 63:case 64:return 74;case 65:return 52;case 66:return 53;case 67:return 54;case 68:return 55;case 69:return 56;case 70:return 57;case 71:return 58;case 72:return 62;case 73:return 63;case 74:return 102;case 75:return 105;case 76:return 120;case 77:return 117;case 78:return 106;case 79:case 80:return 118;case 81:return 107;case 82:return 66;case 83:return 85;case 84:return"SEP";case 85:return 84;case 86:return 59;case 87:return 68;case 88:return 67;case 89:return 70;case 90:return 69;case 91:return 115;case 92:return 116;case 93:return 61;case 94:return 50;case 95:return 51;case 96:return 40;case 97:return 41;case 98:return 64;case 99:return 65;case 100:return 126;case 101:return 21;case 102:return 22;case 103:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[23,24],inclusive:!1},callbackname:{rules:[20,21,22],inclusive:!1},href:{rules:[17,18],inclusive:!1},click:{rules:[26,27],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[36,37,38,39,40,41,42,43,44,45,46],inclusive:!1},string:{rules:[8,9],inclusive:!1},INITIAL:{rules:[0,5,6,7,10,11,12,13,14,15,16,19,25,28,29,30,31,32,33,34,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],inclusive:!0}}};function te(){this.yy={}}return Qt.lexer=Jt,te.prototype=Qt,Qt.Parser=te,new te}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?dbae").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/gantt/parser/gantt.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,5],i=[7,9,11,12,13,14,15,16,17,18,19,20,22,29,34],n=[1,15],a=[1,16],s=[1,17],o=[1,18],l=[1,19],c=[1,20],h=[1,21],u=[1,22],d=[1,23],p=[1,25],g=[1,27],f=[1,30],y=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,29,34],m={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,excludes:16,includes:17,todayMarker:18,title:19,section:20,clickStatement:21,taskTxt:22,taskData:23,openDirective:24,typeDirective:25,closeDirective:26,":":27,argDirective:28,click:29,callbackname:30,callbackargs:31,href:32,clickStatementDebug:33,open_directive:34,type_directive:35,arg_directive:36,close_directive:37,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"excludes",17:"includes",18:"todayMarker",19:"title",20:"section",22:"taskTxt",23:"taskData",27:":",29:"click",30:"callbackname",31:"callbackargs",32:"href",34:"open_directive",35:"type_directive",36:"arg_directive",37:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[21,2],[21,3],[21,3],[21,4],[21,3],[21,4],[21,2],[33,2],[33,3],[33,3],[33,4],[33,3],[33,4],[33,2],[24,1],[25,1],[28,1],[26,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 2:return a[o-1];case 3:case 7:case 8:this.$=[];break;case 4:a[o-1].push(a[o]),this.$=a[o-1];break;case 5:case 6:this.$=a[o];break;case 9:i.setDateFormat(a[o].substr(11)),this.$=a[o].substr(11);break;case 10:i.enableInclusiveEndDates(),this.$=a[o].substr(18);break;case 11:i.TopAxis(),this.$=a[o].substr(8);break;case 12:i.setAxisFormat(a[o].substr(11)),this.$=a[o].substr(11);break;case 13:i.setExcludes(a[o].substr(9)),this.$=a[o].substr(9);break;case 14:i.setIncludes(a[o].substr(9)),this.$=a[o].substr(9);break;case 15:i.setTodayMarker(a[o].substr(12)),this.$=a[o].substr(12);break;case 16:i.setTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 17:i.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 19:i.addTask(a[o-1],a[o]),this.$="task";break;case 23:this.$=a[o-1],i.setClickEvent(a[o-1],a[o],null);break;case 24:this.$=a[o-2],i.setClickEvent(a[o-2],a[o-1],a[o]);break;case 25:this.$=a[o-2],i.setClickEvent(a[o-2],a[o-1],null),i.setLink(a[o-2],a[o]);break;case 26:this.$=a[o-3],i.setClickEvent(a[o-3],a[o-2],a[o-1]),i.setLink(a[o-3],a[o]);break;case 27:this.$=a[o-2],i.setClickEvent(a[o-2],a[o],null),i.setLink(a[o-2],a[o-1]);break;case 28:this.$=a[o-3],i.setClickEvent(a[o-3],a[o-1],a[o]),i.setLink(a[o-3],a[o-2]);break;case 29:this.$=a[o-1],i.setLink(a[o-1],a[o]);break;case 30:case 36:this.$=a[o-1]+" "+a[o];break;case 31:case 32:case 34:this.$=a[o-2]+" "+a[o-1]+" "+a[o];break;case 33:case 35:this.$=a[o-3]+" "+a[o-2]+" "+a[o-1]+" "+a[o];break;case 37:i.parseDirective("%%{","open_directive");break;case 38:i.parseDirective(a[o],"type_directive");break;case 39:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 40:i.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,24:4,34:r},{1:[3]},{3:6,4:2,5:e,24:4,34:r},t(i,[2,3],{6:7}),{25:8,35:[1,9]},{35:[2,37]},{1:[2,1]},{4:26,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:n,13:a,14:s,15:o,16:l,17:c,18:h,19:u,20:d,21:24,22:p,24:4,29:g,34:r},{26:28,27:[1,29],37:f},t([27,37],[2,38]),t(i,[2,8],{1:[2,2]}),t(i,[2,4]),{4:26,10:31,12:n,13:a,14:s,15:o,16:l,17:c,18:h,19:u,20:d,21:24,22:p,24:4,29:g,34:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),t(i,[2,12]),t(i,[2,13]),t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),{23:[1,32]},t(i,[2,20]),{30:[1,33],32:[1,34]},{11:[1,35]},{28:36,36:[1,37]},{11:[2,40]},t(i,[2,5]),t(i,[2,19]),t(i,[2,23],{31:[1,38],32:[1,39]}),t(i,[2,29],{30:[1,40]}),t(y,[2,21]),{26:41,37:f},{37:[2,39]},t(i,[2,24],{32:[1,42]}),t(i,[2,25]),t(i,[2,27],{31:[1,43]}),{11:[1,44]},t(i,[2,26]),t(i,[2,28]),t(y,[2,22])],defaultActions:{5:[2,37],6:[2,1],30:[2,40],37:[2,39]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},b={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),34;case 1:return this.begin("type_directive"),35;case 2:return this.popState(),this.begin("arg_directive"),27;case 3:return this.popState(),this.popState(),37;case 4:return 36;case 5:case 6:case 7:case 9:case 10:case 11:break;case 8:return 11;case 12:this.begin("href");break;case 13:case 16:case 19:case 22:this.popState();break;case 14:return 32;case 15:this.begin("callbackname");break;case 17:this.popState(),this.begin("callbackargs");break;case 18:return 30;case 20:return 31;case 21:this.begin("click");break;case 23:return 29;case 24:return 5;case 25:return 12;case 26:return 13;case 27:return 14;case 28:return 15;case 29:return 17;case 30:return 16;case 31:return 18;case 32:return"date";case 33:return 19;case 34:return 20;case 35:return 22;case 36:return 23;case 37:return 27;case 38:return 7;case 39:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[19,20],inclusive:!1},callbackname:{rules:[16,17,18],inclusive:!1},href:{rules:[13,14],inclusive:!1},click:{rules:[22,23],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,15,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};function x(){this.yy={}}return m.lexer=b,x.prototype=m,m.Parser=x,new x}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?8ed1").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/git/parser/gitGraph.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[2,3],r=[1,7],i=[7,12,15,17,19,20,21],n=[7,11,12,15,17,19,20,21],a=[2,20],s=[1,32],o={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 1:return a[o-1];case 2:return i.setDirection(a[o-3]),a[o-1];case 4:i.setOptions(a[o-1]),this.$=a[o];break;case 5:a[o-1]+=a[o],this.$=a[o-1];break;case 7:this.$=[];break;case 8:a[o-1].push(a[o]),this.$=a[o-1];break;case 9:this.$=a[o-1];break;case 11:i.commit(a[o]);break;case 12:i.branch(a[o]);break;case 13:i.checkout(a[o]);break;case 14:i.merge(a[o]);break;case 15:i.reset(a[o]);break;case 16:this.$="";break;case 17:this.$=a[o];break;case 18:this.$=a[o-1]+":"+a[o];break;case 19:this.$=a[o-1]+":"+i.count,i.count=0;break;case 20:i.count=0;break;case 21:i.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:r},{5:[1,8]},{7:[1,9]},t(i,[2,7],{10:10,11:[1,11]}),t(n,[2,6]),{6:12,7:e,9:6,12:r},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},t(n,[2,5]),{7:[1,21]},t(i,[2,8]),{12:[1,22]},t(i,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},t(i,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:a,25:31,26:s},{12:a,25:33,26:s},{12:[2,18]},{12:a,25:34,26:s},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},l={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return 12;case 1:case 2:case 3:break;case 4:return 4;case 5:return 15;case 6:return 17;case 7:return 20;case 8:return 21;case 9:return 19;case 10:case 11:return 8;case 12:return 5;case 13:return 26;case 14:this.begin("options");break;case 15:case 18:this.popState();break;case 16:return 11;case 17:this.begin("string");break;case 19:return 23;case 20:return 18;case 21:return 7}},rules:[/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:branch\b)/i,/^(?:merge\b)/i,/^(?:reset\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:end\r?\n)/i,/^(?:[^\n]+\r?\n)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[a-zA-Z][-_\.a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],conditions:{options:{rules:[15,16],inclusive:!1},string:{rules:[18,19],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],inclusive:!0}}};function c(){this.yy={}}return o.lexer=l,c.prototype=o,o.Parser=c,new c}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?2b40").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/info/parser/info.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[6,9,10],r={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,r,i,n,a,s){switch(a.length,n){case 1:return i;case 4:break;case 6:i.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},i={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function n(){this.yy={}}return r.lexer=i,n.prototype=r,r.Parser=n,new n}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?c5f1").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/pie/parser/pie.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,4],r=[1,5],i=[1,6],n=[1,7],a=[1,9],s=[1,11,13,20,21,22,23],o=[2,5],l=[1,6,11,13,20,21,22,23],c=[20,21,22],h=[2,8],u=[1,18],d=[1,19],p=[1,24],g=[6,20,21,22,23],f={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,openDirective:15,typeDirective:16,closeDirective:17,":":18,argDirective:19,NEWLINE:20,";":21,EOF:22,open_directive:23,type_directive:24,arg_directive:25,close_directive:26,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",18:":",20:"NEWLINE",21:";",22:"EOF",23:"open_directive",24:"type_directive",25:"arg_directive",26:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[15,1],[16,1],[19,1],[17,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:i.setShowData(!0);break;case 7:this.$=a[o-1];break;case 9:i.addSection(a[o-1],i.cleanupValue(a[o]));break;case 10:this.$=a[o].trim(),i.setTitle(this.$);break;case 17:i.parseDirective("%%{","open_directive");break;case 18:i.parseDirective(a[o],"type_directive");break;case 19:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 20:i.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,15:8,20:r,21:i,22:n,23:a},{1:[3]},{3:10,4:2,5:3,6:e,15:8,20:r,21:i,22:n,23:a},{3:11,4:2,5:3,6:e,15:8,20:r,21:i,22:n,23:a},t(s,o,{7:12,8:[1,13]}),t(l,[2,14]),t(l,[2,15]),t(l,[2,16]),{16:14,24:[1,15]},{24:[2,17]},{1:[2,1]},{1:[2,2]},t(c,h,{15:8,9:16,10:17,5:20,1:[2,3],11:u,13:d,23:a}),t(s,o,{7:21}),{17:22,18:[1,23],26:p},t([18,26],[2,18]),t(s,[2,6]),{4:25,20:r,21:i,22:n},{12:[1,26]},{14:[1,27]},t(c,[2,11]),t(c,h,{15:8,9:16,10:17,5:20,1:[2,4],11:u,13:d,23:a}),t(g,[2,12]),{19:28,25:[1,29]},t(g,[2,20]),t(s,[2,7]),t(c,[2,9]),t(c,[2,10]),{17:30,26:p},{26:[2,19]},t(g,[2,13])],defaultActions:{9:[2,17],10:[2,1],11:[2,2],29:[2,19]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),23;case 1:return this.begin("type_directive"),24;case 2:return this.popState(),this.begin("arg_directive"),18;case 3:return this.popState(),this.popState(),26;case 4:return 25;case 5:case 6:case 8:case 9:break;case 7:return 20;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:this.begin("string");break;case 13:this.popState();break;case 14:return"txt";case 15:return 6;case 16:return 8;case 17:return"value";case 18:return 22}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,15,16,17,18],inclusive:!0}}};function m(){this.yy={}}return f.lexer=y,m.prototype=f,f.Parser=m,new m}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?a3fa").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/requirement/parser/requirementDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,5],i=[1,17],n=[2,10],a=[1,21],s=[1,22],o=[1,23],l=[1,24],c=[1,25],h=[1,26],u=[1,19],d=[1,27],p=[1,28],g=[1,31],f=[66,67],y=[5,8,14,35,36,37,38,39,40,48,55,57,66,67],m=[5,6,8,14,35,36,37,38,39,40,48,66,67],b=[1,51],x=[1,52],v=[1,53],k=[1,54],C=[1,55],T=[1,56],w=[1,57],_=[57,58],E=[1,69],S=[1,65],A=[1,66],B=[1,67],D=[1,68],L=[1,70],I=[1,74],O=[1,75],N=[1,72],R=[1,73],F=[5,8,14,35,36,37,38,39,40,48,66,67],j={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,open_directive:14,type_directive:15,arg_directive:16,close_directive:17,requirementDef:18,elementDef:19,relationshipDef:20,requirementType:21,requirementName:22,STRUCT_START:23,requirementBody:24,ID:25,COLONSEP:26,id:27,TEXT:28,text:29,RISK:30,riskLevel:31,VERIFYMTHD:32,verifyType:33,STRUCT_STOP:34,REQUIREMENT:35,FUNCTIONAL_REQUIREMENT:36,INTERFACE_REQUIREMENT:37,PERFORMANCE_REQUIREMENT:38,PHYSICAL_REQUIREMENT:39,DESIGN_CONSTRAINT:40,LOW_RISK:41,MED_RISK:42,HIGH_RISK:43,VERIFY_ANALYSIS:44,VERIFY_DEMONSTRATION:45,VERIFY_INSPECTION:46,VERIFY_TEST:47,ELEMENT:48,elementName:49,elementBody:50,TYPE:51,type:52,DOCREF:53,ref:54,END_ARROW_L:55,relationship:56,LINE:57,END_ARROW_R:58,CONTAINS:59,COPIES:60,DERIVES:61,SATISFIES:62,VERIFIES:63,REFINES:64,TRACES:65,unqString:66,qString:67,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"open_directive",15:"type_directive",16:"arg_directive",17:"close_directive",23:"STRUCT_START",25:"ID",26:"COLONSEP",28:"TEXT",30:"RISK",32:"VERIFYMTHD",34:"STRUCT_STOP",35:"REQUIREMENT",36:"FUNCTIONAL_REQUIREMENT",37:"INTERFACE_REQUIREMENT",38:"PERFORMANCE_REQUIREMENT",39:"PHYSICAL_REQUIREMENT",40:"DESIGN_CONSTRAINT",41:"LOW_RISK",42:"MED_RISK",43:"HIGH_RISK",44:"VERIFY_ANALYSIS",45:"VERIFY_DEMONSTRATION",46:"VERIFY_INSPECTION",47:"VERIFY_TEST",48:"ELEMENT",51:"TYPE",53:"DOCREF",55:"END_ARROW_L",57:"LINE",58:"END_ARROW_R",59:"CONTAINS",60:"COPIES",61:"DERIVES",62:"SATISFIES",63:"VERIFIES",64:"REFINES",65:"TRACES",66:"unqString",67:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[18,5],[24,5],[24,5],[24,5],[24,5],[24,2],[24,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[31,1],[31,1],[31,1],[33,1],[33,1],[33,1],[33,1],[19,5],[50,5],[50,5],[50,2],[50,1],[20,5],[20,5],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[22,1],[22,1],[27,1],[27,1],[29,1],[29,1],[49,1],[49,1],[52,1],[52,1],[54,1],[54,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 6:i.parseDirective("%%{","open_directive");break;case 7:i.parseDirective(a[o],"type_directive");break;case 8:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 9:i.parseDirective("}%%","close_directive","pie");break;case 10:this.$=[];break;case 16:i.addRequirement(a[o-3],a[o-4]);break;case 17:i.setNewReqId(a[o-2]);break;case 18:i.setNewReqText(a[o-2]);break;case 19:i.setNewReqRisk(a[o-2]);break;case 20:i.setNewReqVerifyMethod(a[o-2]);break;case 23:this.$=i.RequirementType.REQUIREMENT;break;case 24:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 25:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 26:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 27:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 29:this.$=i.RiskLevel.LOW_RISK;break;case 30:this.$=i.RiskLevel.MED_RISK;break;case 31:this.$=i.RiskLevel.HIGH_RISK;break;case 32:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 33:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 34:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 35:this.$=i.VerifyType.VERIFY_TEST;break;case 36:i.addElement(a[o-3]);break;case 37:i.setNewElementType(a[o-2]);break;case 38:i.setNewElementDocRef(a[o-2]);break;case 41:i.addRelationship(a[o-2],a[o],a[o-4]);break;case 42:i.addRelationship(a[o-2],a[o-4],a[o]);break;case 43:this.$=i.Relationships.CONTAINS;break;case 44:this.$=i.Relationships.COPIES;break;case 45:this.$=i.Relationships.DERIVES;break;case 46:this.$=i.Relationships.SATISFIES;break;case 47:this.$=i.Relationships.VERIFIES;break;case 48:this.$=i.Relationships.REFINES;break;case 49:this.$=i.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:4,14:r},{1:[3]},{3:7,4:2,5:[1,6],6:e,9:4,14:r},{5:[1,8]},{10:9,15:[1,10]},{15:[2,6]},{3:11,4:2,6:e,9:4,14:r},{1:[2,2]},{4:16,5:i,7:12,8:n,9:4,14:r,18:13,19:14,20:15,21:18,27:20,35:a,36:s,37:o,38:l,39:c,40:h,48:u,66:d,67:p},{11:29,12:[1,30],17:g},t([12,17],[2,7]),{1:[2,1]},{8:[1,32]},{4:16,5:i,7:33,8:n,9:4,14:r,18:13,19:14,20:15,21:18,27:20,35:a,36:s,37:o,38:l,39:c,40:h,48:u,66:d,67:p},{4:16,5:i,7:34,8:n,9:4,14:r,18:13,19:14,20:15,21:18,27:20,35:a,36:s,37:o,38:l,39:c,40:h,48:u,66:d,67:p},{4:16,5:i,7:35,8:n,9:4,14:r,18:13,19:14,20:15,21:18,27:20,35:a,36:s,37:o,38:l,39:c,40:h,48:u,66:d,67:p},{4:16,5:i,7:36,8:n,9:4,14:r,18:13,19:14,20:15,21:18,27:20,35:a,36:s,37:o,38:l,39:c,40:h,48:u,66:d,67:p},{4:16,5:i,7:37,8:n,9:4,14:r,18:13,19:14,20:15,21:18,27:20,35:a,36:s,37:o,38:l,39:c,40:h,48:u,66:d,67:p},{22:38,66:[1,39],67:[1,40]},{49:41,66:[1,42],67:[1,43]},{55:[1,44],57:[1,45]},t(f,[2,23]),t(f,[2,24]),t(f,[2,25]),t(f,[2,26]),t(f,[2,27]),t(f,[2,28]),t(y,[2,52]),t(y,[2,53]),t(m,[2,4]),{13:46,16:[1,47]},t(m,[2,9]),{1:[2,3]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{23:[1,48]},{23:[2,50]},{23:[2,51]},{23:[1,49]},{23:[2,56]},{23:[2,57]},{56:50,59:b,60:x,61:v,62:k,63:C,64:T,65:w},{56:58,59:b,60:x,61:v,62:k,63:C,64:T,65:w},{11:59,17:g},{17:[2,8]},{5:[1,60]},{5:[1,61]},{57:[1,62]},t(_,[2,43]),t(_,[2,44]),t(_,[2,45]),t(_,[2,46]),t(_,[2,47]),t(_,[2,48]),t(_,[2,49]),{58:[1,63]},t(m,[2,5]),{5:E,24:64,25:S,28:A,30:B,32:D,34:L},{5:I,34:O,50:71,51:N,53:R},{27:76,66:d,67:p},{27:77,66:d,67:p},t(F,[2,16]),{26:[1,78]},{26:[1,79]},{26:[1,80]},{26:[1,81]},{5:E,24:82,25:S,28:A,30:B,32:D,34:L},t(F,[2,22]),t(F,[2,36]),{26:[1,83]},{26:[1,84]},{5:I,34:O,50:85,51:N,53:R},t(F,[2,40]),t(F,[2,41]),t(F,[2,42]),{27:86,66:d,67:p},{29:87,66:[1,88],67:[1,89]},{31:90,41:[1,91],42:[1,92],43:[1,93]},{33:94,44:[1,95],45:[1,96],46:[1,97],47:[1,98]},t(F,[2,21]),{52:99,66:[1,100],67:[1,101]},{54:102,66:[1,103],67:[1,104]},t(F,[2,39]),{5:[1,105]},{5:[1,106]},{5:[2,54]},{5:[2,55]},{5:[1,107]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[1,108]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[2,35]},{5:[1,109]},{5:[2,58]},{5:[2,59]},{5:[1,110]},{5:[2,60]},{5:[2,61]},{5:E,24:111,25:S,28:A,30:B,32:D,34:L},{5:E,24:112,25:S,28:A,30:B,32:D,34:L},{5:E,24:113,25:S,28:A,30:B,32:D,34:L},{5:E,24:114,25:S,28:A,30:B,32:D,34:L},{5:I,34:O,50:115,51:N,53:R},{5:I,34:O,50:116,51:N,53:R},t(F,[2,17]),t(F,[2,18]),t(F,[2,19]),t(F,[2,20]),t(F,[2,37]),t(F,[2,38])],defaultActions:{5:[2,6],7:[2,2],11:[2,1],32:[2,3],33:[2,11],34:[2,12],35:[2,13],36:[2,14],37:[2,15],39:[2,50],40:[2,51],42:[2,56],43:[2,57],47:[2,8],88:[2,54],89:[2,55],91:[2,29],92:[2,30],93:[2,31],95:[2,32],96:[2,33],97:[2,34],98:[2,35],100:[2,58],101:[2,59],103:[2,60],104:[2,61]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},M={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),14;case 1:return this.begin("type_directive"),15;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),17;case 4:return 16;case 5:return 5;case 6:case 7:case 8:break;case 9:return 8;case 10:return 6;case 11:return 23;case 12:return 34;case 13:return 26;case 14:return 25;case 15:return 28;case 16:return 30;case 17:return 32;case 18:return 35;case 19:return 36;case 20:return 37;case 21:return 38;case 22:return 39;case 23:return 40;case 24:return 41;case 25:return 42;case 26:return 43;case 27:return 44;case 28:return 45;case 29:return 46;case 30:return 47;case 31:return 48;case 32:return 59;case 33:return 60;case 34:return 61;case 35:return 62;case 36:return 63;case 37:return 64;case 38:return 65;case 39:return 51;case 40:return 53;case 41:return 55;case 42:return 58;case 43:return 57;case 44:this.begin("string");break;case 45:this.popState();break;case 46:return"qString";case 47:return e.yytext=e.yytext.trim(),66}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[45,46],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,47],inclusive:!0}}};function P(){this.yy={}}return j.lexer=M,P.prototype=j,j.Parser=P,new P}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?ebf4").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/sequence/parser/sequenceDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,3],i=[1,5],n=[1,7],a=[2,5],s=[1,15],o=[1,17],l=[1,18],c=[1,19],h=[1,21],u=[1,22],d=[1,23],p=[1,29],g=[1,30],f=[1,31],y=[1,32],m=[1,33],b=[1,34],x=[1,37],v=[1,38],k=[1,39],C=[1,40],T=[1,41],w=[1,42],_=[1,45],E=[1,4,5,16,20,22,23,24,30,32,33,34,35,36,38,40,41,42,46,47,48,49,57,67],S=[1,58],A=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,42,46,47,48,49,57,67],B=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,41,42,46,47,48,49,57,67],D=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,40,42,46,47,48,49,57,67],L=[55,56,57],I=[1,4,5,7,16,20,22,23,24,30,32,33,34,35,36,38,40,41,42,46,47,48,49,57,67],O={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,openDirective:11,typeDirective:12,closeDirective:13,":":14,argDirective:15,participant:16,actor:17,AS:18,restOfLine:19,participant_actor:20,signal:21,autonumber:22,activate:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,text2:31,loop:32,end:33,rect:34,opt:35,alt:36,else_sections:37,par:38,par_sections:39,and:40,else:41,note:42,placement:43,over:44,actor_pair:45,links:46,link:47,properties:48,details:49,spaceList:50,",":51,left_of:52,right_of:53,signaltype:54,"+":55,"-":56,ACTOR:57,SOLID_OPEN_ARROW:58,DOTTED_OPEN_ARROW:59,SOLID_ARROW:60,DOTTED_ARROW:61,SOLID_CROSS:62,DOTTED_CROSS:63,SOLID_POINT:64,DOTTED_POINT:65,TXT:66,open_directive:67,type_directive:68,arg_directive:69,close_directive:70,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",14:":",16:"participant",18:"AS",19:"restOfLine",20:"participant_actor",22:"autonumber",23:"activate",24:"deactivate",30:"title",32:"loop",33:"end",34:"rect",35:"opt",36:"alt",38:"par",40:"and",41:"else",42:"note",44:"over",46:"links",47:"link",48:"properties",49:"details",51:",",52:"left_of",53:"right_of",55:"+",56:"-",57:"ACTOR",58:"SOLID_OPEN_ARROW",59:"DOTTED_OPEN_ARROW",60:"SOLID_ARROW",61:"DOTTED_ARROW",62:"SOLID_CROSS",63:"DOTTED_CROSS",64:"SOLID_POINT",65:"DOTTED_POINT",66:"TXT",67:"open_directive",68:"type_directive",69:"arg_directive",70:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,1],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,3],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[39,1],[39,4],[37,1],[37,4],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[50,2],[50,1],[45,3],[45,1],[43,1],[43,1],[21,5],[21,5],[21,4],[17,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[31,1],[11,1],[12,1],[15,1],[13,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:return i.apply(a[o]),a[o];case 5:case 9:this.$=[];break;case 6:a[o-1].push(a[o]),this.$=a[o-1];break;case 7:case 8:case 45:this.$=a[o];break;case 12:a[o-3].type="addParticipant",a[o-3].description=i.parseMessage(a[o-1]),this.$=a[o-3];break;case 13:a[o-1].type="addParticipant",this.$=a[o-1];break;case 14:a[o-3].type="addActor",a[o-3].description=i.parseMessage(a[o-1]),this.$=a[o-3];break;case 15:a[o-1].type="addActor",this.$=a[o-1];break;case 17:i.enableSequenceNumbers();break;case 18:this.$={type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:a[o-1]};break;case 19:this.$={type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:a[o-1]};break;case 25:this.$=[{type:"setTitle",text:a[o-1]}];break;case 26:a[o-1].unshift({type:"loopStart",loopText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.LOOP_START}),a[o-1].push({type:"loopEnd",loopText:a[o-2],signalType:i.LINETYPE.LOOP_END}),this.$=a[o-1];break;case 27:a[o-1].unshift({type:"rectStart",color:i.parseMessage(a[o-2]),signalType:i.LINETYPE.RECT_START}),a[o-1].push({type:"rectEnd",color:i.parseMessage(a[o-2]),signalType:i.LINETYPE.RECT_END}),this.$=a[o-1];break;case 28:a[o-1].unshift({type:"optStart",optText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.OPT_START}),a[o-1].push({type:"optEnd",optText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.OPT_END}),this.$=a[o-1];break;case 29:a[o-1].unshift({type:"altStart",altText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.ALT_START}),a[o-1].push({type:"altEnd",signalType:i.LINETYPE.ALT_END}),this.$=a[o-1];break;case 30:a[o-1].unshift({type:"parStart",parText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.PAR_START}),a[o-1].push({type:"parEnd",signalType:i.LINETYPE.PAR_END}),this.$=a[o-1];break;case 33:this.$=a[o-3].concat([{type:"and",parText:i.parseMessage(a[o-1]),signalType:i.LINETYPE.PAR_AND},a[o]]);break;case 35:this.$=a[o-3].concat([{type:"else",altText:i.parseMessage(a[o-1]),signalType:i.LINETYPE.ALT_ELSE},a[o]]);break;case 36:this.$=[a[o-1],{type:"addNote",placement:a[o-2],actor:a[o-1].actor,text:a[o]}];break;case 37:a[o-2]=[].concat(a[o-1],a[o-1]).slice(0,2),a[o-2][0]=a[o-2][0].actor,a[o-2][1]=a[o-2][1].actor,this.$=[a[o-1],{type:"addNote",placement:i.PLACEMENT.OVER,actor:a[o-2].slice(0,2),text:a[o]}];break;case 38:this.$=[a[o-1],{type:"addLinks",actor:a[o-1].actor,text:a[o]}];break;case 39:this.$=[a[o-1],{type:"addALink",actor:a[o-1].actor,text:a[o]}];break;case 40:this.$=[a[o-1],{type:"addProperties",actor:a[o-1].actor,text:a[o]}];break;case 41:this.$=[a[o-1],{type:"addDetails",actor:a[o-1].actor,text:a[o]}];break;case 44:this.$=[a[o-2],a[o]];break;case 46:this.$=i.PLACEMENT.LEFTOF;break;case 47:this.$=i.PLACEMENT.RIGHTOF;break;case 48:this.$=[a[o-4],a[o-1],{type:"addMessage",from:a[o-4].actor,to:a[o-1].actor,signalType:a[o-3],msg:a[o]},{type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:a[o-1]}];break;case 49:this.$=[a[o-4],a[o-1],{type:"addMessage",from:a[o-4].actor,to:a[o-1].actor,signalType:a[o-3],msg:a[o]},{type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:a[o-4]}];break;case 50:this.$=[a[o-3],a[o-1],{type:"addMessage",from:a[o-3].actor,to:a[o-1].actor,signalType:a[o-2],msg:a[o]}];break;case 51:this.$={type:"addParticipant",actor:a[o]};break;case 52:this.$=i.LINETYPE.SOLID_OPEN;break;case 53:this.$=i.LINETYPE.DOTTED_OPEN;break;case 54:this.$=i.LINETYPE.SOLID;break;case 55:this.$=i.LINETYPE.DOTTED;break;case 56:this.$=i.LINETYPE.SOLID_CROSS;break;case 57:this.$=i.LINETYPE.DOTTED_CROSS;break;case 58:this.$=i.LINETYPE.SOLID_POINT;break;case 59:this.$=i.LINETYPE.DOTTED_POINT;break;case 60:this.$=i.parseMessage(a[o].trim().substring(1));break;case 61:i.parseDirective("%%{","open_directive");break;case 62:i.parseDirective(a[o],"type_directive");break;case 63:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 64:i.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:e,5:r,6:4,7:i,11:6,67:n},{1:[3]},{3:8,4:e,5:r,6:4,7:i,11:6,67:n},{3:9,4:e,5:r,6:4,7:i,11:6,67:n},{3:10,4:e,5:r,6:4,7:i,11:6,67:n},t([1,4,5,16,20,22,23,24,30,32,34,35,36,38,42,46,47,48,49,57,67],a,{8:11}),{12:12,68:[1,13]},{68:[2,61]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:o,6:35,9:14,10:16,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,34:f,35:y,36:m,38:b,42:x,46:v,47:k,48:C,49:T,57:w,67:n},{13:43,14:[1,44],70:_},t([14,70],[2,62]),t(E,[2,6]),{6:35,10:46,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,34:f,35:y,36:m,38:b,42:x,46:v,47:k,48:C,49:T,57:w,67:n},t(E,[2,8]),t(E,[2,9]),{17:47,57:w},{17:48,57:w},{5:[1,49]},t(E,[2,17]),{17:50,57:w},{17:51,57:w},{5:[1,52]},{5:[1,53]},{5:[1,54]},{5:[1,55]},{5:[1,56]},{31:57,66:S},{19:[1,59]},{19:[1,60]},{19:[1,61]},{19:[1,62]},{19:[1,63]},t(E,[2,31]),{54:64,58:[1,65],59:[1,66],60:[1,67],61:[1,68],62:[1,69],63:[1,70],64:[1,71],65:[1,72]},{43:73,44:[1,74],52:[1,75],53:[1,76]},{17:77,57:w},{17:78,57:w},{17:79,57:w},{17:80,57:w},t([5,18,51,58,59,60,61,62,63,64,65,66],[2,51]),{5:[1,81]},{15:82,69:[1,83]},{5:[2,64]},t(E,[2,7]),{5:[1,85],18:[1,84]},{5:[1,87],18:[1,86]},t(E,[2,16]),{5:[1,88]},{5:[1,89]},t(E,[2,20]),t(E,[2,21]),t(E,[2,22]),t(E,[2,23]),t(E,[2,24]),{5:[1,90]},{5:[2,60]},t(A,a,{8:91}),t(A,a,{8:92}),t(A,a,{8:93}),t(B,a,{37:94,8:95}),t(D,a,{39:96,8:97}),{17:100,55:[1,98],56:[1,99],57:w},t(L,[2,52]),t(L,[2,53]),t(L,[2,54]),t(L,[2,55]),t(L,[2,56]),t(L,[2,57]),t(L,[2,58]),t(L,[2,59]),{17:101,57:w},{17:103,45:102,57:w},{57:[2,46]},{57:[2,47]},{31:104,66:S},{31:105,66:S},{31:106,66:S},{31:107,66:S},t(I,[2,10]),{13:108,70:_},{70:[2,63]},{19:[1,109]},t(E,[2,13]),{19:[1,110]},t(E,[2,15]),t(E,[2,18]),t(E,[2,19]),t(E,[2,25]),{4:s,5:o,6:35,9:14,10:16,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,33:[1,111],34:f,35:y,36:m,38:b,42:x,46:v,47:k,48:C,49:T,57:w,67:n},{4:s,5:o,6:35,9:14,10:16,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,33:[1,112],34:f,35:y,36:m,38:b,42:x,46:v,47:k,48:C,49:T,57:w,67:n},{4:s,5:o,6:35,9:14,10:16,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,33:[1,113],34:f,35:y,36:m,38:b,42:x,46:v,47:k,48:C,49:T,57:w,67:n},{33:[1,114]},{4:s,5:o,6:35,9:14,10:16,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,33:[2,34],34:f,35:y,36:m,38:b,41:[1,115],42:x,46:v,47:k,48:C,49:T,57:w,67:n},{33:[1,116]},{4:s,5:o,6:35,9:14,10:16,11:6,16:l,17:36,20:c,21:20,22:h,23:u,24:d,25:24,26:25,27:26,28:27,29:28,30:p,32:g,33:[2,32],34:f,35:y,36:m,38:b,40:[1,117],42:x,46:v,47:k,48:C,49:T,57:w,67:n},{17:118,57:w},{17:119,57:w},{31:120,66:S},{31:121,66:S},{31:122,66:S},{51:[1,123],66:[2,45]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},{5:[1,124]},{5:[1,125]},{5:[1,126]},t(E,[2,26]),t(E,[2,27]),t(E,[2,28]),t(E,[2,29]),{19:[1,127]},t(E,[2,30]),{19:[1,128]},{31:129,66:S},{31:130,66:S},{5:[2,50]},{5:[2,36]},{5:[2,37]},{17:131,57:w},t(I,[2,11]),t(E,[2,12]),t(E,[2,14]),t(B,a,{8:95,37:132}),t(D,a,{8:97,39:133}),{5:[2,48]},{5:[2,49]},{66:[2,44]},{33:[2,35]},{33:[2,33]}],defaultActions:{7:[2,61],8:[2,1],9:[2,2],10:[2,3],45:[2,64],58:[2,60],75:[2,46],76:[2,47],83:[2,63],104:[2,38],105:[2,39],106:[2,40],107:[2,41],120:[2,50],121:[2,36],122:[2,37],129:[2,48],130:[2,49],131:[2,44],132:[2,35],133:[2,33]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},N={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),67;case 1:return this.begin("type_directive"),68;case 2:return this.popState(),this.begin("arg_directive"),14;case 3:return this.popState(),this.popState(),70;case 4:return 69;case 5:case 39:case 52:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return this.begin("ID"),16;case 12:return this.begin("ID"),20;case 13:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),57;case 14:return this.popState(),this.popState(),this.begin("LINE"),18;case 15:return this.popState(),this.popState(),5;case 16:return this.begin("LINE"),32;case 17:return this.begin("LINE"),34;case 18:return this.begin("LINE"),35;case 19:return this.begin("LINE"),36;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),38;case 22:return this.begin("LINE"),40;case 23:return this.popState(),19;case 24:return 33;case 25:return 52;case 26:return 53;case 27:return 46;case 28:return 47;case 29:return 48;case 30:return 49;case 31:return 44;case 32:return 42;case 33:return this.begin("ID"),23;case 34:return this.begin("ID"),24;case 35:return 30;case 36:return 7;case 37:return 22;case 38:return 51;case 40:return e.yytext=e.yytext.trim(),57;case 41:return 60;case 42:return 61;case 43:return 58;case 44:return 59;case 45:return 62;case 46:return 63;case 47:return 64;case 48:return 65;case 49:return 66;case 50:return 55;case 51:return 56;case 53:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,13],inclusive:!1},ALIAS:{rules:[7,8,14,15],inclusive:!1},LINE:{rules:[7,8,23],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],inclusive:!0}}};function R(){this.yy={}}return O.lexer=N,R.prototype=O,O.Parser=R,new R}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?e940").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/state/parser/stateDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,3],i=[1,5],n=[1,7],a=[2,5],s=[1,15],o=[1,17],l=[1,19],c=[1,20],h=[1,21],u=[1,22],d=[1,30],p=[1,23],g=[1,24],f=[1,25],y=[1,26],m=[1,27],b=[1,32],x=[1,33],v=[1,34],k=[1,35],C=[1,31],T=[1,38],w=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],_=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],E=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],S=[4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],A={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,idStatement:11,DESCR:12,"--\x3e":13,HIDE_EMPTY:14,scale:15,WIDTH:16,COMPOSIT_STATE:17,STRUCT_START:18,STRUCT_STOP:19,STATE_DESCR:20,AS:21,ID:22,FORK:23,JOIN:24,CHOICE:25,CONCURRENT:26,note:27,notePosition:28,NOTE_TEXT:29,direction:30,openDirective:31,typeDirective:32,closeDirective:33,":":34,argDirective:35,direction_tb:36,direction_bt:37,direction_rl:38,direction_lr:39,eol:40,";":41,EDGE_STATE:42,left_of:43,right_of:44,open_directive:45,type_directive:46,arg_directive:47,close_directive:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",12:"DESCR",13:"--\x3e",14:"HIDE_EMPTY",15:"scale",16:"WIDTH",17:"COMPOSIT_STATE",18:"STRUCT_START",19:"STRUCT_STOP",20:"STATE_DESCR",21:"AS",22:"ID",23:"FORK",24:"JOIN",25:"CHOICE",26:"CONCURRENT",27:"note",29:"NOTE_TEXT",34:":",36:"direction_tb",37:"direction_bt",38:"direction_rl",39:"direction_lr",41:";",42:"EDGE_STATE",43:"left_of",44:"right_of",45:"open_directive",46:"type_directive",47:"arg_directive",48:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[40,1],[40,1],[11,1],[11,1],[28,1],[28,1],[31,1],[32,1],[35,1],[33,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:return i.setRootDoc(a[o]),a[o];case 5:this.$=[];break;case 6:"nl"!=a[o]&&(a[o-1].push(a[o]),this.$=a[o-1]);break;case 7:case 8:case 36:case 37:this.$=a[o];break;case 9:this.$="nl";break;case 10:this.$={stmt:"state",id:a[o],type:"default",description:""};break;case 11:this.$={stmt:"state",id:a[o-1],type:"default",description:i.trimColon(a[o])};break;case 12:this.$={stmt:"relation",state1:{stmt:"state",id:a[o-2],type:"default",description:""},state2:{stmt:"state",id:a[o],type:"default",description:""}};break;case 13:this.$={stmt:"relation",state1:{stmt:"state",id:a[o-3],type:"default",description:""},state2:{stmt:"state",id:a[o-1],type:"default",description:""},description:a[o].substr(1).trim()};break;case 17:this.$={stmt:"state",id:a[o-3],type:"default",description:"",doc:a[o-1]};break;case 18:var l=a[o],c=a[o-2].trim();if(a[o].match(":")){var h=a[o].split(":");l=h[0],c=[c,h[1]]}this.$={stmt:"state",id:l,type:"default",description:c};break;case 19:this.$={stmt:"state",id:a[o-3],type:"default",description:a[o-5],doc:a[o-1]};break;case 20:this.$={stmt:"state",id:a[o],type:"fork"};break;case 21:this.$={stmt:"state",id:a[o],type:"join"};break;case 22:this.$={stmt:"state",id:a[o],type:"choice"};break;case 23:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 24:this.$={stmt:"state",id:a[o-1].trim(),note:{position:a[o-2].trim(),text:a[o].trim()}};break;case 30:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 31:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 32:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 33:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:i.parseDirective("%%{","open_directive");break;case 41:i.parseDirective(a[o],"type_directive");break;case 42:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 43:i.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:r,6:4,7:i,31:6,45:n},{1:[3]},{3:8,4:e,5:r,6:4,7:i,31:6,45:n},{3:9,4:e,5:r,6:4,7:i,31:6,45:n},{3:10,4:e,5:r,6:4,7:i,31:6,45:n},t([1,4,5,14,15,17,20,22,23,24,25,26,27,36,37,38,39,42,45],a,{8:11}),{32:12,46:[1,13]},{46:[2,40]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:o,6:28,9:14,10:16,11:18,14:l,15:c,17:h,20:u,22:d,23:p,24:g,25:f,26:y,27:m,30:29,31:6,36:b,37:x,38:v,39:k,42:C,45:n},{33:36,34:[1,37],48:T},t([34,48],[2,41]),t(w,[2,6]),{6:28,10:39,11:18,14:l,15:c,17:h,20:u,22:d,23:p,24:g,25:f,26:y,27:m,30:29,31:6,36:b,37:x,38:v,39:k,42:C,45:n},t(w,[2,8]),t(w,[2,9]),t(w,[2,10],{12:[1,40],13:[1,41]}),t(w,[2,14]),{16:[1,42]},t(w,[2,16],{18:[1,43]}),{21:[1,44]},t(w,[2,20]),t(w,[2,21]),t(w,[2,22]),t(w,[2,23]),{28:45,29:[1,46],43:[1,47],44:[1,48]},t(w,[2,26]),t(w,[2,27]),t(_,[2,36]),t(_,[2,37]),t(w,[2,30]),t(w,[2,31]),t(w,[2,32]),t(w,[2,33]),t(E,[2,28]),{35:49,47:[1,50]},t(E,[2,43]),t(w,[2,7]),t(w,[2,11]),{11:51,22:d,42:C},t(w,[2,15]),t(S,a,{8:52}),{22:[1,53]},{22:[1,54]},{21:[1,55]},{22:[2,38]},{22:[2,39]},{33:56,48:T},{48:[2,42]},t(w,[2,12],{12:[1,57]}),{4:s,5:o,6:28,9:14,10:16,11:18,14:l,15:c,17:h,19:[1,58],20:u,22:d,23:p,24:g,25:f,26:y,27:m,30:29,31:6,36:b,37:x,38:v,39:k,42:C,45:n},t(w,[2,18],{18:[1,59]}),{29:[1,60]},{22:[1,61]},t(E,[2,29]),t(w,[2,13]),t(w,[2,17]),t(S,a,{8:62}),t(w,[2,24]),t(w,[2,25]),{4:s,5:o,6:28,9:14,10:16,11:18,14:l,15:c,17:h,19:[1,63],20:u,22:d,23:p,24:g,25:f,26:y,27:m,30:29,31:6,36:b,37:x,38:v,39:k,42:C,45:n},t(w,[2,19])],defaultActions:{7:[2,40],8:[2,1],9:[2,2],10:[2,3],47:[2,38],48:[2,39],50:[2,42]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},B={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:case 26:return 36;case 1:case 27:return 37;case 2:case 28:return 38;case 3:case 29:return 39;case 4:return this.begin("open_directive"),45;case 5:return this.begin("type_directive"),46;case 6:return this.popState(),this.begin("arg_directive"),34;case 7:return this.popState(),this.popState(),48;case 8:return 47;case 9:case 10:case 12:case 13:case 14:case 15:case 39:case 45:break;case 11:case 59:return 5;case 16:return this.pushState("SCALE"),15;case 17:return 16;case 18:case 33:case 36:this.popState();break;case 19:this.pushState("STATE");break;case 20:case 23:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),23;case 21:case 24:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 22:case 25:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),25;case 30:this.begin("STATE_STRING");break;case 31:return this.popState(),this.pushState("STATE_ID"),"AS";case 32:case 47:return this.popState(),"ID";case 34:return"STATE_DESCR";case 35:return 17;case 37:return this.popState(),this.pushState("struct"),18;case 38:return this.popState(),19;case 40:return this.begin("NOTE"),27;case 41:return this.popState(),this.pushState("NOTE_ID"),43;case 42:return this.popState(),this.pushState("NOTE_ID"),44;case 43:this.popState(),this.pushState("FLOATING_NOTE");break;case 44:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 46:return"NOTE_TEXT";case 48:return this.popState(),this.pushState("NOTE_TEXT"),22;case 49:return this.popState(),e.yytext=e.yytext.substr(2).trim(),29;case 50:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),29;case 51:case 52:return 7;case 53:return 14;case 54:return 42;case 55:return 22;case 56:return e.yytext=e.yytext.trim(),12;case 57:return 13;case 58:return 26;case 60:return"INVALID"}},rules:[/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[13,14],inclusive:!1},close_directive:{rules:[13,14],inclusive:!1},arg_directive:{rules:[7,8,13,14],inclusive:!1},type_directive:{rules:[6,7,13,14],inclusive:!1},open_directive:{rules:[5,13,14],inclusive:!1},struct:{rules:[13,14,19,26,27,28,29,38,39,40,54,55,56,57,58],inclusive:!1},FLOATING_NOTE_ID:{rules:[47],inclusive:!1},FLOATING_NOTE:{rules:[44,45,46],inclusive:!1},NOTE_TEXT:{rules:[49,50],inclusive:!1},NOTE_ID:{rules:[48],inclusive:!1},NOTE:{rules:[41,42,43],inclusive:!1},SCALE:{rules:[17,18],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[32],inclusive:!1},STATE_STRING:{rules:[33,34],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[13,14,20,21,22,23,24,25,30,31,35,36,37],inclusive:!1},ID:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,12,14,15,16,19,37,40,51,52,53,54,55,56,57,59,60],inclusive:!0}}};function D(){this.yy={}}return A.lexer=B,D.prototype=A,A.Parser=D,new D}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?a3b8").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/user-journey/parser/journey.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,5],i=[6,9,11,17,18,19,21],n=[1,15],a=[1,16],s=[1,17],o=[1,21],l=[4,6,9,11,17,18,19,21],c={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,section:18,taskName:19,taskData:20,open_directive:21,type_directive:22,arg_directive:23,close_directive:24,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"section",19:"taskName",20:"taskData",21:"open_directive",22:"type_directive",23:"arg_directive",24:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 1:return a[o-1];case 3:case 7:case 8:this.$=[];break;case 4:a[o-1].push(a[o]),this.$=a[o-1];break;case 5:case 6:this.$=a[o];break;case 11:i.setTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 12:i.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 13:i.addTask(a[o-1],a[o]),this.$="task";break;case 15:i.parseDirective("%%{","open_directive");break;case 16:i.parseDirective(a[o],"type_directive");break;case 17:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 18:i.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,21:r},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,21:r},{13:8,22:[1,9]},{22:[2,15]},{6:[1,10],7:18,8:11,9:[1,12],10:13,11:[1,14],12:4,17:n,18:a,19:s,21:r},{1:[2,2]},{14:19,15:[1,20],24:o},t([15,24],[2,16]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:18,10:22,12:4,17:n,18:a,19:s,21:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),t(i,[2,12]),{20:[1,23]},t(i,[2,14]),{11:[1,24]},{16:25,23:[1,26]},{11:[2,18]},t(i,[2,5]),t(i,[2,13]),t(l,[2,9]),{14:27,24:o},{24:[2,17]},{11:[1,28]},t(l,[2,10])],defaultActions:{5:[2,15],7:[2,2],21:[2,18],26:[2,17]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",l=0,c=0,h=0,u=2,d=1,p=a.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var m=g.yylloc;a.push(m);var b=g.options&&g.options.ranges;function x(){var t;return"number"!=typeof(t=i.pop()||g.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,k,C,T,w,_,E,S,A,B={};;){if(C=r[r.length-1],this.defaultActions[C]?T=this.defaultActions[C]:(null==v&&(v=x()),T=s[C]&&s[C][v]),void 0===T||!T.length||!T[0]){var D="";for(_ in A=[],s[C])this.terminals_[_]&&_>u&&A.push("'"+this.terminals_[_]+"'");D=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[v]||v,line:g.yylineno,loc:m,expected:A})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+v);switch(T[0]){case 1:r.push(v),n.push(g.yytext),a.push(g.yylloc),r.push(T[1]),v=null,k?(v=k,k=null):(c=g.yyleng,o=g.yytext,l=g.yylineno,m=g.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],B.$=n[n.length-E],B._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(B,[o,c,l,f.yy,T[1],n,a].concat(p))))return w;E&&(r=r.slice(0,-1*E*2),n=n.slice(0,-1*E),a=a.slice(0,-1*E)),r.push(this.productions_[T[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},h={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),21;case 1:return this.begin("type_directive"),22;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),24;case 4:return 23;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return 18;case 13:return 19;case 14:return 20;case 15:return 15;case 16:return 6;case 17:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};function u(){this.yy={}}return c.lexer=h,u.prototype=c,c.Parser=u,new u}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?0f62").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/config.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{defaultConfig:()=>c,updateCurrentConfig:()=>p,setSiteConfig:()=>g,saveConfigFromInitilize:()=>f,updateSiteConfig:()=>y,getSiteConfig:()=>m,setConfig:()=>b,getConfig:()=>x,sanitize:()=>v,addDirective:()=>k,reset:()=>C});var i=r("./src/utils.js"),n=r("./src/logger.js"),a=r("./src/themes/index.js"),s=r("./src/defaultConfig.js");function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}var l,c=Object.freeze(s.default),h=(0,i.assignWithDepth)({},c),u=[],d=(0,i.assignWithDepth)({},c),p=function(t,e){for(var r=(0,i.assignWithDepth)({},t),n={},s=0;s-1||e[r].indexOf(">")>-1||e[r].indexOf("url(data:")>-1)&&delete e[r],"object"===o(e[r])&&t(e[r])}))},k=function(t){t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),u.push(t),p(h,u)},C=function(){p(h,u=[])}},"./src/dagre-wrapper/clusters.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{insertCluster:()=>u,getClusterTitleWidth:()=>d,clear:()=>p,positionCluster:()=>g});var i=r("./src/dagre-wrapper/intersect/intersect-rect.js"),n=r("./src/logger.js"),a=r("./src/dagre-wrapper/createLabel.js"),s=r("d3"),o=r("./src/config.js"),l=r("./src/diagrams/common/common.js"),c={rect:function(t,e){n.log.trace("Creating subgraph rect for ",e.id,e);var r=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),c=r.insert("rect",":first-child"),h=r.insert("g").attr("class","cluster-label"),u=h.node().appendChild((0,a.default)(e.labelText,e.labelStyle,void 0,!0)),d=u.getBBox();if((0,l.evaluate)((0,o.getConfig)().flowchart.htmlLabels)){var p=u.children[0],g=(0,s.select)(u);d=p.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}var f=0*e.padding,y=f/2,m=e.width<=d.width+f?d.width+f:e.width;e.width<=d.width+f?e.diff=(d.width-e.width)/2:e.diff=-e.padding/2,n.log.trace("Data ",e,JSON.stringify(e)),c.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-m/2).attr("y",e.y-e.height/2-y).attr("width",m).attr("height",e.height+f),h.attr("transform","translate("+(e.x-d.width/2)+", "+(e.y-e.height/2+e.padding/3)+")");var b=c.node().getBBox();return e.width=b.width,e.height=b.height,e.intersect=function(t){return(0,i.default)(e,t)},r},roundedWithTitle:function(t,e){var r=t.insert("g").attr("class",e.classes).attr("id",e.id),n=r.insert("rect",":first-child"),c=r.insert("g").attr("class","cluster-label"),h=r.append("rect"),u=c.node().appendChild((0,a.default)(e.labelText,e.labelStyle,void 0,!0)),d=u.getBBox();if((0,l.evaluate)((0,o.getConfig)().flowchart.htmlLabels)){var p=u.children[0],g=(0,s.select)(u);d=p.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}d=u.getBBox();var f=0*e.padding,y=f/2,m=e.width<=d.width+e.padding?d.width+e.padding:e.width;e.width<=d.width+e.padding?e.diff=(d.width+0*e.padding-e.width)/2:e.diff=-e.padding/2,n.attr("class","outer").attr("x",e.x-m/2-y).attr("y",e.y-e.height/2-y).attr("width",m+f).attr("height",e.height+f),h.attr("class","inner").attr("x",e.x-m/2-y).attr("y",e.y-e.height/2-y+d.height-1).attr("width",m+f).attr("height",e.height+f-d.height-3),c.attr("transform","translate("+(e.x-d.width/2)+", "+(e.y-e.height/2-e.padding/3+((0,l.evaluate)((0,o.getConfig)().flowchart.htmlLabels)?5:3))+")");var b=n.node().getBBox();return e.height=b.height,e.intersect=function(t){return(0,i.default)(e,t)},r},noteGroup:function(t,e){var r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),a=0*e.padding,s=a/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-s).attr("y",e.y-e.height/2-s).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");var o=n.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return(0,i.default)(e,t)},r},divider:function(t,e){var r=t.insert("g").attr("class",e.classes).attr("id",e.id),n=r.insert("rect",":first-child"),a=0*e.padding,s=a/2;n.attr("class","divider").attr("x",e.x-e.width/2-s).attr("y",e.y-e.height/2).attr("width",e.width+a).attr("height",e.height+a);var o=n.node().getBBox();return e.width=o.width,e.height=o.height,e.diff=-e.padding/2,e.intersect=function(t){return(0,i.default)(e,t)},r}},h={},u=function(t,e){n.log.trace("Inserting cluster");var r=e.shape||"rect";h[e.id]=c[r](t,e)},d=function(t,e){var r=(0,a.default)(e.labelText,e.labelStyle,void 0,!0);t.node().appendChild(r);var i=r.getBBox().width;return t.node().removeChild(r),i},p=function(){h={}},g=function(t){n.log.info("Position cluster ("+t.id+", "+t.x+", "+t.y+")"),h[t.id].attr("transform","translate("+t.x+", "+t.y+")")}},"./src/dagre-wrapper/createLabel.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>l});var i=r("d3"),n=r("./src/logger.js"),a=r("./src/config.js"),s=r("./src/diagrams/common/common.js");function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}const l=function(t,e,r,l){var c,h,u,d,p,g,f=t||"";if("object"===o(f)&&(f=f[0]),(0,s.evaluate)((0,a.getConfig)().flowchart.htmlLabels))return f=f.replace(/\\n|\n/g,"
"),n.log.info("vertexText"+f),c={isNode:l,label:f.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(t){return"")})),labelStyle:e.replace("fill:","color:")},u=(0,i.select)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),d=u.append("xhtml:div"),p=c.label,g=c.isNode?"nodeLabel":"edgeLabel",d.html('"+p+""),(h=c.labelStyle)&&d.attr("style",h),d.style("display","inline-block"),d.style("white-space","nowrap"),d.attr("xmlns","http://www.w3.org/1999/xhtml"),u.node();var y=document.createElementNS("http://www.w3.org/2000/svg","text");y.setAttribute("style",e.replace("color:","fill:"));var m=[];m="string"==typeof f?f.split(/\\n|\n|/gi):Array.isArray(f)?f:[];for(var b=0;b{"use strict";r.r(e),r.d(e,{clear:()=>u,insertEdgeLabel:()=>d,positionEdgeLabel:()=>g,intersection:()=>f,insertEdge:()=>m});var i=r("./src/logger.js"),n=r("./src/dagre-wrapper/createLabel.js"),a=r("d3"),s=r("./src/config.js"),o=r("./src/utils.js"),l=r("./src/diagrams/common/common.js"),c={},h={},u=function(){c={},h={}},d=function(t,e){var r=(0,n.default)(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),o=i.insert("g").attr("class","label");o.node().appendChild(r);var u,d=r.getBBox();if((0,l.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var g=r.children[0],f=(0,a.select)(r);d=g.getBoundingClientRect(),f.attr("width",d.width),f.attr("height",d.height)}if(o.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),c[e.id]=i,e.width=d.width,e.height=d.height,e.startLabelLeft){var y=(0,n.default)(e.startLabelLeft,e.labelStyle),m=t.insert("g").attr("class","edgeTerminals"),b=m.insert("g").attr("class","inner");u=b.node().appendChild(y);var x=y.getBBox();b.attr("transform","translate("+-x.width/2+", "+-x.height/2+")"),h[e.id]||(h[e.id]={}),h[e.id].startLeft=m,p(u,e.startLabelLeft)}if(e.startLabelRight){var v=(0,n.default)(e.startLabelRight,e.labelStyle),k=t.insert("g").attr("class","edgeTerminals"),C=k.insert("g").attr("class","inner");u=k.node().appendChild(v),C.node().appendChild(v);var T=v.getBBox();C.attr("transform","translate("+-T.width/2+", "+-T.height/2+")"),h[e.id]||(h[e.id]={}),h[e.id].startRight=k,p(u,e.startLabelRight)}if(e.endLabelLeft){var w=(0,n.default)(e.endLabelLeft,e.labelStyle),_=t.insert("g").attr("class","edgeTerminals"),E=_.insert("g").attr("class","inner");u=E.node().appendChild(w);var S=w.getBBox();E.attr("transform","translate("+-S.width/2+", "+-S.height/2+")"),_.node().appendChild(w),h[e.id]||(h[e.id]={}),h[e.id].endLeft=_,p(u,e.endLabelLeft)}if(e.endLabelRight){var A=(0,n.default)(e.endLabelRight,e.labelStyle),B=t.insert("g").attr("class","edgeTerminals"),D=B.insert("g").attr("class","inner");u=D.node().appendChild(A);var L=A.getBBox();D.attr("transform","translate("+-L.width/2+", "+-L.height/2+")"),B.node().appendChild(A),h[e.id]||(h[e.id]={}),h[e.id].endRight=B,p(u,e.endLabelRight)}};function p(t,e){(0,s.getConfig)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}var g=function(t,e){i.log.info("Moving label abc78 ",t.id,t.label,c[t.id]);var r=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){var n=c[t.id],a=t.x,s=t.y;if(r){var l=o.default.calcLabelPosition(r);i.log.info("Moving label from (",a,",",s,") to (",l.x,",",l.y,") abc78")}n.attr("transform","translate("+a+", "+s+")")}if(t.startLabelLeft){var u=h[t.id].startLeft,d=t.x,p=t.y;if(r){var g=o.default.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);d=g.x,p=g.y}u.attr("transform","translate("+d+", "+p+")")}if(t.startLabelRight){var f=h[t.id].startRight,y=t.x,m=t.y;if(r){var b=o.default.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);y=b.x,m=b.y}f.attr("transform","translate("+y+", "+m+")")}if(t.endLabelLeft){var x=h[t.id].endLeft,v=t.x,k=t.y;if(r){var C=o.default.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);v=C.x,k=C.y}x.attr("transform","translate("+v+", "+k+")")}if(t.endLabelRight){var T=h[t.id].endRight,w=t.x,_=t.y;if(r){var E=o.default.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);w=E.x,_=E.y}T.attr("transform","translate("+w+", "+_+")")}},f=function(t,e,r){i.log.warn("intersection calc abc89:\n outsidePoint: ".concat(JSON.stringify(e),"\n insidePoint : ").concat(JSON.stringify(r),"\n node : x:").concat(t.x," y:").concat(t.y," w:").concat(t.width," h:").concat(t.height));var n=t.x,a=t.y,s=Math.abs(n-r.x),o=t.width/2,l=r.xMath.abs(n-e.x)*c){var d=r.y=s||a>=o}(e,t)||a)i.log.warn("abc88 outside",t,n),n=t,a||r.push(t);else{var s=f(e,n,t);i.log.warn("abc88 inside",t,n,s),i.log.warn("abc88 intersection",s);var o=!1;r.forEach((function(t){o=o||t.x===s.x&&t.y===s.y})),r.find((function(t){return t.x===s.x&&t.y===s.y}))?i.log.warn("abc88 no intersect",s,r):r.push(s),a=!0}})),i.log.warn("abc88 returning points",r),r},m=function(t,e,r,n,o,l){var c=r.points,h=!1,u=l.node(e.v),d=l.node(e.w);i.log.info("abc88 InsertEdge: ",r),d.intersect&&u.intersect&&((c=c.slice(1,r.points.length-1)).unshift(u.intersect(c[0])),i.log.info("Last point",c[c.length-1],d,d.intersect(c[c.length-1])),c.push(d.intersect(c[c.length-1]))),r.toCluster&&(i.log.info("to cluster abc88",n[r.toCluster]),c=y(r.points,n[r.toCluster].node),h=!0),r.fromCluster&&(i.log.info("from cluster abc88",n[r.fromCluster]),c=y(c.reverse(),n[r.fromCluster].node).reverse(),h=!0);var p,g=c.filter((function(t){return!Number.isNaN(t.y)}));p=("graph"===o||"flowchart"===o)&&r.curve||a.curveBasis;var f,m=(0,a.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(p);switch(r.thickness){case"normal":f="edge-thickness-normal";break;case"thick":f="edge-thickness-thick";break;default:f=""}switch(r.pattern){case"solid":f+=" edge-pattern-solid";break;case"dotted":f+=" edge-pattern-dotted";break;case"dashed":f+=" edge-pattern-dashed"}var b=t.append("path").attr("d",m(g)).attr("id",r.id).attr("class"," "+f+(r.classes?" "+r.classes:"")).attr("style",r.style),x="";switch((0,s.getConfig)().state.arrowMarkerAbsolute&&(x=(x=(x=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),i.log.info("arrowTypeStart",r.arrowTypeStart),i.log.info("arrowTypeEnd",r.arrowTypeEnd),r.arrowTypeStart){case"arrow_cross":b.attr("marker-start","url("+x+"#"+o+"-crossStart)");break;case"arrow_point":b.attr("marker-start","url("+x+"#"+o+"-pointStart)");break;case"arrow_barb":b.attr("marker-start","url("+x+"#"+o+"-barbStart)");break;case"arrow_circle":b.attr("marker-start","url("+x+"#"+o+"-circleStart)");break;case"aggregation":b.attr("marker-start","url("+x+"#"+o+"-aggregationStart)");break;case"extension":b.attr("marker-start","url("+x+"#"+o+"-extensionStart)");break;case"composition":b.attr("marker-start","url("+x+"#"+o+"-compositionStart)");break;case"dependency":b.attr("marker-start","url("+x+"#"+o+"-dependencyStart)")}switch(r.arrowTypeEnd){case"arrow_cross":b.attr("marker-end","url("+x+"#"+o+"-crossEnd)");break;case"arrow_point":b.attr("marker-end","url("+x+"#"+o+"-pointEnd)");break;case"arrow_barb":b.attr("marker-end","url("+x+"#"+o+"-barbEnd)");break;case"arrow_circle":b.attr("marker-end","url("+x+"#"+o+"-circleEnd)");break;case"aggregation":b.attr("marker-end","url("+x+"#"+o+"-aggregationEnd)");break;case"extension":b.attr("marker-end","url("+x+"#"+o+"-extensionEnd)");break;case"composition":b.attr("marker-end","url("+x+"#"+o+"-compositionEnd)");break;case"dependency":b.attr("marker-end","url("+x+"#"+o+"-dependencyEnd)")}var v={};return h&&(v.updatedPath=c),v.originalPath=r.points,v}},"./src/dagre-wrapper/index.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{render:()=>f});var i=r("dagre"),n=r.n(i),a=r("graphlib"),s=r.n(a),o=r("./src/dagre-wrapper/markers.js"),l=r("./src/dagre-wrapper/shapes/util.js"),c=r("./src/dagre-wrapper/mermaid-graphlib.js"),h=r("./src/dagre-wrapper/nodes.js"),u=r("./src/dagre-wrapper/clusters.js"),d=r("./src/dagre-wrapper/edges.js"),p=r("./src/logger.js"),g=function t(e,r,i,a){p.log.info("Graph in recursive render: XXX",s().json.write(r),a);var o=r.graph().rankdir;p.log.trace("Dir in recursive render - dir:",o);var g=e.insert("g").attr("class","root");r.nodes()?p.log.info("Recursive render XXX",r.nodes()):p.log.info("No nodes found for",r),r.edges().length>0&&p.log.trace("Recursive edges",r.edge(r.edges()[0]));var f=g.insert("g").attr("class","clusters"),y=g.insert("g").attr("class","edgePaths"),m=g.insert("g").attr("class","edgeLabels"),b=g.insert("g").attr("class","nodes");r.nodes().forEach((function(e){var n=r.node(e);if(void 0!==a){var s=JSON.parse(JSON.stringify(a.clusterData));p.log.info("Setting data for cluster XXX (",e,") ",s,a),r.setNode(a.id,s),r.parent(e)||(p.log.trace("Setting parent",e,a.id),r.setParent(e,a.id,s))}if(p.log.info("(Insert) Node XXX"+e+": "+JSON.stringify(r.node(e))),n&&n.clusterNode){p.log.info("Cluster identified",e,n.width,r.node(e));var u=t(b,n.graph,i,r.node(e)),d=u.elem;(0,l.updateNodeBounds)(n,d),n.diff=u.diff||0,p.log.info("Node bounds (abc123)",e,n,n.width,n.x,n.y),(0,h.setNodeElem)(d,n),p.log.warn("Recursive render complete ",d,n)}else r.children(e).length>0?(p.log.info("Cluster - the non recursive path XXX",e,n.id,n,r),p.log.info((0,c.findNonClusterChild)(n.id,r)),c.clusterDb[n.id]={id:(0,c.findNonClusterChild)(n.id,r),node:n}):(p.log.info("Node - the non recursive path",e,n.id,n),(0,h.insertNode)(b,r.node(e),o))})),r.edges().forEach((function(t){var e=r.edge(t.v,t.w,t.name);p.log.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),p.log.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(r.edge(t))),p.log.info("Fix",c.clusterDb,"ids:",t.v,t.w,"Translateing: ",c.clusterDb[t.v],c.clusterDb[t.w]),(0,d.insertEdgeLabel)(m,e)})),r.edges().forEach((function(t){p.log.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),p.log.info("#############################################"),p.log.info("### Layout ###"),p.log.info("#############################################"),p.log.info(r),n().layout(r),p.log.info("Graph after layout:",s().json.write(r));var x=0;return(0,c.sortNodesByHierarchy)(r).forEach((function(t){var e=r.node(t);p.log.info("Position "+t+": "+JSON.stringify(r.node(t))),p.log.info("Position "+t+": ("+e.x,","+e.y,") width: ",e.width," height: ",e.height),e&&e.clusterNode?(0,h.positionNode)(e):r.children(t).length>0?((0,u.insertCluster)(f,e),c.clusterDb[e.id].node=e):(0,h.positionNode)(e)})),r.edges().forEach((function(t){var e=r.edge(t);p.log.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e),e);var n=(0,d.insertEdge)(y,t,e,c.clusterDb,i,r);(0,d.positionEdgeLabel)(e,n)})),r.nodes().forEach((function(t){var e=r.node(t);p.log.info(t,e.type,e.diff),"group"===e.type&&(x=e.diff)})),{elem:g,diff:x}},f=function(t,e,r,i,n){(0,o.default)(t,r,i,n),(0,h.clear)(),(0,d.clear)(),(0,u.clear)(),(0,c.clear)(),p.log.warn("Graph at first:",s().json.write(e)),(0,c.adjustClustersAndEdges)(e),p.log.warn("Graph after:",s().json.write(e)),g(t,e,i)}},"./src/dagre-wrapper/intersect/index.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>c});var i=r("./src/dagre-wrapper/intersect/intersect-node.js"),n=r.n(i),a=r("./src/dagre-wrapper/intersect/intersect-circle.js"),s=r("./src/dagre-wrapper/intersect/intersect-ellipse.js"),o=r("./src/dagre-wrapper/intersect/intersect-polygon.js"),l=r("./src/dagre-wrapper/intersect/intersect-rect.js");const c={node:n(),circle:a.default,ellipse:s.default,polygon:o.default,rect:l.default}},"./src/dagre-wrapper/intersect/intersect-circle.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});var i=r("./src/dagre-wrapper/intersect/intersect-ellipse.js");const n=function(t,e,r){return(0,i.default)(t,e,e,r)}},"./src/dagre-wrapper/intersect/intersect-ellipse.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t,e,r,i){var n=t.x,a=t.y,s=n-i.x,o=a-i.y,l=Math.sqrt(e*e*o*o+r*r*s*s),c=Math.abs(e*r*s/l);i.x{"use strict";function i(t,e){return t*e>0}r.r(e),r.d(e,{default:()=>n});const n=function(t,e,r,n){var a,s,o,l,c,h,u,d,p,g,f,y,m;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,p=a*r.x+o*r.y+c,g=a*n.x+o*n.y+c,!(0!==p&&0!==g&&i(p,g)||(s=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,u=s*t.x+l*t.y+h,d=s*e.x+l*e.y+h,0!==u&&0!==d&&i(u,d)||0==(f=a*l-s*o))))return y=Math.abs(f/2),{x:(m=o*h-l*c)<0?(m-y)/f:(m+y)/f,y:(m=s*c-a*h)<0?(m-y)/f:(m+y)/f}}},"./src/dagre-wrapper/intersect/intersect-node.js":t=>{t.exports=function(t,e){return t.intersect(e)}},"./src/dagre-wrapper/intersect/intersect-polygon.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});var i=r("./src/dagre-wrapper/intersect/intersect-line.js");const n=function(t,e,r){var n=t.x,a=t.y,s=[],o=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),l=Math.min(l,t.y)})):(o=Math.min(o,e.x),l=Math.min(l,e.y));for(var c=n-t.width/2-o,h=a-t.height/2-l,u=0;u1&&s.sort((function(t,e){var i=t.x-r.x,n=t.y-r.y,a=Math.sqrt(i*i+n*n),s=e.x-r.x,o=e.y-r.y,l=Math.sqrt(s*s+o*o);return a{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t,e){var r,i,n=t.x,a=t.y,s=e.x-n,o=e.y-a,l=t.width/2,c=t.height/2;return Math.abs(o)*l>Math.abs(s)*c?(o<0&&(c=-c),r=0===o?0:c*s/o,i=c):(s<0&&(l=-l),r=l,i=0===s?0:l*o/s),{x:n+r,y:a+i}}},"./src/dagre-wrapper/markers.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>a});var i=r("./src/logger.js"),n={extension:function(t,e,r){i.log.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:function(t,e){t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:function(t,e){t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:function(t,e){t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},point:function(t,e){t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:function(t,e){t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:function(t,e){t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:function(t,e){t.append("defs").append("marker").attr("id",e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}};const a=function(t,e,r,i){e.forEach((function(e){n[e](t,r,i)}))}},"./src/dagre-wrapper/mermaid-graphlib.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{clusterDb:()=>s,clear:()=>c,extractDecendants:()=>d,validate:()=>p,findNonClusterChild:()=>g,adjustClustersAndEdges:()=>y,extractor:()=>m,sortNodesByHierarchy:()=>x});var i=r("./src/logger.js"),n=r("graphlib"),a=r.n(n),s={},o={},l={},c=function(){o={},l={},s={}},h=function(t,e){return i.log.trace("In isDecendant",e," ",t," = ",o[e].indexOf(t)>=0),o[e].indexOf(t)>=0},u=function t(e,r,n,a){i.log.warn("Copying children of ",e,"root",a,"data",r.node(e),a);var s=r.children(e)||[];e!==a&&s.push(e),i.log.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach((function(s){if(r.children(s).length>0)t(s,r,n,a);else{var l=r.node(s);i.log.info("cp ",s," to ",a," with parent ",e),n.setNode(s,l),a!==r.parent(s)&&(i.log.warn("Setting parent",s,r.parent(s)),n.setParent(s,r.parent(s))),e!==a&&s!==e?(i.log.debug("Setting parent",s,e),n.setParent(s,e)):(i.log.info("In copy ",e,"root",a,"data",r.node(e),a),i.log.debug("Not Setting parent for node=",s,"cluster!==rootId",e!==a,"node!==clusterId",s!==e));var c=r.edges(s);i.log.debug("Copying Edges",c),c.forEach((function(t){i.log.info("Edge",t);var s=r.edge(t.v,t.w,t.name);i.log.info("Edge data",s,a);try{!function(t,e){return i.log.info("Decendants of ",e," is ",o[e]),i.log.info("Edge is ",t),t.v!==e&&t.w!==e&&(o[e]?(i.log.info("Here "),o[e].indexOf(t.v)>=0||!!h(t.v,e)||!!h(t.w,e)||o[e].indexOf(t.w)>=0):(i.log.debug("Tilt, ",e,",not in decendants"),!1))}(t,a)?i.log.info("Skipping copy of edge ",t.v,"--\x3e",t.w," rootId: ",a," clusterId:",e):(i.log.info("Copying as ",t.v,t.w,s,t.name),n.setEdge(t.v,t.w,s,t.name),i.log.info("newGraph edges ",n.edges(),n.edge(n.edges()[0])))}catch(t){i.log.error(t)}}))}i.log.debug("Removing node",s),r.removeNode(s)}))},d=function t(e,r){for(var i=r.children(e),n=[].concat(i),a=0;a0)return i.log.trace("The node ",e[r].v," is part of and edge even though it has children"),!1;if(t.children(e[r].w).length>0)return i.log.trace("The node ",e[r].w," is part of and edge even though it has children"),!1}return!0},g=function t(e,r){i.log.trace("Searching",e);var n=r.children(e);if(i.log.trace("Searching children of id ",e,n),n.length<1)return i.log.trace("This is a valid node",e),e;for(var a=0;a ",s),s}},f=function(t){return s[t]&&s[t].externalConnections&&s[t]?s[t].id:t},y=function(t,e){!t||e>10?i.log.debug("Opting out, no graph "):(i.log.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(i.log.warn("Cluster identified",e," Replacement id in edges: ",g(e,t)),o[e]=d(e,t),s[e]={id:g(e,t),clusterData:t.node(e)})})),t.nodes().forEach((function(e){var r=t.children(e),n=t.edges();r.length>0?(i.log.debug("Cluster identified",e,o),n.forEach((function(t){t.v!==e&&t.w!==e&&h(t.v,e)^h(t.w,e)&&(i.log.warn("Edge: ",t," leaves cluster ",e),i.log.warn("Decendants of XXX ",e,": ",o[e]),s[e].externalConnections=!0)}))):i.log.debug("Not a cluster ",e,o)})),t.edges().forEach((function(e){var r=t.edge(e);i.log.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),i.log.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));var n=e.v,a=e.w;i.log.warn("Fix XXX",s,"ids:",e.v,e.w,"Translateing: ",s[e.v]," --- ",s[e.w]),(s[e.v]||s[e.w])&&(i.log.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),n=f(e.v),a=f(e.w),t.removeEdge(e.v,e.w,e.name),n!==e.v&&(r.fromCluster=e.v),a!==e.w&&(r.toCluster=e.w),i.log.warn("Fix Replacing with XXX",n,a,e.name),t.setEdge(n,a,r,e.name))})),i.log.warn("Adjusted Graph",a().json.write(t)),m(t,0),i.log.trace(s))},m=function t(e,r){if(i.log.warn("extractor - ",r,a().json.write(e),e.children("D")),r>10)i.log.error("Bailing out");else{for(var n=e.nodes(),o=!1,l=0;l0}if(o){i.log.debug("Nodes = ",n,r);for(var d=0;d0){i.log.warn("Cluster without external connections, without a parent and with children",p,r);var g="TB"===e.graph().rankdir?"LR":"TB";s[p]&&s[p].clusterData&&s[p].clusterData.dir&&(g=s[p].clusterData.dir,i.log.warn("Fixing dir",s[p].clusterData.dir,g));var f=new(a().Graph)({multigraph:!0,compound:!0}).setGraph({rankdir:g,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));i.log.warn("Old graph before copy",a().json.write(e)),u(p,e,f,p),e.setNode(p,{clusterNode:!0,id:p,clusterData:s[p].clusterData,labelText:s[p].labelText,graph:f}),i.log.warn("New graph after copy node: (",p,")",a().json.write(f)),i.log.debug("Old graph after copy",a().json.write(e))}else i.log.warn("Cluster ** ",p," **not meeting the criteria !externalConnections:",!s[p].externalConnections," no parent: ",!e.parent(p)," children ",e.children(p)&&e.children(p).length>0,e.children("D"),r),i.log.debug(s);else i.log.debug("Not a cluster",p,r)}n=e.nodes(),i.log.warn("New list of nodes",n);for(var y=0;y{"use strict";r.r(e),r.d(e,{insertNode:()=>y,setNodeElem:()=>m,clear:()=>b,positionNode:()=>x});var i=r("d3"),n=r("./src/logger.js"),a=r("./src/dagre-wrapper/shapes/util.js"),s=r("./src/config.js"),o=r("./src/dagre-wrapper/intersect/index.js"),l=r("./src/dagre-wrapper/createLabel.js"),c=r("./src/dagre-wrapper/shapes/note.js"),h=r("./src/diagrams/class/svgDraw.js"),u=r("./src/diagrams/common/common.js");function d(t){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}var p=function(t,e,r){var i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=70,s=10;"LR"===r&&(n=10,s=70);var l=i.append("rect").attr("x",-1*n/2).attr("y",-1*s/2).attr("width",n).attr("height",s).attr("class","fork-join");return(0,a.updateNodeBounds)(e,l),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return o.default.rect(e,t)},i},g={question:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,s=r.bbox,l=s.width+e.padding+(s.height+e.padding),c=[{x:l/2,y:0},{x:l,y:-l/2},{x:l/2,y:-l},{x:0,y:-l/2}];n.log.info("Question main (Circle)");var h=(0,a.insertPolygonShape)(i,l,l,c);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return n.log.warn("Intersect called"),o.default.polygon(e,c,t)},i},rect:function(t,e){var r=(0,a.labelHelper)(t,e,"node "+e.classes,!0),i=r.shapeSvg,s=r.bbox,l=r.halfPadding;n.log.trace("Classes = ",e.classes);var c=i.insert("rect",":first-child"),h=s.width+e.padding,u=s.height+e.padding;if(c.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-s.width/2-l).attr("y",-s.height/2-l).attr("width",h).attr("height",u),e.props){var d=new Set(Object.keys(e.props));e.props.borders&&(function(t,e,r,i){var a=[],s=function(t){a.push(t),a.push(0)},o=function(t){a.push(0),a.push(t)};e.includes("t")?(n.log.debug("add top border"),s(r)):o(r),e.includes("r")?(n.log.debug("add right border"),s(i)):o(i),e.includes("b")?(n.log.debug("add bottom border"),s(r)):o(r),e.includes("l")?(n.log.debug("add left border"),s(i)):o(i),t.attr("stroke-dasharray",a.join(" "))}(c,e.props.borders,h,u),d.delete("borders")),d.forEach((function(t){n.log.warn("Unknown node property ".concat(t))}))}return(0,a.updateNodeBounds)(e,c),e.intersect=function(t){return o.default.rect(e,t)},i},rectWithTitle:function(t,e){var r;r=e.classes?"node "+e.classes:"node default";var c,h=t.insert("g").attr("class",r).attr("id",e.domId||e.id),p=h.insert("rect",":first-child"),g=h.insert("line"),f=h.insert("g").attr("class","label"),y=e.labelText.flat?e.labelText.flat():e.labelText;c="object"===d(y)?y[0]:y,n.log.info("Label text abc79",c,y,"object"===d(y));var m=f.node().appendChild((0,l.default)(c,e.labelStyle,!0,!0)),b={width:0,height:0};if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var x=m.children[0],v=(0,i.select)(m);b=x.getBoundingClientRect(),v.attr("width",b.width),v.attr("height",b.height)}n.log.info("Text 2",y);var k=y.slice(1,y.length),C=m.getBBox(),T=f.node().appendChild((0,l.default)(k.join?k.join("
"):k,e.labelStyle,!0,!0));if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var w=T.children[0],_=(0,i.select)(T);b=w.getBoundingClientRect(),_.attr("width",b.width),_.attr("height",b.height)}var E=e.padding/2;return(0,i.select)(T).attr("transform","translate( "+(b.width>C.width?0:(C.width-b.width)/2)+", "+(C.height+E+5)+")"),(0,i.select)(m).attr("transform","translate( "+(b.widthe.height/2-c)){var n=c*c*(1-i*i/(l*l));0!=n&&(n=Math.sqrt(n)),n=c-n,t.y-e.y>0&&(n=-n),r.y+=n}return r},i},start:function(t,e){var r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),(0,a.updateNodeBounds)(e,i),e.intersect=function(t){return o.default.circle(e,7,t)},r},end:function(t,e){var r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=r.insert("circle",":first-child"),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),(0,a.updateNodeBounds)(e,n),e.intersect=function(t){return o.default.circle(e,7,t)},r},note:c.default,subroutine:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,l=n.height+e.padding,c=[{x:0,y:0},{x:s,y:0},{x:s,y:-l},{x:0,y:-l},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-l},{x:-8,y:-l},{x:-8,y:0}],h=(0,a.insertPolygonShape)(i,s,l,c);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,c,t)},i},fork:p,join:p,class_box:function(t,e){var r,n=e.padding/2;r=e.classes?"node "+e.classes:"node default";var c=t.insert("g").attr("class",r).attr("id",e.domId||e.id),d=c.insert("rect",":first-child"),p=c.insert("line"),g=c.insert("line"),f=0,y=4,m=c.insert("g").attr("class","label"),b=0,x=e.classData.annotations&&e.classData.annotations[0],v=e.classData.annotations[0]?"«"+e.classData.annotations[0]+"»":"",k=m.node().appendChild((0,l.default)(v,e.labelStyle,!0,!0)),C=k.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var T=k.children[0],w=(0,i.select)(k);C=T.getBoundingClientRect(),w.attr("width",C.width),w.attr("height",C.height)}e.classData.annotations[0]&&(y+=C.height+4,f+=C.width);var _=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&((0,s.getConfig)().flowchart.htmlLabels?_+="<"+e.classData.type+">":_+="<"+e.classData.type+">");var E=m.node().appendChild((0,l.default)(_,e.labelStyle,!0,!0));(0,i.select)(E).attr("class","classTitle");var S=E.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var A=E.children[0],B=(0,i.select)(E);S=A.getBoundingClientRect(),B.attr("width",S.width),B.attr("height",S.height)}y+=S.height+4,S.width>f&&(f=S.width);var D=[];e.classData.members.forEach((function(t){var r=(0,h.parseMember)(t),n=r.displayText;(0,s.getConfig)().flowchart.htmlLabels&&(n=n.replace(//g,">"));var a=m.node().appendChild((0,l.default)(n,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),o=a.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var c=a.children[0],d=(0,i.select)(a);o=c.getBoundingClientRect(),d.attr("width",o.width),d.attr("height",o.height)}o.width>f&&(f=o.width),y+=o.height+4,D.push(a)})),y+=8;var L=[];if(e.classData.methods.forEach((function(t){var r=(0,h.parseMember)(t),n=r.displayText;(0,s.getConfig)().flowchart.htmlLabels&&(n=n.replace(//g,">"));var a=m.node().appendChild((0,l.default)(n,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),o=a.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var c=a.children[0],d=(0,i.select)(a);o=c.getBoundingClientRect(),d.attr("width",o.width),d.attr("height",o.height)}o.width>f&&(f=o.width),y+=o.height+4,L.push(a)})),y+=8,x){var I=(f-C.width)/2;(0,i.select)(k).attr("transform","translate( "+(-1*f/2+I)+", "+-1*y/2+")"),b=C.height+4}var O=(f-S.width)/2;return(0,i.select)(E).attr("transform","translate( "+(-1*f/2+O)+", "+(-1*y/2+b)+")"),b+=S.height+4,p.attr("class","divider").attr("x1",-f/2-n).attr("x2",f/2+n).attr("y1",-y/2-n+8+b).attr("y2",-y/2-n+8+b),b+=8,D.forEach((function(t){(0,i.select)(t).attr("transform","translate( "+-f/2+", "+(-1*y/2+b+4)+")"),b+=S.height+4})),b+=8,g.attr("class","divider").attr("x1",-f/2-n).attr("x2",f/2+n).attr("y1",-y/2-n+8+b).attr("y2",-y/2-n+8+b),b+=8,L.forEach((function(t){(0,i.select)(t).attr("transform","translate( "+-f/2+", "+(-1*y/2+b)+")"),b+=S.height+4})),d.attr("class","outer title-state").attr("x",-f/2-n).attr("y",-y/2-n).attr("width",f+e.padding).attr("height",y+e.padding),(0,a.updateNodeBounds)(e,d),e.intersect=function(t){return o.default.rect(e,t)},c}},f={},y=function(t,e,r){var i,n,a;e.link?("sandbox"===(0,s.getConfig)().securityLevel?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),n=g[e.shape](i,e,r)):i=n=g[e.shape](t,e,r),e.tooltip&&n.attr("title",e.tooltip),e.class&&n.attr("class","node default "+e.class),f[e.id]=i,e.haveCallback&&f[e.id].attr("class",f[e.id].attr("class")+" clickable")},m=function(t,e){f[e.id]=t},b=function(){f={}},x=function(t){var e=f[t.id];n.log.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");var r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r}},"./src/dagre-wrapper/shapes/note.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>s});var i=r("./src/dagre-wrapper/shapes/util.js"),n=r("./src/logger.js"),a=r("./src/dagre-wrapper/intersect/index.js");const s=function(t,e){var r=(0,i.labelHelper)(t,e,"node "+e.classes,!0),s=r.shapeSvg,o=r.bbox,l=r.halfPadding;n.log.info("Classes = ",e.classes);var c=s.insert("rect",":first-child");return c.attr("rx",e.rx).attr("ry",e.ry).attr("x",-o.width/2-l).attr("y",-o.height/2-l).attr("width",o.width+e.padding).attr("height",o.height+e.padding),(0,i.updateNodeBounds)(e,c),e.intersect=function(t){return a.default.rect(e,t)},s}},"./src/dagre-wrapper/shapes/util.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{labelHelper:()=>l,updateNodeBounds:()=>c,insertPolygonShape:()=>h});var i=r("./src/dagre-wrapper/createLabel.js"),n=r("./src/config.js"),a=r("./src/mermaidAPI.js"),s=r("d3"),o=r("./src/diagrams/common/common.js"),l=function(t,e,r,l){var c;c=r||"node default";var h=t.insert("g").attr("class",c).attr("id",e.domId||e.id),u=h.insert("g").attr("class","label").attr("style",e.labelStyle),d="string"==typeof e.labelText?e.labelText:e.labelText[0],p=u.node().appendChild((0,i.default)((0,o.sanitizeText)((0,a.decodeEntities)(d),(0,n.getConfig)()),e.labelStyle,!1,l)),g=p.getBBox();if((0,o.evaluate)((0,n.getConfig)().flowchart.htmlLabels)){var f=p.children[0],y=(0,s.select)(p);g=f.getBoundingClientRect(),y.attr("width",g.width),y.attr("height",g.height)}var m=e.padding/2;return u.attr("transform","translate("+-g.width/2+", "+-g.height/2+")"),{shapeSvg:h,bbox:g,halfPadding:m,label:u}},c=function(t,e){var r=e.node().getBBox();t.width=r.width,t.height=r.height};function h(t,e,r,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}},"./src/defaultConfig.js":(t,e,r)=>{"use strict";function i(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);ro,default:()=>l});var s={theme:"default",themeVariables:r("./src/themes/index.js").default.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-d3"},sequence:{activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open-Sans", "sans-serif"',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open-Sans", "sans-serif"',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{arrowMarkerAbsolute:!1,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},git:{arrowMarkerAbsolute:!1,useWidth:void 0,useMaxWidth:!0},state:{dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20}};s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,s.git.arrowMarkerAbsolute=s.arrowMarkerAbsolute;var o=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object.keys(e).reduce((function(n,s){return Array.isArray(e[s])?n:"object"===a(e[s])&&null!==e[s]?[].concat(i(n),[r+s],i(t(e[s],""))):[].concat(i(n),[r+s])}),[])}(s,"");const l=s},"./src/diagrams/class/classDb.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{parseDirective:()=>y,addClass:()=>b,lookUpDomId:()=>x,clear:()=>v,getClass:()=>k,getClasses:()=>C,getRelations:()=>T,addRelation:()=>w,addAnnotation:()=>_,addMember:()=>E,addMembers:()=>S,cleanupLabel:()=>A,setCssClass:()=>B,setLink:()=>D,setClickEvent:()=>L,bindFunctions:()=>O,lineType:()=>N,relationType:()=>R,default:()=>M});var i=r("d3"),n=r("./src/logger.js"),a=r("./src/config.js"),s=r("./src/diagrams/common/common.js"),o=r("./src/utils.js"),l=r("./src/mermaidAPI.js");function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r0){var i=t.split("~");r=i[0],e=s.default.sanitizeText(i[1],a.getConfig())}return{className:r,type:e}},b=function(t){var e=m(t);void 0===d[e.className]&&(d[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:h+e.className+"-"+p},p++)},x=function(t){for(var e=Object.keys(d),r=0;r>")?i.annotations.push(f(n.substring(2,n.length-2))):n.indexOf(")")>0?i.methods.push(f(n)):n&&i.members.push(f(n))}},S=function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((function(e){return E(t,e)})))},A=function(t){return":"===t.substring(0,1)?s.default.sanitizeText(t.substr(1).trim(),a.getConfig()):f(t.trim())},B=function(t,e){t.split(",").forEach((function(t){var r=t;t[0].match(/\d/)&&(r=h+r),void 0!==d[r]&&d[r].cssClasses.push(e)}))},D=function(t,e,r){var i=a.getConfig();t.split(",").forEach((function(t){var n=t;t[0].match(/\d/)&&(n=h+n),void 0!==d[n]&&(d[n].link=o.default.formatUrl(e,i),"sandbox"===i.securityLevel?d[n].linkTarget="_top":d[n].linkTarget="string"==typeof r?f(r):"_blank")})),B(t,"clickable")},L=function(t,e,r){t.split(",").forEach((function(t){I(t,e,r),d[t].haveCallback=!0})),B(t,"clickable")},I=function(t,e,r){var i=a.getConfig(),n=t,s=x(n);if("loose"===i.securityLevel&&void 0!==e&&void 0!==d[n]){var l=[];if("string"==typeof r){l=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(var h=0;h{"use strict";r.r(e),r.d(e,{addClasses:()=>g,addRelations:()=>f,setConf:()=>y,draw:()=>m,default:()=>x});var i=r("d3"),n=(r("dagre"),r("graphlib")),a=r.n(n),s=r("./src/logger.js"),o=r("./src/diagrams/class/classDb.js"),l=r("./src/diagrams/class/parser/classDiagram.jison"),c=r("./src/config.js"),h=r("./src/dagre-wrapper/index.js"),u=r("./src/utils.js"),d=r("./src/diagrams/common/common.js");l.parser.yy=o.default;var p={dividerMargin:10,padding:5,textHeight:10},g=function(t,e){var r=Object.keys(t);s.log.info("keys:",r),s.log.info(t),r.forEach((function(r){var i=t[r],n="";i.cssClasses.length>0&&(n=n+" "+i.cssClasses.join(" "));var a,o,l={labelStyle:""},h=void 0!==i.text?i.text:i.id;i.type,o="class_box",e.setNode(i.id,{labelStyle:l.labelStyle,shape:o,labelText:(a=h,d.default.sanitizeText(a,(0,c.getConfig)())),classData:i,rx:0,ry:0,class:n,style:l.style,id:i.id,domId:i.domId,haveCallback:i.haveCallback,link:i.link,width:"group"===i.type?500:void 0,type:i.type,padding:(0,c.getConfig)().flowchart.padding}),s.log.info("setNode",{labelStyle:l.labelStyle,shape:o,labelText:h,rx:0,ry:0,class:n,style:l.style,id:i.id,width:"group"===i.type?500:void 0,type:i.type,padding:(0,c.getConfig)().flowchart.padding})}))},f=function(t,e){var r=0;t.forEach((function(n){r++;var a={classes:"relation"};a.pattern=1==n.relation.lineType?"dashed":"solid",a.id="id"+r,"arrow_open"===n.type?a.arrowhead="none":a.arrowhead="normal",s.log.info(a,n),a.startLabelRight="none"===n.relationTitle1?"":n.relationTitle1,a.endLabelLeft="none"===n.relationTitle2?"":n.relationTitle2,a.arrowTypeStart=b(n.relation.type1),a.arrowTypeEnd=b(n.relation.type2);var o="",l="";if(void 0!==n.style){var h=(0,u.getStylesFromArray)(n.style);o=h.style,l=h.labelStyle}else o="fill:none";a.style=o,a.labelStyle=l,void 0!==n.interpolate?a.curve=(0,u.interpolateToCurve)(n.interpolate,i.curveLinear):void 0!==t.defaultInterpolate?a.curve=(0,u.interpolateToCurve)(t.defaultInterpolate,i.curveLinear):a.curve=(0,u.interpolateToCurve)(p.curve,i.curveLinear),n.text=n.title,void 0===n.text?void 0!==n.style&&(a.arrowheadStyle="fill: #333"):(a.arrowheadStyle="fill: #333",a.labelpos="c",(0,c.getConfig)().flowchart.htmlLabels?(a.labelType="html",a.label=''+n.text+""):(a.labelType="text",a.label=n.text.replace(d.default.lineBreakRegex,"\n"),void 0===n.style&&(a.style=a.style||"stroke: #333; stroke-width: 1.5px;fill:none"),a.labelStyle=a.labelStyle.replace("color:","fill:"))),e.setEdge(n.id1,n.id2,a,r)}))},y=function(t){Object.keys(t).forEach((function(e){p[e]=t[e]}))},m=function(t,e){s.log.info("Drawing class - ",e),o.default.clear(),l.parser.parse(t);var r=(0,c.getConfig)().flowchart,n=(0,c.getConfig)().securityLevel;s.log.info("config:",r);var d,p=r.nodeSpacing||50,y=r.rankSpacing||50,m=new(a().Graph)({multigraph:!0,compound:!0}).setGraph({rankdir:o.default.getDirection(),nodesep:p,ranksep:y,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),b=o.default.getClasses(),x=o.default.getRelations();s.log.info(x),g(b,m,e),f(x,m),"sandbox"===n&&(d=(0,i.select)("#i"+e));var v="sandbox"===n?(0,i.select)(d.nodes()[0].contentDocument.body):(0,i.select)("body"),k=v.select('[id="'.concat(e,'"]'));k.attr("xmlns:xlink","http://www.w3.org/1999/xlink");var C=v.select("#"+e+" g");(0,h.render)(C,m,["aggregation","extension","composition","dependency"],"classDiagram",e);var T=k.node().getBBox(),w=T.width+16,_=T.height+16;if(s.log.debug("new ViewBox 0 0 ".concat(w," ").concat(_),"translate(".concat(8-m._label.marginx,", ").concat(8-m._label.marginy,")")),(0,u.configureSvgSize)(k,_,w,r.useMaxWidth),k.attr("viewBox","0 0 ".concat(w," ").concat(_)),k.select("g").attr("transform","translate(".concat(8-m._label.marginx,", ").concat(8-T.y,")")),!r.htmlLabels)for(var E="sandbox"===n?d.nodes()[0].contentDocument:document,S=E.querySelectorAll('[id="'+e+'"] .edgeLabel .label'),A=0;A{"use strict";r.r(e),r.d(e,{setConf:()=>m,draw:()=>b,default:()=>x});var i=r("d3"),n=r("dagre"),a=r.n(n),s=r("graphlib"),o=r.n(s),l=r("./src/logger.js"),c=r("./src/diagrams/class/classDb.js"),h=r("./src/diagrams/class/parser/classDiagram.jison"),u=r("./src/diagrams/class/svgDraw.js"),d=r("./src/utils.js"),p=r("./src/config.js");h.parser.yy=c.default;var g={},f={dividerMargin:10,padding:5,textHeight:10},y=function(t){var e=Object.entries(g).find((function(e){return e[1].label===t}));if(e)return e[0]},m=function(t){Object.keys(t).forEach((function(e){f[e]=t[e]}))},b=function(t,e){g={},h.parser.yy.clear(),h.parser.parse(t),l.log.info("Rendering diagram "+t);var r,n=(0,p.getConfig)().securityLevel;"sandbox"===n&&(r=(0,i.select)("#i"+e));var s,m="sandbox"===n?(0,i.select)(r.nodes()[0].contentDocument.body):(0,i.select)("body"),b=("sandbox"===n?r.nodes()[0].contentDocument:document,m.select("[id='".concat(e,"']")));b.attr("xmlns:xlink","http://www.w3.org/1999/xlink"),(s=b).append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),s.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),s.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z");var x=new(o().Graph)({multigraph:!0});x.setGraph({isMultiGraph:!0}),x.setDefaultEdgeLabel((function(){return{}}));for(var v=c.default.getClasses(),k=Object.keys(v),C=0;C "+t.w+": "+JSON.stringify(x.edge(t))),u.default.drawEdge(b,x.edge(t),x.edge(t).relation,f))}));var _=b.node().getBBox(),E=_.width+40,S=_.height+40;(0,d.configureSvgSize)(b,S,E,f.useMaxWidth);var A="".concat(_.x-20," ").concat(_.y-20," ").concat(E," ").concat(S);l.log.debug("viewBox ".concat(A)),b.attr("viewBox",A)};const x={setConf:m,draw:b}},"./src/diagrams/class/styles.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t){return"g.classGroup text {\n fill: ".concat(t.nodeBorder,";\n fill: ").concat(t.classText,";\n stroke: none;\n font-family: ").concat(t.fontFamily,";\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ").concat(t.classText,";\n}\n.edgeLabel .label rect {\n fill: ").concat(t.mainBkg,";\n}\n.label text {\n fill: ").concat(t.classText,";\n}\n.edgeLabel .label span {\n background: ").concat(t.mainBkg,";\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(t.mainBkg,";\n stroke: ").concat(t.nodeBorder,";\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ").concat(t.nodeBorder,";\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ").concat(t.mainBkg,";\n stroke: ").concat(t.nodeBorder,";\n}\n\ng.classGroup line {\n stroke: ").concat(t.nodeBorder,";\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ").concat(t.mainBkg,";\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ").concat(t.nodeBorder,";\n font-size: 10px;\n}\n\n.relation {\n stroke: ").concat(t.lineColor,";\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ").concat(t.mainBkg," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ").concat(t.mainBkg," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n")}},"./src/diagrams/class/svgDraw.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{drawEdge:()=>l,drawClass:()=>c,parseMember:()=>h,default:()=>m});var i=r("d3"),n=r("./src/diagrams/class/classDb.js"),a=r("./src/utils.js"),s=r("./src/logger.js"),o=0,l=function(t,e,r,l){var c=function(t){switch(t){case n.relationType.AGGREGATION:return"aggregation";case n.relationType.EXTENSION:return"extension";case n.relationType.COMPOSITION:return"composition";case n.relationType.DEPENDENCY:return"dependency"}};e.points=e.points.filter((function(t){return!Number.isNaN(t.y)}));var h,u,d=e.points,p=(0,i.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(i.curveBasis),g=t.append("path").attr("d",p(d)).attr("id","edge"+o).attr("class","relation"),f="";l.arrowMarkerAbsolute&&(f=(f=(f=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),1==r.relation.lineType&&g.attr("class","relation dashed-line"),"none"!==r.relation.type1&&g.attr("marker-start","url("+f+"#"+c(r.relation.type1)+"Start)"),"none"!==r.relation.type2&&g.attr("marker-end","url("+f+"#"+c(r.relation.type2)+"End)");var y,m,b,x,v=e.points.length,k=a.default.calcLabelPosition(e.points);if(h=k.x,u=k.y,v%2!=0&&v>1){var C=a.default.calcCardinalityPosition("none"!==r.relation.type1,e.points,e.points[0]),T=a.default.calcCardinalityPosition("none"!==r.relation.type2,e.points,e.points[v-1]);s.log.debug("cardinality_1_point "+JSON.stringify(C)),s.log.debug("cardinality_2_point "+JSON.stringify(T)),y=C.x,m=C.y,b=T.x,x=T.y}if(void 0!==r.title){var w=t.append("g").attr("class","classLabel"),_=w.append("text").attr("class","label").attr("x",h).attr("y",u).attr("fill","red").attr("text-anchor","middle").text(r.title);window.label=_;var E=_.node().getBBox();w.insert("rect",":first-child").attr("class","box").attr("x",E.x-l.padding/2).attr("y",E.y-l.padding/2).attr("width",E.width+l.padding).attr("height",E.height+l.padding)}s.log.info("Rendering relation "+JSON.stringify(r)),void 0!==r.relationTitle1&&"none"!==r.relationTitle1&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",y).attr("y",m).attr("fill","black").attr("font-size","6").text(r.relationTitle1),void 0!==r.relationTitle2&&"none"!==r.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",b).attr("y",x).attr("fill","black").attr("font-size","6").text(r.relationTitle2),o++},c=function(t,e,r){s.log.info("Rendering class "+e);var i,a=e.id,o={id:a,label:e.id,width:0,height:0},l=t.append("g").attr("id",(0,n.lookUpDomId)(a)).attr("class","classGroup");i=e.link?l.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",r.textHeight+r.padding).attr("x",0):l.append("text").attr("y",r.textHeight+r.padding).attr("x",0);var c=!0;e.annotations.forEach((function(t){var e=i.append("tspan").text("«"+t+"»");c||e.attr("dy",r.textHeight),c=!1}));var h=e.id;void 0!==e.type&&""!==e.type&&(h+="<"+e.type+">");var u=i.append("tspan").text(h).attr("class","title");c||u.attr("dy",r.textHeight);var d=i.node().getBBox().height,p=l.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin/2).attr("y2",r.padding+d+r.dividerMargin/2),f=l.append("text").attr("x",r.padding).attr("y",d+r.dividerMargin+r.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(t){g(f,t,c,r),c=!1}));var y=f.node().getBBox(),m=l.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin+y.height).attr("y2",r.padding+d+r.dividerMargin+y.height),b=l.append("text").attr("x",r.padding).attr("y",d+2*r.dividerMargin+y.height+r.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(t){g(b,t,c,r),c=!1}));var x=l.node().getBBox(),v=" ";e.cssClasses.length>0&&(v+=e.cssClasses.join(" "));var k=l.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",x.width+2*r.padding).attr("height",x.height+r.padding+.5*r.dividerMargin).attr("class",v).node().getBBox().width;return i.node().childNodes.forEach((function(t){t.setAttribute("x",(k-t.getBBox().width)/2)})),e.tooltip&&i.insert("title").text(e.tooltip),p.attr("x2",k),m.attr("x2",k),o.width=k,o.height=x.height+r.padding+.5*r.dividerMargin,o},h=function(t){var e=t.match(/^(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+) *(\*|\$)?$/),r=t.match(/^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/);return e&&!r?u(e):r?d(r):p(t)},u=function(t){var e="",r="";try{var i=t[1]?t[1].trim():"",n=t[2]?t[2].trim():"",a=t[3]?f(t[3].trim()):"",s=t[4]?t[4].trim():"",o=t[5]?t[5].trim():"";r=i+n+a+" "+s,e=y(o)}catch(e){r=t}return{displayText:r,cssStyle:e}},d=function(t){var e="",r="";try{var i=t[1]?t[1].trim():"",n=t[2]?t[2].trim():"",a=t[3]?f(t[3].trim()):"",s=t[4]?t[4].trim():"";r=i+n+"("+a+")"+(t[5]?" : "+f(t[5]).trim():""),e=y(s)}catch(e){r=t}return{displayText:r,cssStyle:e}},p=function(t){var e="",r="",i="",n=t.indexOf("("),a=t.indexOf(")");if(n>1&&a>n&&a<=t.length){var s="",o="",l=t.substring(0,1);l.match(/\w/)?o=t.substring(0,n).trim():(l.match(/\+|-|~|#/)&&(s=l),o=t.substring(1,n).trim());var c=t.substring(n+1,a),h=t.substring(a+1,1);r=y(h),e=s+o+"("+f(c.trim())+")",a<"".length&&""!==(i=t.substring(a+2).trim())&&(i=" : "+f(i))}else e=f(t);return{displayText:e,cssStyle:r}},g=function(t,e,r,i){var n=h(e),a=t.append("tspan").attr("x",i.padding).text(n.displayText);""!==n.cssStyle&&a.attr("style",n.cssStyle),r||a.attr("dy",i.textHeight)},f=function t(e){var r=e;return-1!=e.indexOf("~")?t(r=(r=r.replace("~","<")).replace("~",">")):r},y=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}};const m={drawClass:c,drawEdge:l,parseMember:h}},"./src/diagrams/common/common.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{getRows:()=>a,removeEscapes:()=>s,removeScript:()=>o,sanitizeText:()=>l,sanitizeTextOrArray:()=>c,lineBreakRegex:()=>h,hasBreaks:()=>u,splitBreaks:()=>d,evaluate:()=>f,default:()=>y});var i=r("dompurify"),n=r.n(i),a=function(t){if(!t)return 1;var e=g(t);return(e=e.replace(/\\n/g,"#br#")).split("#br#")},s=function(t){var e=t.replace(/\\u[\dA-F]{4}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\u/g,""),16))}));return(e=(e=e.replace(/\\x([0-9a-f]{2})/gi,(function(t,e){return String.fromCharCode(parseInt(e,16))}))).replace(/\\[\d\d\d]{3}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\/g,""),8))}))).replace(/\\[\d\d\d]{2}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\/g,""),8))}))},o=function(t){for(var e="",r=0;r>=0;){if(!((r=t.indexOf("=0)){e+=t,r=-1;break}e+=t.substr(0,r),(r=(t=t.substr(r+1)).indexOf("<\/script>"))>=0&&(r+=9,t=t.substr(r))}var i=s(e);return(i=(i=(i=i.replace(/script>/gi,"#")).replace(/javascript:/gi,"#")).replace(/onerror=/gi,"onerror:")).replace(/')}if(void 0!==r)switch(A){case"flowchart":case"flowchart-v2":r(q,y.default.bindFunctions);break;case"gantt":r(q,k.default.bindFunctions);break;case"class":case"classDiagram":r(q,o.default.bindFunctions);break;default:r(q)}else rt.log.debug("CB = undefined!");(0,et.attachFunctions)();var U="sandbox"===g.securityLevel?"#i"+t:"#d"+t,H=(0,i.select)(U).node();return null!==H&&"function"==typeof H.remove&&(0,i.select)(U).node().remove(),q},parse:function(t){var e=s.getConfig(),r=at.default.detectInit(t,e);r&&rt.log.debug("reinit ",r);var i,n=at.default.detectType(t,e);switch(rt.log.debug("Type "+n),n){case"git":(i=A()).parser.yy=_.default;break;case"flowchart":case"flowchart-v2":y.default.clear(),(i=v()).parser.yy=y.default;break;case"sequence":(i=q()).parser.yy=W.default;break;case"gantt":(i=w()).parser.yy=k.default;break;case"class":case"classDiagram":(i=u()).parser.yy=o.default;break;case"state":case"stateDiagram":(i=U()).parser.yy=H.default;break;case"info":rt.log.debug("info info info"),(i=I()).parser.yy=B.default;break;case"pie":rt.log.debug("pie"),(i=N()).parser.yy=R.default;break;case"er":rt.log.debug("er"),(i=f()).parser.yy=d.default;break;case"journey":rt.log.debug("Journey"),(i=J()).parser.yy=K.default;break;case"requirement":case"requirementDiagram":rt.log.debug("RequirementDiagram"),(i=M()).parser.yy=P.default}return i.parser.yy.graphType=n,i.parser.yy.parseError=function(t,e){throw{str:t,hash:e}},i.parse(t),i},parseDirective:function(t,e,r,i){try{if(void 0!==e)switch(e=e.trim(),r){case"open_directive":ct={};break;case"type_directive":ct.type=e.toLowerCase();break;case"arg_directive":ct.args=JSON.parse(e);break;case"close_directive":(function(t,e,r){switch(rt.log.debug("Directive type=".concat(e.type," with args:"),e.args),e.type){case"init":case"initialize":["config"].forEach((function(t){void 0!==e.args[t]&&("flowchart-v2"===r&&(r="flowchart"),e.args[r]=e.args[t],delete e.args[t])})),rt.log.debug("sanitize in handleDirective",e.args),(0,at.directiveSanitizer)(e.args),rt.log.debug("sanitize in handleDirective (done)",e.args),e.args,s.addDirective(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":rt.log.warn("themeCss encountered");break;default:rt.log.warn("Unhandled directive: source: '%%{".concat(e.type,": ").concat(JSON.stringify(e.args?e.args:{}),"}%%"),e)}})(t,ct,i),ct=null}}catch(t){rt.log.error("Error while rendering sequenceDiagram directive: ".concat(e," jison context: ").concat(r)),rt.log.error(t.message)}},initialize:function(t){t&&t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),s.saveConfigFromInitilize(t),t&&t.theme&&nt.default[t.theme]?t.themeVariables=nt.default[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=nt.default.default.getThemeVariables(t.themeVariables));var e="object"===st(t)?s.setSiteConfig(t):s.getSiteConfig();ht(e),(0,rt.setLogLevel)(e.logLevel)},reinitialize:function(){},getConfig:s.getConfig,setConfig:s.setConfig,getSiteConfig:s.getSiteConfig,updateSiteConfig:s.updateSiteConfig,reset:function(){s.reset()},globalReset:function(){s.reset(s.defaultConfig),ht(s.getConfig())},defaultConfig:s.defaultConfig});(0,rt.setLogLevel)(s.getConfig().logLevel),s.reset(s.getConfig());const dt=ut},"./src/styles.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{calcThemeVariables:()=>f,default:()=>y});var i=r("./src/diagrams/class/styles.js"),n=r("./src/diagrams/er/styles.js"),a=r("./src/diagrams/flowchart/styles.js"),s=r("./src/diagrams/gantt/styles.js"),o=r("./src/diagrams/git/styles.js"),l=r("./src/diagrams/info/styles.js"),c=r("./src/diagrams/pie/styles.js"),h=r("./src/diagrams/requirement/styles.js"),u=r("./src/diagrams/sequence/styles.js"),d=r("./src/diagrams/state/styles.js"),p=r("./src/diagrams/user-journey/styles.js"),g={flowchart:a.default,"flowchart-v2":a.default,sequence:u.default,gantt:s.default,classDiagram:i.default,"classDiagram-v2":i.default,class:i.default,stateDiagram:d.default,state:d.default,git:o.default,info:l.default,pie:c.default,er:n.default,journey:p.default,requirement:h.default},f=function(t,e){return t.calcColors(e)};const y=function(t,e,r){return" {\n font-family: ".concat(r.fontFamily,";\n font-size: ").concat(r.fontSize,";\n fill: ").concat(r.textColor,"\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ").concat(r.errorBkgColor,";\n }\n .error-text {\n fill: ").concat(r.errorTextColor,";\n stroke: ").concat(r.errorTextColor,";\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ").concat(r.lineColor,";\n stroke: ").concat(r.lineColor,";\n }\n .marker.cross {\n stroke: ").concat(r.lineColor,";\n }\n\n svg {\n font-family: ").concat(r.fontFamily,";\n font-size: ").concat(r.fontSize,";\n }\n\n ").concat(g[t](r),"\n\n ").concat(e,"\n")}},"./src/themes/index.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>l});var i=r("./src/themes/theme-base.js"),n=r("./src/themes/theme-dark.js"),a=r("./src/themes/theme-default.js"),s=r("./src/themes/theme-forest.js"),o=r("./src/themes/theme-neutral.js");const l={base:{getThemeVariables:i.getThemeVariables},dark:{getThemeVariables:n.getThemeVariables},default:{getThemeVariables:a.getThemeVariables},forest:{getThemeVariables:s.getThemeVariables},neutral:{getThemeVariables:o.getThemeVariables}}},"./src/themes/theme-base.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>l});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>l});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>l});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>l});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{mkBorder:()=>n});var i=r("khroma"),n=function(t,e){return e?(0,i.adjust)(t,{s:-40,l:10}):(0,i.adjust)(t,{s:-40,l:-10})}},"./src/themes/theme-neutral.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>l});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{detectInit:()=>v,detectDirective:()=>k,detectType:()=>C,isSubstringInArray:()=>w,interpolateToCurve:()=>_,formatUrl:()=>E,runFunc:()=>S,getStylesFromArray:()=>B,generateId:()=>L,random:()=>I,assignWithDepth:()=>O,getTextObj:()=>N,drawSimpleText:()=>R,wrapLabel:()=>F,calculateTextHeight:()=>M,calculateTextWidth:()=>P,calculateTextDimensions:()=>z,calculateSvgSizeAttrs:()=>$,configureSvgSize:()=>q,initIdGeneratior:()=>W,entityDecode:()=>Y,directiveSanitizer:()=>V,sanitizeCss:()=>U,default:()=>H});var i=r("@braintree/sanitize-url"),n=r("d3"),a=r("./src/diagrams/common/common.js"),s=r("./src/defaultConfig.js"),o=r("./src/logger.js"),l=void 0;function c(t,e){for(var r=0;r=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw a}}}}function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function d(t){return function(t){if(Array.isArray(t))return g(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(t,e){if(t){if("string"==typeof t)return g(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(t,e):void 0}}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:null;try{var r=new RegExp("[%]{2}(?![{]".concat(b.source,")(?=[}][%]{2}).*\n"),"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),o.log.debug("Detecting diagram directive".concat(null!==e?" type:"+e:""," based on the text:").concat(t));for(var i,n=[];null!==(i=m.exec(t));)if(i.index===m.lastIndex&&m.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){var a=i[1]?i[1]:i[2],s=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;n.push({type:a,args:s})}return 0===n.length&&n.push({type:t,args:null}),1===n.length?n[0]:n}catch(r){return o.log.error("ERROR: ".concat(r.message," - Unable to parse directive\n ").concat(null!==e?" type:"+e:""," based on the text:").concat(t)),{type:null,args:null}}},C=function(t,e){return(t=t.replace(m,"").replace(x,"\n")).match(/^\s*sequenceDiagram/)?"sequence":t.match(/^\s*gantt/)?"gantt":t.match(/^\s*classDiagram-v2/)?"classDiagram":t.match(/^\s*classDiagram/)?e&&e.class&&"dagre-wrapper"===e.class.defaultRenderer?"classDiagram":"class":t.match(/^\s*stateDiagram-v2/)?"stateDiagram":t.match(/^\s*stateDiagram/)?e&&e.class&&"dagre-wrapper"===e.state.defaultRenderer?"stateDiagram":"state":t.match(/^\s*gitGraph/)?"git":t.match(/^\s*flowchart/)?"flowchart-v2":t.match(/^\s*info/)?"info":t.match(/^\s*pie/)?"pie":t.match(/^\s*erDiagram/)?"er":t.match(/^\s*journey/)?"journey":t.match(/^\s*requirement/)||t.match(/^\s*requirementDiagram/)?"requirement":e&&e.flowchart&&"dagre-wrapper"===e.flowchart.defaultRenderer?"flowchart-v2":"flowchart"},T=function(t,e){var r={};return function(){for(var i=arguments.length,n=new Array(i),a=0;a1?o-1:0),c=1;c"},r),a.default.lineBreakRegex.test(t))return t;var i=t.split(" "),n=[],s="";return i.forEach((function(t,a){var o=P("".concat(t," "),r),l=P(s,r);if(o>e){var c=j(t,e,"-",r),h=c.hyphenatedStrings,u=c.remainingWord;n.push.apply(n,[s].concat(d(h))),s=u}else l+o>=e?(n.push(s),s=t):s=[s,t].filter(Boolean).join(" ");a+1===i.length&&n.push(s)})),n.filter((function(t){return""!==t})).join(r.joinWith)}),(function(t,e,r){return"".concat(t,"-").concat(e,"-").concat(r.fontSize,"-").concat(r.fontWeight,"-").concat(r.fontFamily,"-").concat(r.joinWith)})),j=T((function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",i=arguments.length>3?arguments[3]:void 0;i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);var n=t.split(""),a=[],s="";return n.forEach((function(t,o){var l="".concat(s).concat(t);if(P(l,i)>=e){var c=o+1,h=n.length===c,u="".concat(l).concat(r);a.push(h?l:u),s=""}else s=l})),{hyphenatedStrings:a,remainingWord:s}}),(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",i=arguments.length>3?arguments[3]:void 0;return"".concat(t,"-").concat(e,"-").concat(r,"-").concat(i.fontSize,"-").concat(i.fontWeight,"-").concat(i.fontFamily)})),M=function(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),z(t,e).height},P=function(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),z(t,e).width},z=T((function(t,e){var r=e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),i=r.fontSize,s=r.fontFamily,o=r.fontWeight;if(!t)return{width:0,height:0};var l=["sans-serif",s],c=t.split(a.default.lineBreakRegex),u=[],d=(0,n.select)("body");if(!d.remove)return{width:0,height:0,lineHeight:0};for(var p=d.append("svg"),g=0,f=l;gu[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1]}),(function(t,e){return"".concat(t,"-").concat(e.fontSize,"-").concat(e.fontWeight,"-").concat(e.fontFamily)})),$=function(t,e,r){var i=new Map;return i.set("height",t),r?(i.set("width","100%"),i.set("style","max-width: ".concat(e,"px;"))):i.set("width",e),i},q=function(t,e,r,i){!function(t,e){var r,i=h(e);try{for(i.s();!(r=i.n()).done;){var n=r.value;t.attr(n[0],n[1])}}catch(t){i.e(t)}finally{i.f()}}(t,$(e,r,i))},W=function(){function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.deterministic=e,this.seed=r,this.count=r?r.length:0}var e,r;return e=t,(r=[{key:"next",value:function(){return this.deterministic?this.count++:Date.now()}}])&&c(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),Y=function(t){return f=f||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),f.innerHTML=t,unescape(f.textContent)},V=function t(e){o.log.debug("directiveSanitizer called with",e),"object"===u(e)&&(e.length?e.forEach((function(e){return t(e)})):Object.keys(e).forEach((function(r){o.log.debug("Checking key",r),0===r.indexOf("__")&&(o.log.debug("sanitize deleting __ option",r),delete e[r]),r.indexOf("proto")>=0&&(o.log.debug("sanitize deleting proto option",r),delete e[r]),r.indexOf("constr")>=0&&(o.log.debug("sanitize deleting constr option",r),delete e[r]),r.indexOf("themeCSS")>=0&&(o.log.debug("sanitizing themeCss option"),e[r]=U(e[r])),s.configKeys.indexOf(r)<0?(o.log.debug("sanitize deleting option",r),delete e[r]):"object"===u(e[r])&&(o.log.debug("sanitize deleting object",r),t(e[r]))})))},U=function(t){return(t.match(/\{/g)||[]).length!==(t.match(/\}/g)||[]).length?"{ /* ERROR: Unbalanced CSS */ }":t};const H={assignWithDepth:O,wrapLabel:F,calculateTextHeight:M,calculateTextWidth:P,calculateTextDimensions:z,calculateSvgSizeAttrs:$,configureSvgSize:q,detectInit:v,detectDirective:k,detectType:C,isSubstringInArray:w,interpolateToCurve:_,calcLabelPosition:function(t){return function(t){var e,r=0;t.forEach((function(t){r+=A(t,e),e=t}));var i=r/2,n=void 0;return e=void 0,t.forEach((function(t){if(e&&!n){var r=A(t,e);if(r=1&&(n={x:t.x,y:t.y}),a>0&&a<1&&(n={x:(1-a)*e.x+a*t.x,y:(1-a)*e.y+a*t.y})}}e=t})),n}(t)},calcCardinalityPosition:function(t,e,r){var i;o.log.info("our points",e),e[0]!==r&&(e=e.reverse()),e.forEach((function(t){A(t,i),i=t}));var n,a=25;i=void 0,e.forEach((function(t){if(i&&!n){var e=A(t,i);if(e=1&&(n={x:t.x,y:t.y}),r>0&&r<1&&(n={x:(1-r)*i.x+r*t.x,y:(1-r)*i.y+r*t.y})}}i=t}));var s=t?10:5,l=Math.atan2(e[0].y-n.y,e[0].x-n.x),c={x:0,y:0};return c.x=Math.sin(l)*s+(e[0].x+n.x)/2,c.y=-Math.cos(l)*s+(e[0].y+n.y)/2,c},calcTerminalLabelPosition:function(t,e,r){var i,n=JSON.parse(JSON.stringify(r));o.log.info("our points",n),"start_left"!==e&&"start_right"!==e&&(n=n.reverse()),n.forEach((function(t){A(t,i),i=t}));var a,s=25+t;i=void 0,n.forEach((function(t){if(i&&!a){var e=A(t,i);if(e=1&&(a={x:t.x,y:t.y}),r>0&&r<1&&(a={x:(1-r)*i.x+r*t.x,y:(1-r)*i.y+r*t.y})}}i=t}));var l=10+.5*t,c=Math.atan2(n[0].y-a.y,n[0].x-a.x),h={x:0,y:0};return h.x=Math.sin(c)*l+(n[0].x+a.x)/2,h.y=-Math.cos(c)*l+(n[0].y+a.y)/2,"start_left"===e&&(h.x=Math.sin(c+Math.PI)*l+(n[0].x+a.x)/2,h.y=-Math.cos(c+Math.PI)*l+(n[0].y+a.y)/2),"end_right"===e&&(h.x=Math.sin(c-Math.PI)*l+(n[0].x+a.x)/2-5,h.y=-Math.cos(c-Math.PI)*l+(n[0].y+a.y)/2-5),"end_left"===e&&(h.x=Math.sin(c)*l+(n[0].x+a.x)/2-5,h.y=-Math.cos(c)*l+(n[0].y+a.y)/2-5),h},formatUrl:E,getStylesFromArray:B,generateId:L,random:I,memoize:T,runFunc:S,entityDecode:Y,initIdGeneratior:W,directiveSanitizer:V,sanitizeCss:U}},"./node_modules/path-browserify/index.js":t=>{"use strict";function e(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function r(t,e){for(var r,i="",n=0,a=-1,s=0,o=0;o<=t.length;++o){if(o2){var l=i.lastIndexOf("/");if(l!==i.length-1){-1===l?(i="",n=0):n=(i=i.slice(0,l)).length-1-i.lastIndexOf("/"),a=o,s=0;continue}}else if(2===i.length||1===i.length){i="",n=0,a=o,s=0;continue}e&&(i.length>0?i+="/..":i="..",n=2)}else i.length>0?i+="/"+t.slice(a+1,o):i=t.slice(a+1,o),n=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return i}var i={resolve:function(){for(var t,i="",n=!1,a=arguments.length-1;a>=-1&&!n;a--){var s;a>=0?s=arguments[a]:(void 0===t&&(t=process.cwd()),s=t),e(s),0!==s.length&&(i=s+"/"+i,n=47===s.charCodeAt(0))}return i=r(i,!n),n?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(t){if(e(t),0===t.length)return".";var i=47===t.charCodeAt(0),n=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!i)).length||i||(t="."),t.length>0&&n&&(t+="/"),i?"/"+t:t},isAbsolute:function(t){return e(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var t,r=0;r0&&(void 0===t?t=n:t+="/"+n)}return void 0===t?".":i.normalize(t)},relative:function(t,r){if(e(t),e(r),t===r)return"";if((t=i.resolve(t))===(r=i.resolve(r)))return"";for(var n=1;nc){if(47===r.charCodeAt(o+u))return r.slice(o+u+1);if(0===u)return r.slice(o+u)}else s>c&&(47===t.charCodeAt(n+u)?h=u:0===u&&(h=0));break}var d=t.charCodeAt(n+u);if(d!==r.charCodeAt(o+u))break;47===d&&(h=u)}var p="";for(u=n+h+1;u<=a;++u)u!==a&&47!==t.charCodeAt(u)||(0===p.length?p+="..":p+="/..");return p.length>0?p+r.slice(o+h):(o+=h,47===r.charCodeAt(o)&&++o,r.slice(o))},_makeLong:function(t){return t},dirname:function(t){if(e(t),0===t.length)return".";for(var r=t.charCodeAt(0),i=47===r,n=-1,a=!0,s=t.length-1;s>=1;--s)if(47===(r=t.charCodeAt(s))){if(!a){n=s;break}}else a=!1;return-1===n?i?"/":".":i&&1===n?"//":t.slice(0,n)},basename:function(t,r){if(void 0!==r&&"string"!=typeof r)throw new TypeError('"ext" argument must be a string');e(t);var i,n=0,a=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return"";var o=r.length-1,l=-1;for(i=t.length-1;i>=0;--i){var c=t.charCodeAt(i);if(47===c){if(!s){n=i+1;break}}else-1===l&&(s=!1,l=i+1),o>=0&&(c===r.charCodeAt(o)?-1==--o&&(a=i):(o=-1,a=l))}return n===a?a=l:-1===a&&(a=t.length),t.slice(n,a)}for(i=t.length-1;i>=0;--i)if(47===t.charCodeAt(i)){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1);return-1===a?"":t.slice(n,a)},extname:function(t){e(t);for(var r=-1,i=0,n=-1,a=!0,s=0,o=t.length-1;o>=0;--o){var l=t.charCodeAt(o);if(47!==l)-1===n&&(a=!1,n=o+1),46===l?-1===r?r=o:1!==s&&(s=1):-1!==r&&(s=-1);else if(!a){i=o+1;break}}return-1===r||-1===n||0===s||1===s&&r===n-1&&r===i+1?"":t.slice(r,n)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,i=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+i:r+"/"+i:i}(0,t)},parse:function(t){e(t);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return r;var i,n=t.charCodeAt(0),a=47===n;a?(r.root="/",i=1):i=0;for(var s=-1,o=0,l=-1,c=!0,h=t.length-1,u=0;h>=i;--h)if(47!==(n=t.charCodeAt(h)))-1===l&&(c=!1,l=h+1),46===n?-1===s?s=h:1!==u&&(u=1):-1!==s&&(u=-1);else if(!c){o=h+1;break}return-1===s||-1===l||0===u||1===u&&s===l-1&&s===o+1?-1!==l&&(r.base=r.name=0===o&&a?t.slice(1,l):t.slice(o,l)):(0===o&&a?(r.name=t.slice(1,s),r.base=t.slice(1,l)):(r.name=t.slice(o,s),r.base=t.slice(o,l)),r.ext=t.slice(s,l)),o>0?r.dir=t.slice(0,o-1):a&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,t.exports=i},"@braintree/sanitize-url":t=>{"use strict";t.exports=require("@braintree/sanitize-url")},d3:t=>{"use strict";t.exports=require("d3")},dagre:t=>{"use strict";t.exports=require("dagre")},"dagre-d3":t=>{"use strict";t.exports=require("dagre-d3")},"dagre-d3/lib/label/add-html-label.js":t=>{"use strict";t.exports=require("dagre-d3/lib/label/add-html-label.js")},dompurify:t=>{"use strict";t.exports=require("dompurify")},graphlib:t=>{"use strict";t.exports=require("graphlib")},khroma:t=>{"use strict";t.exports=require("khroma")},"moment-mini":t=>{"use strict";t.exports=require("moment-mini")},stylis:t=>{"use strict";t.exports=require("stylis")},"?35ed":()=>{},"?3c87":()=>{},"?dbae":()=>{},"?8ed1":()=>{},"?2b40":()=>{},"?c5f1":()=>{},"?a3fa":()=>{},"?ebf4":()=>{},"?e940":()=>{},"?a3b8":()=>{},"?0f62":()=>{},"./package.json":t=>{"use strict";t.exports=JSON.parse('{"name":"mermaid","version":"8.14.0","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext js,html","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"percy exec -- cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack serve --config ./.webpack/webpack.config.e2e.babel.js","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.5","graphlib":"^2.1.8","khroma":"^1.4.1","moment-mini":"^2.24.0","stylis":"^4.0.10"},"devDependencies":{"@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^16.0.0","@commitlint/config-conventional":"^16.0.0","@percy/cli":"^1.0.0-beta.58","@percy/cypress":"^3.1.0","@percy/migrate":"^0.11.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"9.4.1","documentation":"13.2.0","eslint":"^8.2.0","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^6.2.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","identity-obj-proxy":"^3.0.0","jest":"^27.0.6","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^12.1.2","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}')}},e={};function r(i){var n=e[i];if(void 0!==n)return n.exports;var a=e[i]={id:i,loaded:!1,exports:{}};return t[i](a,a.exports,r),a.loaded=!0,a.exports}r.c=e,r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var i=r(r.s="./src/mermaid.js");return i.default})()})); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,(()=>(()=>{var t={"./src/diagrams/c4/parser/c4Diagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,6],r=[1,7],i=[1,8],n=[1,9],a=[1,16],s=[1,11],o=[1,12],l=[1,13],h=[1,14],u=[1,15],d=[1,27],g=[1,33],p=[1,34],f=[1,35],y=[1,36],m=[1,37],b=[1,72],v=[1,73],x=[1,74],k=[1,75],_=[1,76],C=[1,77],T=[1,78],E=[1,38],w=[1,39],S=[1,40],A=[1,41],B=[1,42],D=[1,43],L=[1,44],O=[1,45],I=[1,46],N=[1,47],F=[1,48],R=[1,49],j=[1,50],M=[1,51],P=[1,52],z=[1,53],$=[1,54],q=[1,55],Y=[1,56],W=[1,57],U=[1,59],V=[1,60],H=[1,61],G=[1,62],X=[1,63],K=[1,64],J=[1,65],Q=[1,66],Z=[1,67],tt=[1,68],et=[1,69],rt=[24,52],it=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],nt=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],at=[1,94],st=[1,95],ot=[1,96],ct=[1,97],lt=[15,24,52],ht=[7,8,9,10,18,22,25,26,27,28],ut=[15,24,43,52],dt=[15,24,43,52,86,87,89,90],gt=[15,43],pt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],ft={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:console.log("open_directive: ",a[o]),i.parseDirective("%%{","open_directive");break;case 12:break;case 13:a[o]=a[o].trim().replace(/'/g,'"'),console.log("arg_directive: ",a[o]),i.parseDirective(a[o],"arg_directive");break;case 14:console.log("close_directive: ",a[o]),i.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:i.setC4Type(a[o-3]);break;case 26:i.setTitle(a[o].substring(6)),this.$=a[o].substring(6);break;case 27:i.setAccDescription(a[o].substring(15)),this.$=a[o].substring(15);break;case 28:this.$=a[o].trim(),i.setTitle(this.$);break;case 29:case 30:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 35:case 36:console.log(a[o-1],JSON.stringify(a[o])),a[o].splice(2,0,"ENTERPRISE"),i.addPersonOrSystemBoundary(...a[o]),this.$=a[o];break;case 37:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystemBoundary(...a[o]),this.$=a[o];break;case 38:console.log(a[o-1],JSON.stringify(a[o])),a[o].splice(2,0,"CONTAINER"),i.addContainerBoundary(...a[o]),this.$=a[o];break;case 39:console.log(a[o-1],JSON.stringify(a[o])),i.addDeploymentNode("node",...a[o]),this.$=a[o];break;case 40:console.log(a[o-1],JSON.stringify(a[o])),i.addDeploymentNode("nodeL",...a[o]),this.$=a[o];break;case 41:console.log(a[o-1],JSON.stringify(a[o])),i.addDeploymentNode("nodeR",...a[o]),this.$=a[o];break;case 42:i.popBoundaryParseStack();break;case 46:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("person",...a[o]),this.$=a[o];break;case 47:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("external_person",...a[o]),this.$=a[o];break;case 48:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("system",...a[o]),this.$=a[o];break;case 49:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("system_db",...a[o]),this.$=a[o];break;case 50:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("system_queue",...a[o]),this.$=a[o];break;case 51:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("external_system",...a[o]),this.$=a[o];break;case 52:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("external_system_db",...a[o]),this.$=a[o];break;case 53:console.log(a[o-1],JSON.stringify(a[o])),i.addPersonOrSystem("external_system_queue",...a[o]),this.$=a[o];break;case 54:console.log(a[o-1],JSON.stringify(a[o])),i.addContainer("container",...a[o]),this.$=a[o];break;case 55:console.log(a[o-1],JSON.stringify(a[o])),i.addContainer("container_db",...a[o]),this.$=a[o];break;case 56:console.log(a[o-1],JSON.stringify(a[o])),i.addContainer("container_queue",...a[o]),this.$=a[o];break;case 57:console.log(a[o-1],JSON.stringify(a[o])),i.addContainer("external_container",...a[o]),this.$=a[o];break;case 58:console.log(a[o-1],JSON.stringify(a[o])),i.addContainer("external_container_db",...a[o]),this.$=a[o];break;case 59:console.log(a[o-1],JSON.stringify(a[o])),i.addContainer("external_container_queue",...a[o]),this.$=a[o];break;case 60:console.log(a[o-1],JSON.stringify(a[o])),i.addComponent("component",...a[o]),this.$=a[o];break;case 61:console.log(a[o-1],JSON.stringify(a[o])),i.addComponent("component_db",...a[o]),this.$=a[o];break;case 62:console.log(a[o-1],JSON.stringify(a[o])),i.addComponent("component_queue",...a[o]),this.$=a[o];break;case 63:console.log(a[o-1],JSON.stringify(a[o])),i.addComponent("external_component",...a[o]),this.$=a[o];break;case 64:console.log(a[o-1],JSON.stringify(a[o])),i.addComponent("external_component_db",...a[o]),this.$=a[o];break;case 65:console.log(a[o-1],JSON.stringify(a[o])),i.addComponent("external_component_queue",...a[o]),this.$=a[o];break;case 67:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("rel",...a[o]),this.$=a[o];break;case 68:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("birel",...a[o]),this.$=a[o];break;case 69:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("rel_u",...a[o]),this.$=a[o];break;case 70:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("rel_d",...a[o]),this.$=a[o];break;case 71:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("rel_l",...a[o]),this.$=a[o];break;case 72:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("rel_r",...a[o]),this.$=a[o];break;case 73:console.log(a[o-1],JSON.stringify(a[o])),i.addRel("rel_b",...a[o]),this.$=a[o];break;case 74:console.log(a[o-1],JSON.stringify(a[o])),a[o].splice(0,1),i.addRel("rel",...a[o]),this.$=a[o];break;case 75:console.log(a[o-1],JSON.stringify(a[o])),i.updateElStyle("update_el_style",...a[o]),this.$=a[o];break;case 76:console.log(a[o-1],JSON.stringify(a[o])),i.updateRelStyle("update_rel_style",...a[o]),this.$=a[o];break;case 77:console.log(a[o-1],JSON.stringify(a[o])),i.updateLayoutConfig("update_layout_config",...a[o]),this.$=a[o];break;case 78:console.log("PUSH ATTRIBUTE: ",a[o]),this.$=[a[o]];break;case 79:console.log("PUSH ATTRIBUTE: ",a[o-1]),a[o].unshift(a[o-1]),this.$=a[o];break;case 80:case 82:this.$=a[o].trim();break;case 81:console.log("kv: ",a[o-1],a[o]);let t={};t[a[o-1].trim()]=a[o].trim(),this.$=t;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:e,8:r,9:i,10:n,11:5,12:10,18:a,22:s,25:o,26:l,27:h,28:u},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:e,8:r,9:i,10:n,11:5,12:10,18:a,22:s,25:o,26:l,27:h,28:u},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:d},t([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:g,33:p,34:f,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:x,48:k,49:_,50:C,51:T,53:32,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et},{23:79,29:29,30:30,31:31,32:g,33:p,34:f,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:x,48:k,49:_,50:C,51:T,53:32,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et},{23:80,29:29,30:30,31:31,32:g,33:p,34:f,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:x,48:k,49:_,50:C,51:T,53:32,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et},{23:81,29:29,30:30,31:31,32:g,33:p,34:f,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:x,48:k,49:_,50:C,51:T,53:32,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et},{23:82,29:29,30:30,31:31,32:g,33:p,34:f,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:x,48:k,49:_,50:C,51:T,53:32,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},t(rt,[2,20],{53:32,39:58,40:70,42:71,30:87,44:b,46:v,47:x,48:k,49:_,50:C,51:T,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et}),t(rt,[2,21]),t(it,[2,23],{15:[1,88]}),t(rt,[2,43],{15:[1,89]}),t(nt,[2,26]),t(nt,[2,27]),{35:[1,90]},{37:[1,91]},t(nt,[2,30]),{45:92,85:93,86:at,87:st,89:ot,90:ct},{45:98,85:93,86:at,87:st,89:ot,90:ct},{45:99,85:93,86:at,87:st,89:ot,90:ct},{45:100,85:93,86:at,87:st,89:ot,90:ct},{45:101,85:93,86:at,87:st,89:ot,90:ct},{45:102,85:93,86:at,87:st,89:ot,90:ct},{45:103,85:93,86:at,87:st,89:ot,90:ct},{45:104,85:93,86:at,87:st,89:ot,90:ct},{45:105,85:93,86:at,87:st,89:ot,90:ct},{45:106,85:93,86:at,87:st,89:ot,90:ct},{45:107,85:93,86:at,87:st,89:ot,90:ct},{45:108,85:93,86:at,87:st,89:ot,90:ct},{45:109,85:93,86:at,87:st,89:ot,90:ct},{45:110,85:93,86:at,87:st,89:ot,90:ct},{45:111,85:93,86:at,87:st,89:ot,90:ct},{45:112,85:93,86:at,87:st,89:ot,90:ct},{45:113,85:93,86:at,87:st,89:ot,90:ct},{45:114,85:93,86:at,87:st,89:ot,90:ct},{45:115,85:93,86:at,87:st,89:ot,90:ct},{45:116,85:93,86:at,87:st,89:ot,90:ct},t(lt,[2,66]),{45:117,85:93,86:at,87:st,89:ot,90:ct},{45:118,85:93,86:at,87:st,89:ot,90:ct},{45:119,85:93,86:at,87:st,89:ot,90:ct},{45:120,85:93,86:at,87:st,89:ot,90:ct},{45:121,85:93,86:at,87:st,89:ot,90:ct},{45:122,85:93,86:at,87:st,89:ot,90:ct},{45:123,85:93,86:at,87:st,89:ot,90:ct},{45:124,85:93,86:at,87:st,89:ot,90:ct},{45:125,85:93,86:at,87:st,89:ot,90:ct},{45:126,85:93,86:at,87:st,89:ot,90:ct},{45:127,85:93,86:at,87:st,89:ot,90:ct},{30:128,39:58,40:70,42:71,44:b,46:v,47:x,48:k,49:_,50:C,51:T,53:32,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et},{15:[1,130],43:[1,129]},{45:131,85:93,86:at,87:st,89:ot,90:ct},{45:132,85:93,86:at,87:st,89:ot,90:ct},{45:133,85:93,86:at,87:st,89:ot,90:ct},{45:134,85:93,86:at,87:st,89:ot,90:ct},{45:135,85:93,86:at,87:st,89:ot,90:ct},{45:136,85:93,86:at,87:st,89:ot,90:ct},{45:137,85:93,86:at,87:st,89:ot,90:ct},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},t(ht,[2,9]),{14:142,21:d},{21:[2,13]},{1:[2,15]},t(rt,[2,22]),t(it,[2,24],{31:31,29:143,32:g,33:p,34:f,36:y,38:m}),t(rt,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:g,33:p,34:f,36:y,38:m,44:b,46:v,47:x,48:k,49:_,50:C,51:T,54:E,55:w,56:S,57:A,58:B,59:D,60:L,61:O,62:I,63:N,64:F,65:R,66:j,67:M,68:P,69:z,70:$,71:q,72:Y,73:W,74:U,75:V,76:H,77:G,78:X,79:K,80:J,81:Q,82:Z,83:tt,84:et}),t(nt,[2,28]),t(nt,[2,29]),t(lt,[2,46]),t(ut,[2,78],{85:93,45:145,86:at,87:st,89:ot,90:ct}),t(dt,[2,80]),{88:[1,146]},t(dt,[2,82]),t(dt,[2,83]),t(lt,[2,47]),t(lt,[2,48]),t(lt,[2,49]),t(lt,[2,50]),t(lt,[2,51]),t(lt,[2,52]),t(lt,[2,53]),t(lt,[2,54]),t(lt,[2,55]),t(lt,[2,56]),t(lt,[2,57]),t(lt,[2,58]),t(lt,[2,59]),t(lt,[2,60]),t(lt,[2,61]),t(lt,[2,62]),t(lt,[2,63]),t(lt,[2,64]),t(lt,[2,65]),t(lt,[2,67]),t(lt,[2,68]),t(lt,[2,69]),t(lt,[2,70]),t(lt,[2,71]),t(lt,[2,72]),t(lt,[2,73]),t(lt,[2,74]),t(lt,[2,75]),t(lt,[2,76]),t(lt,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},t(gt,[2,35]),t(gt,[2,36]),t(gt,[2,37]),t(gt,[2,38]),t(gt,[2,39]),t(gt,[2,40]),t(gt,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},t(it,[2,25]),t(rt,[2,45]),t(ut,[2,79]),t(dt,[2,81]),t(lt,[2,31]),t(lt,[2,42]),t(pt,[2,32]),t(pt,[2,33],{15:[1,152]}),t(ht,[2,10]),t(pt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},yt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),console.log("begin person_ext"),55;case 28:return this.begin("person"),console.log("begin person"),54;case 29:return this.begin("system_ext_queue"),console.log("begin system_ext_queue"),61;case 30:return this.begin("system_ext_db"),console.log("begin system_ext_db"),60;case 31:return this.begin("system_ext"),console.log("begin system_ext"),59;case 32:return this.begin("system_queue"),console.log("begin system_queue"),58;case 33:return this.begin("system_db"),console.log("begin system_db"),57;case 34:return this.begin("system"),console.log("begin system"),56;case 35:return this.begin("boundary"),console.log("begin boundary"),47;case 36:return this.begin("enterprise_boundary"),console.log("begin enterprise_boundary"),44;case 37:return this.begin("system_boundary"),console.log("begin system_boundary"),46;case 38:return this.begin("container_ext_queue"),console.log("begin container_ext_queue"),67;case 39:return this.begin("container_ext_db"),console.log("begin container_ext_db"),66;case 40:return this.begin("container_ext"),console.log("begin container_ext"),65;case 41:return this.begin("container_queue"),console.log("begin container_queue"),64;case 42:return this.begin("container_db"),console.log("begin container_db"),63;case 43:return this.begin("container"),console.log("begin container"),62;case 44:return this.begin("container_boundary"),console.log("begin container_boundary"),48;case 45:return this.begin("component_ext_queue"),console.log("begin component_ext_queue"),73;case 46:return this.begin("component_ext_db"),console.log("begin component_ext_db"),72;case 47:return this.begin("component_ext"),console.log("begin component_ext"),71;case 48:return this.begin("component_queue"),console.log("begin component_queue"),70;case 49:return this.begin("component_db"),console.log("begin component_db"),69;case 50:return this.begin("component"),console.log("begin component"),68;case 51:case 52:return this.begin("node"),console.log("begin node"),49;case 53:return this.begin("node_l"),console.log("begin node_l"),50;case 54:return this.begin("node_r"),console.log("begin node_r"),51;case 55:return this.begin("rel"),console.log("begin rel"),74;case 56:return this.begin("birel"),console.log("begin birel"),75;case 57:case 58:return this.begin("rel_u"),console.log("begin rel_u"),76;case 59:case 60:return this.begin("rel_d"),console.log("begin rel_d"),77;case 61:case 62:return this.begin("rel_l"),console.log("begin rel_l"),78;case 63:case 64:return this.begin("rel_r"),console.log("begin rel_r"),79;case 65:return this.begin("rel_b"),console.log("begin rel_b"),80;case 66:return this.begin("rel_index"),console.log("begin rel_index"),81;case 67:return this.begin("update_el_style"),console.log("begin update_el_style"),82;case 68:return this.begin("update_rel_style"),console.log("begin update_rel_style"),83;case 69:return this.begin("update_layout_config"),console.log("begin update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return console.log("begin attribute with ATTRIBUTE_EMPTY"),this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:console.log("begin attribute"),this.begin("attribute");break;case 73:console.log("STOP attribute"),this.popState(),console.log("STOP diagram"),this.popState();break;case 74:return console.log(",,"),90;case 75:console.log(",");break;case 76:return console.log("ATTRIBUTE_EMPTY"),90;case 77:console.log("begin string"),this.begin("string");break;case 78:console.log("STOP string"),this.popState();break;case 79:return console.log("STR"),"STR";case 80:console.log("begin string_kv"),this.begin("string_kv");break;case 81:return console.log("STR_KEY"),this.begin("string_kv_key"),"STR_KEY";case 82:console.log("begin string_kv_value"),this.popState(),this.begin("string_kv_value");break;case 83:return console.log("STR_VALUE"),"STR_VALUE";case 84:console.log("STOP string_kv_value"),this.popState(),this.popState();break;case 85:return console.log("not STR"),"STR";case 86:return console.log("begin boundary block"),"LBRACE";case 87:return console.log("STOP boundary block"),"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}};function mt(){this.yy={}}return ft.lexer=yt,mt.prototype=ft,ft.Parser=mt,new mt}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?1da1").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/class/parser/classDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,7],i=[1,8],n=[1,9],a=[1,10],s=[1,13],o=[1,12],c=[1,16,25],l=[1,20],h=[1,31],u=[1,32],d=[1,33],g=[1,35],p=[1,38],f=[1,36],y=[1,37],m=[1,39],b=[1,40],v=[1,41],x=[1,42],k=[1,45],_=[1,46],C=[1,47],T=[1,48],E=[16,25],w=[1,62],S=[1,63],A=[1,64],B=[1,65],D=[1,66],L=[1,67],O=[16,25,32,44,45,53,56,57,58,59,60,61,66,68],I=[16,25,30,32,44,45,49,53,56,57,58,59,60,61,66,68,83,84,85,86],N=[5,8,9,10,11,16,19,23,25],F=[53,83,84,85,86],R=[53,60,61,83,84,85,86],j=[53,56,57,58,59,83,84,85,86],M=[16,25,32],P=[1,99],z={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,acc_title:38,acc_title_value:39,acc_descr:40,acc_descr_value:41,acc_descr_multiline_value:42,CLASS:43,STYLE_SEPARATOR:44,STRUCT_START:45,members:46,STRUCT_STOP:47,ANNOTATION_START:48,ANNOTATION_END:49,MEMBER:50,SEPARATOR:51,relation:52,STR:53,relationType:54,lineType:55,AGGREGATION:56,EXTENSION:57,COMPOSITION:58,DEPENDENCY:59,LINE:60,DOTTED_LINE:61,CALLBACK:62,LINK:63,LINK_TARGET:64,CLICK:65,CALLBACK_NAME:66,CALLBACK_ARGS:67,HREF:68,CSSCLASS:69,commentToken:70,textToken:71,graphCodeTokens:72,textNoTagsToken:73,TAGSTART:74,TAGEND:75,"==":76,"--":77,PCT:78,DEFAULT:79,SPACE:80,MINUS:81,keywords:82,UNICODE_TEXT:83,NUM:84,ALPHA:85,BQUOTE_STR:86,$accept:0,$end:1},terminals_:{2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",38:"acc_title",39:"acc_title_value",40:"acc_descr",41:"acc_descr_value",42:"acc_descr_multiline_value",43:"CLASS",44:"STYLE_SEPARATOR",45:"STRUCT_START",47:"STRUCT_STOP",48:"ANNOTATION_START",49:"ANNOTATION_END",50:"MEMBER",51:"SEPARATOR",53:"STR",56:"AGGREGATION",57:"EXTENSION",58:"COMPOSITION",59:"DEPENDENCY",60:"LINE",61:"DOTTED_LINE",62:"CALLBACK",63:"LINK",64:"LINK_TARGET",65:"CLICK",66:"CALLBACK_NAME",67:"CALLBACK_ARGS",68:"HREF",69:"CSSCLASS",72:"graphCodeTokens",74:"TAGSTART",75:"TAGEND",76:"==",77:"--",78:"PCT",79:"DEFAULT",80:"SPACE",81:"MINUS",82:"keywords",83:"UNICODE_TEXT",84:"NUM",85:"ALPHA",86:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[46,1],[46,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[52,3],[52,2],[52,2],[52,1],[54,1],[54,1],[54,1],[54,1],[55,1],[55,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[70,1],[70,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[73,1],[73,1],[73,1],[73,1],[28,1],[28,1],[28,1],[29,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 5:i.setDirection("TB");break;case 6:i.setDirection("BT");break;case 7:i.setDirection("RL");break;case 8:i.setDirection("LR");break;case 12:i.parseDirective("%%{","open_directive");break;case 13:i.parseDirective(a[o],"type_directive");break;case 14:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 15:i.parseDirective("}%%","close_directive","class");break;case 20:case 21:this.$=a[o];break;case 22:this.$=a[o-1]+a[o];break;case 23:case 24:this.$=a[o-1]+"~"+a[o];break;case 25:i.addRelation(a[o]);break;case 26:a[o-1].title=i.cleanupLabel(a[o]),i.addRelation(a[o-1]);break;case 34:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 35:case 36:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 37:i.addClass(a[o]);break;case 38:i.addClass(a[o-2]),i.setCssClass(a[o-2],a[o]);break;case 39:i.addClass(a[o-3]),i.addMembers(a[o-3],a[o-1]);break;case 40:i.addClass(a[o-5]),i.setCssClass(a[o-5],a[o-3]),i.addMembers(a[o-5],a[o-1]);break;case 41:i.addAnnotation(a[o],a[o-2]);break;case 42:this.$=[a[o]];break;case 43:a[o].push(a[o-1]),this.$=a[o];break;case 44:case 46:case 47:break;case 45:i.addMember(a[o-1],i.cleanupLabel(a[o]));break;case 48:this.$={id1:a[o-2],id2:a[o],relation:a[o-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:a[o-3],id2:a[o],relation:a[o-1],relationTitle1:a[o-2],relationTitle2:"none"};break;case 50:this.$={id1:a[o-3],id2:a[o],relation:a[o-2],relationTitle1:"none",relationTitle2:a[o-1]};break;case 51:this.$={id1:a[o-4],id2:a[o],relation:a[o-2],relationTitle1:a[o-3],relationTitle2:a[o-1]};break;case 52:this.$={type1:a[o-2],type2:a[o],lineType:a[o-1]};break;case 53:this.$={type1:"none",type2:a[o],lineType:a[o-1]};break;case 54:this.$={type1:a[o-1],type2:"none",lineType:a[o]};break;case 55:this.$={type1:"none",type2:"none",lineType:a[o]};break;case 56:this.$=i.relationType.AGGREGATION;break;case 57:this.$=i.relationType.EXTENSION;break;case 58:this.$=i.relationType.COMPOSITION;break;case 59:this.$=i.relationType.DEPENDENCY;break;case 60:this.$=i.lineType.LINE;break;case 61:this.$=i.lineType.DOTTED_LINE;break;case 62:case 68:this.$=a[o-2],i.setClickEvent(a[o-1],a[o]);break;case 63:case 69:this.$=a[o-3],i.setClickEvent(a[o-2],a[o-1]),i.setTooltip(a[o-2],a[o]);break;case 64:case 72:this.$=a[o-2],i.setLink(a[o-1],a[o]);break;case 65:case 73:this.$=a[o-3],i.setLink(a[o-2],a[o-1],a[o]);break;case 66:case 74:this.$=a[o-3],i.setLink(a[o-2],a[o-1]),i.setTooltip(a[o-2],a[o]);break;case 67:case 75:this.$=a[o-4],i.setLink(a[o-3],a[o-2],a[o]),i.setTooltip(a[o-3],a[o-1]);break;case 70:this.$=a[o-3],i.setClickEvent(a[o-2],a[o-1],a[o]);break;case 71:this.$=a[o-4],i.setClickEvent(a[o-3],a[o-2],a[o-1]),i.setTooltip(a[o-3],a[o]);break;case 76:i.setCssClass(a[o-1],a[o])}},table:[{3:1,4:2,5:e,6:4,7:5,8:r,9:i,10:n,11:a,12:6,13:11,19:s,23:o},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:e,6:4,7:5,8:r,9:i,10:n,11:a,12:6,13:11,19:s,23:o},{1:[2,9]},t(c,[2,5]),t(c,[2,6]),t(c,[2,7]),t(c,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:l},t([17,22],[2,13]),{6:30,7:29,8:r,9:i,10:n,11:a,13:11,19:s,24:21,26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:h,40:u,42:d,43:g,48:p,50:f,51:y,62:m,63:b,65:v,69:x,83:k,84:_,85:C,86:T},{16:[1,49]},{18:50,21:[1,51]},{16:[2,15]},{25:[1,52]},{16:[1,53],25:[2,17]},t(E,[2,25],{32:[1,54]}),t(E,[2,27]),t(E,[2,28]),t(E,[2,29]),t(E,[2,30]),t(E,[2,31]),t(E,[2,32]),t(E,[2,33]),{39:[1,55]},{41:[1,56]},t(E,[2,36]),t(E,[2,44],{52:57,54:60,55:61,32:[1,59],53:[1,58],56:w,57:S,58:A,59:B,60:D,61:L}),{27:68,28:43,29:44,83:k,84:_,85:C,86:T},t(E,[2,46]),t(E,[2,47]),{28:69,83:k,84:_,85:C},{27:70,28:43,29:44,83:k,84:_,85:C,86:T},{27:71,28:43,29:44,83:k,84:_,85:C,86:T},{27:72,28:43,29:44,83:k,84:_,85:C,86:T},{53:[1,73]},t(O,[2,20],{28:43,29:44,27:74,30:[1,75],83:k,84:_,85:C,86:T}),t(O,[2,21],{30:[1,76]}),t(I,[2,90]),t(I,[2,91]),t(I,[2,92]),t([16,25,30,32,44,45,53,56,57,58,59,60,61,66,68],[2,93]),t(N,[2,10]),{15:77,22:l},{22:[2,14]},{1:[2,16]},{6:30,7:29,8:r,9:i,10:n,11:a,13:11,19:s,24:78,25:[2,18],26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:h,40:u,42:d,43:g,48:p,50:f,51:y,62:m,63:b,65:v,69:x,83:k,84:_,85:C,86:T},t(E,[2,26]),t(E,[2,34]),t(E,[2,35]),{27:79,28:43,29:44,53:[1,80],83:k,84:_,85:C,86:T},{52:81,54:60,55:61,56:w,57:S,58:A,59:B,60:D,61:L},t(E,[2,45]),{55:82,60:D,61:L},t(F,[2,55],{54:83,56:w,57:S,58:A,59:B}),t(R,[2,56]),t(R,[2,57]),t(R,[2,58]),t(R,[2,59]),t(j,[2,60]),t(j,[2,61]),t(E,[2,37],{44:[1,84],45:[1,85]}),{49:[1,86]},{53:[1,87]},{53:[1,88]},{66:[1,89],68:[1,90]},{28:91,83:k,84:_,85:C},t(O,[2,22]),t(O,[2,23]),t(O,[2,24]),{16:[1,92]},{25:[2,19]},t(M,[2,48]),{27:93,28:43,29:44,83:k,84:_,85:C,86:T},{27:94,28:43,29:44,53:[1,95],83:k,84:_,85:C,86:T},t(F,[2,54],{54:96,56:w,57:S,58:A,59:B}),t(F,[2,53]),{28:97,83:k,84:_,85:C},{46:98,50:P},{27:100,28:43,29:44,83:k,84:_,85:C,86:T},t(E,[2,62],{53:[1,101]}),t(E,[2,64],{53:[1,103],64:[1,102]}),t(E,[2,68],{53:[1,104],67:[1,105]}),t(E,[2,72],{53:[1,107],64:[1,106]}),t(E,[2,76]),t(N,[2,11]),t(M,[2,50]),t(M,[2,49]),{27:108,28:43,29:44,83:k,84:_,85:C,86:T},t(F,[2,52]),t(E,[2,38],{45:[1,109]}),{47:[1,110]},{46:111,47:[2,42],50:P},t(E,[2,41]),t(E,[2,63]),t(E,[2,65]),t(E,[2,66],{64:[1,112]}),t(E,[2,69]),t(E,[2,70],{53:[1,113]}),t(E,[2,73]),t(E,[2,74],{64:[1,114]}),t(M,[2,51]),{46:115,50:P},t(E,[2,39]),{47:[2,43]},t(E,[2,67]),t(E,[2,71]),t(E,[2,75]),{47:[1,116]},t(E,[2,40])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],51:[2,14],52:[2,16],78:[2,19],111:[2,43]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},$={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 26:break;case 11:return this.begin("acc_title"),38;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),40;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 36:case 39:case 42:case 45:case 48:case 51:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 20:case 21:return 23;case 22:return this.begin("struct"),45;case 23:return"EOF_IN_STRUCT";case 24:return"OPEN_IN_STRUCT";case 25:return this.popState(),47;case 27:return"MEMBER";case 28:return 43;case 29:return 69;case 30:return 62;case 31:return 63;case 32:return 65;case 33:return 48;case 34:return 49;case 35:this.begin("generic");break;case 37:return"GENERICTYPE";case 38:this.begin("string");break;case 40:return"STR";case 41:this.begin("bqstring");break;case 43:return"BQUOTE_STR";case 44:this.begin("href");break;case 46:return 68;case 47:this.begin("callback_name");break;case 49:this.popState(),this.begin("callback_args");break;case 50:return 66;case 52:return 67;case 53:case 54:case 55:case 56:return 64;case 57:case 58:return 57;case 59:case 60:return 59;case 61:return 58;case 62:return 56;case 63:return 60;case 64:return 61;case 65:return 32;case 66:return 44;case 67:return 81;case 68:return"DOT";case 69:return"PLUS";case 70:return 78;case 71:case 72:return"EQUALS";case 73:return 85;case 74:return"PUNCTUATION";case 75:return 84;case 76:return 83;case 77:return 80;case 78:return 25}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[51,52],inclusive:!1},callback_name:{rules:[48,49,50],inclusive:!1},href:{rules:[45,46],inclusive:!1},struct:{rules:[23,24,25,26,27],inclusive:!1},generic:{rules:[36,37],inclusive:!1},bqstring:{rules:[42,43],inclusive:!1},string:{rules:[39,40],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,28,29,30,31,32,33,34,35,38,41,44,47,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],inclusive:!0}}};function q(){this.yy={}}return z.lexer=$,q.prototype=z,z.Parser=q,new q}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?35ed").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/er/parser/erDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,5],i=[6,9,11,23,25,27,29,30,49],n=[1,17],a=[1,18],s=[1,19],o=[1,20],c=[1,21],l=[1,24],h=[1,29],u=[1,30],d=[1,31],g=[1,32],p=[6,9,11,15,20,23,25,27,29,30,42,43,44,45,49],f=[1,45],y=[30,46,47],m=[4,6,9,11,23,25,27,29,30,49],b=[42,43,44,45],v=[22,37],x=[1,64],k={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,".":31,attribute:32,attributeType:33,attributeName:34,attributeKeyType:35,attributeComment:36,ATTRIBUTE_WORD:37,ATTRIBUTE_KEY:38,COMMENT:39,cardinality:40,relType:41,ZERO_OR_ONE:42,ZERO_OR_MORE:43,ONE_OR_MORE:44,ONLY_ONE:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,open_directive:49,type_directive:50,arg_directive:51,close_directive:52,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:".",37:"ATTRIBUTE_WORD",38:"ATTRIBUTE_KEY",39:"COMMENT",42:"ZERO_OR_ONE",43:"ZERO_OR_MORE",44:"ONE_OR_MORE",45:"ONLY_ONE",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD",49:"open_directive",50:"type_directive",51:"arg_directive",52:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,3],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[36,1],[18,3],[40,1],[40,1],[40,1],[40,1],[41,1],[41,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:a[o-1].push(a[o]),this.$=a[o-1];break;case 5:case 6:case 20:case 28:case 29:case 30:case 40:this.$=a[o];break;case 12:i.addEntity(a[o-4]),i.addEntity(a[o-2]),i.addRelationship(a[o-4],a[o],a[o-2],a[o-3]);break;case 13:i.addEntity(a[o-3]),i.addAttributes(a[o-3],a[o-1]);break;case 14:i.addEntity(a[o-2]);break;case 15:i.addEntity(a[o]);break;case 16:case 17:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 21:this.$=a[o-2]+a[o-1]+a[o];break;case 22:this.$=[a[o]];break;case 23:a[o].push(a[o-1]),this.$=a[o];break;case 24:this.$={attributeType:a[o-1],attributeName:a[o]};break;case 25:this.$={attributeType:a[o-2],attributeName:a[o-1],attributeKeyType:a[o]};break;case 26:this.$={attributeType:a[o-2],attributeName:a[o-1],attributeComment:a[o]};break;case 27:this.$={attributeType:a[o-3],attributeName:a[o-2],attributeKeyType:a[o-1],attributeComment:a[o]};break;case 31:case 39:this.$=a[o].replace(/"/g,"");break;case 32:this.$={cardA:a[o],relType:a[o-1],cardB:a[o-2]};break;case 33:this.$=i.Cardinality.ZERO_OR_ONE;break;case 34:this.$=i.Cardinality.ZERO_OR_MORE;break;case 35:this.$=i.Cardinality.ONE_OR_MORE;break;case 36:this.$=i.Cardinality.ONLY_ONE;break;case 37:this.$=i.Identification.NON_IDENTIFYING;break;case 38:this.$=i.Identification.IDENTIFYING;break;case 41:i.parseDirective("%%{","open_directive");break;case 42:i.parseDirective(a[o],"type_directive");break;case 43:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 44:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,49:r},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,49:r},{13:8,50:[1,9]},{50:[2,41]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:n,25:a,27:s,29:o,30:c,49:r},{1:[2,2]},{14:22,15:[1,23],52:l},t([15,52],[2,42]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:15,10:25,12:4,17:16,23:n,25:a,27:s,29:o,30:c,49:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),t(i,[2,15],{18:26,40:28,20:[1,27],42:h,43:u,44:d,45:g}),{24:[1,33]},{26:[1,34]},{28:[1,35]},t(i,[2,19]),t(p,[2,20],{31:[1,36]}),{11:[1,37]},{16:38,51:[1,39]},{11:[2,44]},t(i,[2,5]),{17:40,30:c},{21:41,22:[1,42],32:43,33:44,37:f},{41:46,46:[1,47],47:[1,48]},t(y,[2,33]),t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),{17:49,30:c},t(m,[2,9]),{14:50,52:l},{52:[2,43]},{15:[1,51]},{22:[1,52]},t(i,[2,14]),{21:53,22:[2,22],32:43,33:44,37:f},{34:54,37:[1,55]},{37:[2,28]},{40:56,42:h,43:u,44:d,45:g},t(b,[2,37]),t(b,[2,38]),t(p,[2,21]),{11:[1,57]},{19:58,30:[1,60],48:[1,59]},t(i,[2,13]),{22:[2,23]},t(v,[2,24],{35:61,36:62,38:[1,63],39:x}),t([22,37,38,39],[2,29]),{30:[2,32]},t(m,[2,10]),t(i,[2,12]),t(i,[2,39]),t(i,[2,40]),t(v,[2,25],{36:65,39:x}),t(v,[2,26]),t([22,37,39],[2,30]),t(v,[2,31]),t(v,[2,27])],defaultActions:{5:[2,41],7:[2,2],24:[2,44],39:[2,43],45:[2,28],53:[2,23],56:[2,32]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},_={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),49;case 8:return this.begin("type_directive"),50;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),52;case 11:return 51;case 12:case 13:case 15:case 20:case 24:break;case 14:return 11;case 16:return 9;case 17:return 48;case 18:return 4;case 19:return this.begin("block"),20;case 21:return 38;case 22:return 37;case 23:return 39;case 25:return this.popState(),22;case 26:case 39:return e.yytext[0];case 27:case 31:return 42;case 28:case 32:return 43;case 29:case 33:return 44;case 30:return 45;case 34:case 36:case 37:return 46;case 35:return 47;case 38:return 30;case 40:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK))\b)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\|o\b)/i,/^(?:\}o\b)/i,/^(?:\}\|)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[20,21,22,23,24,25,26],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,27,28,29,30,31,32,33,34,35,36,37,38,39,40],inclusive:!0}}};function C(){this.yy={}}return k.lexer=_,C.prototype=k,k.Parser=C,new C}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?3c87").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/flowchart/parser/flow.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,9],r=[1,7],i=[1,6],n=[1,8],a=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],s=[2,10],o=[1,20],c=[1,21],l=[1,22],h=[1,23],u=[1,30],d=[1,32],g=[1,33],p=[1,34],f=[1,62],y=[1,48],m=[1,52],b=[1,36],v=[1,37],x=[1,38],k=[1,39],_=[1,40],C=[1,56],T=[1,63],E=[1,51],w=[1,53],S=[1,55],A=[1,59],B=[1,60],D=[1,41],L=[1,42],O=[1,43],I=[1,44],N=[1,61],F=[1,50],R=[1,54],j=[1,57],M=[1,58],P=[1,49],z=[1,66],$=[1,71],q=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Y=[1,75],W=[1,74],U=[1,76],V=[20,21,23,81,82],H=[1,99],G=[1,104],X=[1,107],K=[1,108],J=[1,101],Q=[1,106],Z=[1,109],tt=[1,102],et=[1,114],rt=[1,113],it=[1,103],nt=[1,105],at=[1,110],st=[1,111],ot=[1,112],ct=[1,115],lt=[20,21,22,23,81,82],ht=[20,21,22,23,53,81,82],ut=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],dt=[20,21,23],gt=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],pt=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],ft=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],yt=[1,149],mt=[1,157],bt=[1,158],vt=[1,159],xt=[1,160],kt=[1,144],_t=[1,145],Ct=[1,141],Tt=[1,152],Et=[1,153],wt=[1,154],St=[1,155],At=[1,156],Bt=[1,161],Dt=[1,162],Lt=[1,147],Ot=[1,150],It=[1,146],Nt=[1,143],Ft=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Rt=[1,165],jt=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],Mt=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],Pt=[12,21,22,24],zt=[22,106],$t=[1,250],qt=[1,245],Yt=[1,246],Wt=[1,254],Ut=[1,251],Vt=[1,248],Ht=[1,247],Gt=[1,249],Xt=[1,252],Kt=[1,253],Jt=[1,255],Qt=[1,273],Zt=[20,21,23,106],te=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],ee={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 5:i.parseDirective("%%{","open_directive");break;case 6:i.parseDirective(a[o],"type_directive");break;case 7:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 8:i.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:a[o]!==[]&&a[o-1].push(a[o]),this.$=a[o-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:case 78:case 150:this.$=a[o];break;case 19:i.setDirection("TB"),this.$="TB";break;case 20:i.setDirection(a[o-1]),this.$=a[o-1];break;case 35:this.$=a[o-1].nodes;break;case 41:this.$=i.addSubGraph(a[o-6],a[o-1],a[o-4]);break;case 42:this.$=i.addSubGraph(a[o-3],a[o-1],a[o-3]);break;case 43:this.$=i.addSubGraph(void 0,a[o-1],void 0);break;case 45:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 46:case 47:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 51:i.addLink(a[o-2].stmt,a[o],a[o-1]),this.$={stmt:a[o],nodes:a[o].concat(a[o-2].nodes)};break;case 52:i.addLink(a[o-3].stmt,a[o-1],a[o-2]),this.$={stmt:a[o-1],nodes:a[o-1].concat(a[o-3].nodes)};break;case 53:this.$={stmt:a[o-1],nodes:a[o-1]};break;case 54:this.$={stmt:a[o],nodes:a[o]};break;case 55:case 123:case 125:this.$=[a[o]];break;case 56:this.$=a[o-4].concat(a[o]);break;case 57:this.$=[a[o-2]],i.setClass(a[o-2],a[o]);break;case 58:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"square");break;case 59:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"doublecircle");break;case 60:this.$=a[o-5],i.addVertex(a[o-5],a[o-2],"circle");break;case 61:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"ellipse");break;case 62:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"stadium");break;case 63:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"subroutine");break;case 64:this.$=a[o-7],i.addVertex(a[o-7],a[o-1],"rect",void 0,void 0,void 0,Object.fromEntries([[a[o-5],a[o-3]]]));break;case 65:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"cylinder");break;case 66:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"round");break;case 67:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"diamond");break;case 68:this.$=a[o-5],i.addVertex(a[o-5],a[o-2],"hexagon");break;case 69:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"odd");break;case 70:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"trapezoid");break;case 71:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"inv_trapezoid");break;case 72:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"lean_right");break;case 73:this.$=a[o-3],i.addVertex(a[o-3],a[o-1],"lean_left");break;case 74:this.$=a[o],i.addVertex(a[o]);break;case 75:a[o-1].text=a[o],this.$=a[o-1];break;case 76:case 77:a[o-2].text=a[o-1],this.$=a[o-2];break;case 79:var c=i.destructLink(a[o],a[o-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:a[o-1]};break;case 80:c=i.destructLink(a[o]),this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 81:this.$=a[o-1];break;case 83:case 97:case 153:case 151:this.$=a[o-1]+""+a[o];break;case 98:case 99:this.$=a[o-4],i.addClass(a[o-2],a[o]);break;case 100:this.$=a[o-4],i.setClass(a[o-2],a[o]);break;case 101:case 109:this.$=a[o-1],i.setClickEvent(a[o-1],a[o]);break;case 102:case 110:this.$=a[o-3],i.setClickEvent(a[o-3],a[o-2]),i.setTooltip(a[o-3],a[o]);break;case 103:this.$=a[o-2],i.setClickEvent(a[o-2],a[o-1],a[o]);break;case 104:this.$=a[o-4],i.setClickEvent(a[o-4],a[o-3],a[o-2]),i.setTooltip(a[o-4],a[o]);break;case 105:case 111:this.$=a[o-1],i.setLink(a[o-1],a[o]);break;case 106:case 112:this.$=a[o-3],i.setLink(a[o-3],a[o-2]),i.setTooltip(a[o-3],a[o]);break;case 107:case 113:this.$=a[o-3],i.setLink(a[o-3],a[o-2],a[o]);break;case 108:case 114:this.$=a[o-5],i.setLink(a[o-5],a[o-4],a[o]),i.setTooltip(a[o-5],a[o-2]);break;case 115:this.$=a[o-4],i.addVertex(a[o-2],void 0,void 0,a[o]);break;case 116:case 118:this.$=a[o-4],i.updateLink(a[o-2],a[o]);break;case 117:this.$=a[o-4],i.updateLink([a[o-2]],a[o]);break;case 119:this.$=a[o-8],i.updateLinkInterpolate([a[o-6]],a[o-2]),i.updateLink([a[o-6]],a[o]);break;case 120:this.$=a[o-8],i.updateLinkInterpolate(a[o-6],a[o-2]),i.updateLink(a[o-6],a[o]);break;case 121:this.$=a[o-6],i.updateLinkInterpolate([a[o-4]],a[o]);break;case 122:this.$=a[o-6],i.updateLinkInterpolate(a[o-4],a[o]);break;case 124:case 126:a[o-2].push(a[o]),this.$=a[o-2];break;case 128:this.$=a[o-1]+a[o];break;case 156:this.$="v";break;case 157:this.$="-";break;case 158:this.$={stmt:"dir",value:"TB"};break;case 159:this.$={stmt:"dir",value:"BT"};break;case 160:this.$={stmt:"dir",value:"RL"};break;case 161:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:r,22:i,24:n},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:r,22:i,24:n},t(a,s,{17:11}),{7:12,13:[1,13]},{16:14,21:r,22:i,24:n},{16:15,21:r,22:i,24:n},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:o,21:c,22:l,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,43:31,44:d,46:g,48:p,50:35,51:45,52:f,54:46,66:y,67:m,86:b,87:v,88:x,89:k,90:_,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,118:D,119:L,120:O,121:I,122:N,123:F,124:R,125:j,126:M,127:P},{8:64,10:[1,65],15:z},t([10,15],[2,6]),t(a,[2,17]),t(a,[2,18]),t(a,[2,19]),{20:[1,68],21:[1,69],22:$,27:67,30:70},t(q,[2,11]),t(q,[2,12]),t(q,[2,13]),t(q,[2,14]),t(q,[2,15]),t(q,[2,16]),{9:72,20:Y,21:W,23:U,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:Y,21:W,23:U},{9:81,20:Y,21:W,23:U},{9:82,20:Y,21:W,23:U},{9:83,20:Y,21:W,23:U},{9:84,20:Y,21:W,23:U},{9:86,20:Y,21:W,22:[1,85],23:U},t(q,[2,44]),{45:[1,87]},{47:[1,88]},t(q,[2,47]),t(V,[2,54],{30:89,22:$}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:H,52:G,66:X,67:K,84:[1,97],91:J,97:96,98:[1,94],100:[1,95],105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(q,[2,158]),t(q,[2,159]),t(q,[2,160]),t(q,[2,161]),t(lt,[2,55],{53:[1,116]}),t(ht,[2,74],{116:129,40:[1,117],52:f,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:y,67:m,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:C,95:T,105:E,106:w,109:S,111:A,112:B,122:N,123:F,124:R,125:j,126:M,127:P}),t(ut,[2,150]),t(ut,[2,175]),t(ut,[2,176]),t(ut,[2,177]),t(ut,[2,178]),t(ut,[2,179]),t(ut,[2,180]),t(ut,[2,181]),t(ut,[2,182]),t(ut,[2,183]),t(ut,[2,184]),t(ut,[2,185]),t(ut,[2,186]),t(ut,[2,187]),t(ut,[2,188]),t(ut,[2,189]),t(ut,[2,190]),{9:130,20:Y,21:W,23:U},{11:131,14:[1,132]},t(dt,[2,8]),t(a,[2,20]),t(a,[2,26]),t(a,[2,27]),{21:[1,133]},t(gt,[2,34],{30:134,22:$}),t(q,[2,35]),{50:135,51:45,52:f,54:46,66:y,67:m,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,122:N,123:F,124:R,125:j,126:M,127:P},t(pt,[2,48]),t(pt,[2,49]),t(pt,[2,50]),t(ft,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:yt,24:mt,26:bt,38:vt,39:139,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),t(q,[2,36]),t(q,[2,37]),t(q,[2,38]),t(q,[2,39]),t(q,[2,40]),{22:yt,24:mt,26:bt,38:vt,39:163,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(Ft,s,{17:164}),t(q,[2,45]),t(q,[2,46]),t(V,[2,53],{52:Rt}),{26:H,52:G,66:X,67:K,91:J,97:166,102:[1,167],105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},{95:[1,168],103:169,105:[1,170]},{26:H,52:G,66:X,67:K,91:J,95:[1,171],97:172,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},{26:H,52:G,66:X,67:K,91:J,97:173,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(dt,[2,101],{22:[1,174],99:[1,175]}),t(dt,[2,105],{22:[1,176]}),t(dt,[2,109],{115:100,117:178,22:[1,177],26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,122:it,123:nt,124:at,125:st,126:ot,127:ct}),t(dt,[2,111],{22:[1,179]}),t(jt,[2,152]),t(jt,[2,154]),t(jt,[2,155]),t(jt,[2,156]),t(jt,[2,157]),t(Mt,[2,162]),t(Mt,[2,163]),t(Mt,[2,164]),t(Mt,[2,165]),t(Mt,[2,166]),t(Mt,[2,167]),t(Mt,[2,168]),t(Mt,[2,169]),t(Mt,[2,170]),t(Mt,[2,171]),t(Mt,[2,172]),t(Mt,[2,173]),t(Mt,[2,174]),{52:f,54:180,66:y,67:m,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,122:N,123:F,124:R,125:j,126:M,127:P},{22:yt,24:mt,26:bt,38:vt,39:181,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:182,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:184,42:xt,52:G,57:[1,183],66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:185,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:186,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:187,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{66:[1,188]},{22:yt,24:mt,26:bt,38:vt,39:189,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:190,42:xt,52:G,66:X,67:K,71:[1,191],73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:192,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:193,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:194,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(ut,[2,151]),t(Pt,[2,3]),{8:195,15:z},{15:[2,7]},t(a,[2,28]),t(gt,[2,33]),t(V,[2,51],{30:196,22:$}),t(ft,[2,75],{22:[1,197]}),{22:[1,198]},{22:yt,24:mt,26:bt,38:vt,39:199,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,73:kt,81:_t,82:[1,200],83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(Mt,[2,82]),t(Mt,[2,84]),t(Mt,[2,140]),t(Mt,[2,141]),t(Mt,[2,142]),t(Mt,[2,143]),t(Mt,[2,144]),t(Mt,[2,145]),t(Mt,[2,146]),t(Mt,[2,147]),t(Mt,[2,148]),t(Mt,[2,149]),t(Mt,[2,85]),t(Mt,[2,86]),t(Mt,[2,87]),t(Mt,[2,88]),t(Mt,[2,89]),t(Mt,[2,90]),t(Mt,[2,91]),t(Mt,[2,92]),t(Mt,[2,93]),t(Mt,[2,94]),t(Mt,[2,95]),{9:203,20:Y,21:W,22:yt,23:U,24:mt,26:bt,38:vt,40:[1,202],42:xt,52:G,66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{18:18,19:19,20:o,21:c,22:l,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,42:[1,204],43:31,44:d,46:g,48:p,50:35,51:45,52:f,54:46,66:y,67:m,86:b,87:v,88:x,89:k,90:_,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,118:D,119:L,120:O,121:I,122:N,123:F,124:R,125:j,126:M,127:P},{22:$,30:205},{22:[1,206],26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:178,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},t(zt,[2,123]),{22:[1,211]},{22:[1,212],26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:178,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:[1,213],26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:178,122:it,123:nt,124:at,125:st,126:ot,127:ct},{84:[1,214]},t(dt,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},t(jt,[2,153]),{84:[1,219],101:[1,220]},t(lt,[2,57],{116:129,52:f,66:y,67:m,91:C,95:T,105:E,106:w,109:S,111:A,112:B,122:N,123:F,124:R,125:j,126:M,127:P}),{22:yt,24:mt,26:bt,38:vt,41:[1,221],42:xt,52:G,66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,56:[1,222],66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:223,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,58:[1,224],66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,60:[1,225],66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,62:[1,226],66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,64:[1,227],66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{67:[1,228]},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,70:[1,229],73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,72:[1,230],73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,39:231,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,41:[1,232],42:xt,52:G,66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,73:kt,75:[1,233],77:[1,234],81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,73:kt,75:[1,236],77:[1,235],81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{9:237,20:Y,21:W,23:U},t(V,[2,52],{52:Rt}),t(ft,[2,77]),t(ft,[2,76]),{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,68:[1,238],73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(ft,[2,79]),t(Mt,[2,83]),{22:yt,24:mt,26:bt,38:vt,39:239,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(Ft,s,{17:240}),t(q,[2,43]),{51:241,52:f,54:46,66:y,67:m,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,122:N,123:F,124:R,125:j,126:M,127:P},{22:$t,66:qt,67:Yt,86:Wt,96:242,102:Ut,105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{22:$t,66:qt,67:Yt,86:Wt,96:256,102:Ut,105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{22:$t,66:qt,67:Yt,86:Wt,96:257,102:Ut,104:[1,258],105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{22:$t,66:qt,67:Yt,86:Wt,96:259,102:Ut,104:[1,260],105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{105:[1,261]},{22:$t,66:qt,67:Yt,86:Wt,96:262,102:Ut,105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{22:$t,66:qt,67:Yt,86:Wt,96:263,102:Ut,105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{26:H,52:G,66:X,67:K,91:J,97:264,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(dt,[2,102]),{84:[1,265]},t(dt,[2,106],{22:[1,266]}),t(dt,[2,107]),t(dt,[2,110]),t(dt,[2,112],{22:[1,267]}),t(dt,[2,113]),t(ht,[2,58]),t(ht,[2,59]),{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,58:[1,268],66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(ht,[2,66]),t(ht,[2,61]),t(ht,[2,62]),t(ht,[2,63]),{66:[1,269]},t(ht,[2,65]),t(ht,[2,67]),{22:yt,24:mt,26:bt,38:vt,42:xt,52:G,66:X,67:K,72:[1,270],73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(ht,[2,69]),t(ht,[2,70]),t(ht,[2,72]),t(ht,[2,71]),t(ht,[2,73]),t(Pt,[2,4]),t([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:yt,24:mt,26:bt,38:vt,41:[1,271],42:xt,52:G,66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{18:18,19:19,20:o,21:c,22:l,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,42:[1,272],43:31,44:d,46:g,48:p,50:35,51:45,52:f,54:46,66:y,67:m,86:b,87:v,88:x,89:k,90:_,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,118:D,119:L,120:O,121:I,122:N,123:F,124:R,125:j,126:M,127:P},t(lt,[2,56]),t(dt,[2,115],{106:Qt}),t(Zt,[2,125],{108:274,22:$t,66:qt,67:Yt,86:Wt,102:Ut,105:Vt,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt}),t(te,[2,127]),t(te,[2,129]),t(te,[2,130]),t(te,[2,131]),t(te,[2,132]),t(te,[2,133]),t(te,[2,134]),t(te,[2,135]),t(te,[2,136]),t(te,[2,137]),t(te,[2,138]),t(te,[2,139]),t(dt,[2,116],{106:Qt}),t(dt,[2,117],{106:Qt}),{22:[1,275]},t(dt,[2,118],{106:Qt}),{22:[1,276]},t(zt,[2,124]),t(dt,[2,98],{106:Qt}),t(dt,[2,99],{106:Qt}),t(dt,[2,100],{115:100,117:178,26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,122:it,123:nt,124:at,125:st,126:ot,127:ct}),t(dt,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:Y,21:W,23:U},t(q,[2,42]),{22:$t,66:qt,67:Yt,86:Wt,102:Ut,105:Vt,107:283,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},t(te,[2,128]),{26:H,52:G,66:X,67:K,91:J,97:284,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},{26:H,52:G,66:X,67:K,91:J,97:285,105:Q,106:Z,109:tt,111:et,112:rt,115:100,117:98,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(dt,[2,108]),t(dt,[2,114]),t(ht,[2,60]),{22:yt,24:mt,26:bt,38:vt,39:286,42:xt,52:G,66:X,67:K,73:kt,81:_t,83:140,84:Ct,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},t(ht,[2,68]),t(Ft,s,{17:287}),t(Zt,[2,126],{108:274,22:$t,66:qt,67:Yt,86:Wt,102:Ut,105:Vt,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt}),t(dt,[2,121],{115:100,117:178,22:[1,288],26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,122:it,123:nt,124:at,125:st,126:ot,127:ct}),t(dt,[2,122],{115:100,117:178,22:[1,289],26:H,52:G,66:X,67:K,91:J,105:Q,106:Z,109:tt,111:et,112:rt,122:it,123:nt,124:at,125:st,126:ot,127:ct}),{22:yt,24:mt,26:bt,38:vt,41:[1,290],42:xt,52:G,66:X,67:K,73:kt,81:_t,83:201,85:151,86:Tt,87:Et,88:wt,89:St,90:At,91:Bt,92:Dt,94:142,95:Lt,105:Q,106:Z,109:Ot,111:et,112:rt,113:It,114:Nt,115:148,122:it,123:nt,124:at,125:st,126:ot,127:ct},{18:18,19:19,20:o,21:c,22:l,23:h,32:24,33:25,34:26,35:27,36:28,37:29,38:u,42:[1,291],43:31,44:d,46:g,48:p,50:35,51:45,52:f,54:46,66:y,67:m,86:b,87:v,88:x,89:k,90:_,91:C,95:T,105:E,106:w,109:S,111:A,112:B,116:47,118:D,119:L,120:O,121:I,122:N,123:F,124:R,125:j,126:M,127:P},{22:$t,66:qt,67:Yt,86:Wt,96:292,102:Ut,105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},{22:$t,66:qt,67:Yt,86:Wt,96:293,102:Ut,105:Vt,107:243,108:244,109:Ht,110:Gt,111:Xt,112:Kt,113:Jt},t(ht,[2,64]),t(q,[2,41]),t(dt,[2,119],{106:Qt}),t(dt,[2,120],{106:Qt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},re={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:return this.begin("acc_title"),44;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),46;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:case 24:case 27:case 30:case 33:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"STR";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin("href");break;case 25:return 100;case 26:this.begin("callbackname");break;case 28:this.popState(),this.begin("callbackargs");break;case 29:return 98;case 31:return 99;case 32:this.begin("click");break;case 34:return 90;case 35:case 36:return t.lex.firstGraph()&&this.begin("dir"),24;case 37:return 38;case 38:return 42;case 39:case 40:case 41:case 42:return 101;case 43:return this.popState(),25;case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:return this.popState(),26;case 54:return 118;case 55:return 119;case 56:return 120;case 57:return 121;case 58:return 105;case 59:return 111;case 60:return 53;case 61:return 67;case 62:return 52;case 63:return 20;case 64:return 106;case 65:return 126;case 66:case 67:case 68:return 82;case 69:case 70:case 71:return 81;case 72:return 59;case 73:return 60;case 74:return 61;case 75:return 62;case 76:return 63;case 77:return 64;case 78:return 65;case 79:return 69;case 80:return 70;case 81:return 55;case 82:return 56;case 83:return 109;case 84:return 112;case 85:return 127;case 86:return 124;case 87:return 113;case 88:case 89:return 125;case 90:return 114;case 91:return 73;case 92:return 92;case 93:return"SEP";case 94:return 91;case 95:return 66;case 96:return 75;case 97:return 74;case 98:return 77;case 99:return 76;case 100:return 122;case 101:return 123;case 102:return 68;case 103:return 57;case 104:return 58;case 105:return 40;case 106:return 41;case 107:return 71;case 108:return 72;case 109:return 133;case 110:return 21;case 111:return 22;case 112:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[43,44,45,46,47,48,49,50,51,52,53],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],inclusive:!0}}};function ie(){this.yy={}}return ee.lexer=re,ie.prototype=ee,ee.Parser=ie,new ie}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?dbae").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/gantt/parser/gantt.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,5],i=[7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39],n=[1,15],a=[1,16],s=[1,17],o=[1,18],c=[1,19],l=[1,20],h=[1,21],u=[1,22],d=[1,23],g=[1,24],p=[1,25],f=[1,26],y=[1,28],m=[1,30],b=[1,33],v=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39],x={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,excludes:16,includes:17,todayMarker:18,title:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,clickStatement:26,taskTxt:27,taskData:28,openDirective:29,typeDirective:30,closeDirective:31,":":32,argDirective:33,click:34,callbackname:35,callbackargs:36,href:37,clickStatementDebug:38,open_directive:39,type_directive:40,arg_directive:41,close_directive:42,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"excludes",17:"includes",18:"todayMarker",19:"title",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"taskTxt",28:"taskData",32:":",34:"click",35:"callbackname",36:"callbackargs",37:"href",39:"open_directive",40:"type_directive",41:"arg_directive",42:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[26,2],[26,3],[26,3],[26,4],[26,3],[26,4],[26,2],[38,2],[38,3],[38,3],[38,4],[38,3],[38,4],[38,2],[29,1],[30,1],[33,1],[31,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 2:return a[o-1];case 3:case 7:case 8:this.$=[];break;case 4:a[o-1].push(a[o]),this.$=a[o-1];break;case 5:case 6:this.$=a[o];break;case 9:i.setDateFormat(a[o].substr(11)),this.$=a[o].substr(11);break;case 10:i.enableInclusiveEndDates(),this.$=a[o].substr(18);break;case 11:i.TopAxis(),this.$=a[o].substr(8);break;case 12:i.setAxisFormat(a[o].substr(11)),this.$=a[o].substr(11);break;case 13:i.setExcludes(a[o].substr(9)),this.$=a[o].substr(9);break;case 14:i.setIncludes(a[o].substr(9)),this.$=a[o].substr(9);break;case 15:i.setTodayMarker(a[o].substr(12)),this.$=a[o].substr(12);break;case 16:i.setDiagramTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 17:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 22:i.addTask(a[o-1],a[o]),this.$="task";break;case 26:this.$=a[o-1],i.setClickEvent(a[o-1],a[o],null);break;case 27:this.$=a[o-2],i.setClickEvent(a[o-2],a[o-1],a[o]);break;case 28:this.$=a[o-2],i.setClickEvent(a[o-2],a[o-1],null),i.setLink(a[o-2],a[o]);break;case 29:this.$=a[o-3],i.setClickEvent(a[o-3],a[o-2],a[o-1]),i.setLink(a[o-3],a[o]);break;case 30:this.$=a[o-2],i.setClickEvent(a[o-2],a[o],null),i.setLink(a[o-2],a[o-1]);break;case 31:this.$=a[o-3],i.setClickEvent(a[o-3],a[o-1],a[o]),i.setLink(a[o-3],a[o-2]);break;case 32:this.$=a[o-1],i.setLink(a[o-1],a[o]);break;case 33:case 39:this.$=a[o-1]+" "+a[o];break;case 34:case 35:case 37:this.$=a[o-2]+" "+a[o-1]+" "+a[o];break;case 36:case 38:this.$=a[o-3]+" "+a[o-2]+" "+a[o-1]+" "+a[o];break;case 40:i.parseDirective("%%{","open_directive");break;case 41:i.parseDirective(a[o],"type_directive");break;case 42:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 43:i.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,29:4,39:r},{1:[3]},{3:6,4:2,5:e,29:4,39:r},t(i,[2,3],{6:7}),{30:8,40:[1,9]},{40:[2,40]},{1:[2,1]},{4:29,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:n,13:a,14:s,15:o,16:c,17:l,18:h,19:u,20:d,22:g,24:p,25:f,26:27,27:y,29:4,34:m,39:r},{31:31,32:[1,32],42:b},t([32,42],[2,41]),t(i,[2,8],{1:[2,2]}),t(i,[2,4]),{4:29,10:34,12:n,13:a,14:s,15:o,16:c,17:l,18:h,19:u,20:d,22:g,24:p,25:f,26:27,27:y,29:4,34:m,39:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),t(i,[2,12]),t(i,[2,13]),t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),{21:[1,35]},{23:[1,36]},t(i,[2,19]),t(i,[2,20]),t(i,[2,21]),{28:[1,37]},t(i,[2,23]),{35:[1,38],37:[1,39]},{11:[1,40]},{33:41,41:[1,42]},{11:[2,43]},t(i,[2,5]),t(i,[2,17]),t(i,[2,18]),t(i,[2,22]),t(i,[2,26],{36:[1,43],37:[1,44]}),t(i,[2,32],{35:[1,45]}),t(v,[2,24]),{31:46,42:b},{42:[2,42]},t(i,[2,27],{37:[1,47]}),t(i,[2,28]),t(i,[2,30],{36:[1,48]}),{11:[1,49]},t(i,[2,29]),t(i,[2,31]),t(v,[2,25])],defaultActions:{5:[2,40],6:[2,1],33:[2,43],42:[2,42]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},k={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),39;case 1:return this.begin("type_directive"),40;case 2:return this.popState(),this.begin("arg_directive"),32;case 3:return this.popState(),this.popState(),42;case 4:return 41;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 37;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 35;case 27:return 36;case 28:this.begin("click");break;case 30:return 34;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 17;case 37:return 16;case 38:return 18;case 39:return"date";case 40:return 19;case 41:return"accDescription";case 42:return 25;case 43:return 27;case 44:return 28;case 45:return 32;case 46:return 7;case 47:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],inclusive:!0}}};function _(){this.yy={}}return x.lexer=k,_.prototype=x,x.Parser=_,new _}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?8ed1").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/git/parser/gitGraph.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,4],r=[1,7],i=[1,5],n=[1,9],a=[1,6],s=[2,6],o=[1,16],c=[6,8,14,20,22,24,25,27,29,32,35,37,49,53],l=[8,14,20,22,24,25,27,29,32,35,37],h=[8,13,14,20,22,24,25,27,29,32,35,37],u=[1,26],d=[6,8,14,49,53],g=[8,14,53],p=[1,64],f=[1,65],y=[1,66],m=[8,14,33,36,41,53],b={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ID:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,MERGE:35,COMMIT_TAG:36,COMMIT:37,commit_arg:38,COMMIT_TYPE:39,commitType:40,COMMIT_MSG:41,NORMAL:42,REVERSE:43,HIGHLIGHT:44,openDirective:45,typeDirective:46,closeDirective:47,argDirective:48,open_directive:49,type_directive:50,arg_directive:51,close_directive:52,";":53,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",28:"ID",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"MERGE",36:"COMMIT_TAG",37:"COMMIT",39:"COMMIT_TYPE",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",49:"open_directive",50:"type_directive",51:"arg_directive",52:"close_directive",53:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[18,2],[18,4],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[38,0],[38,1],[40,1],[40,1],[40,1],[5,3],[5,5],[45,1],[46,1],[48,1],[47,1],[4,1],[4,1],[4,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 3:return a[o];case 4:return a[o-1];case 5:return i.setDirection(a[o-3]),a[o-1];case 7:i.setOptions(a[o-1]),this.$=a[o];break;case 8:a[o-1]+=a[o],this.$=a[o-1];break;case 10:this.$=[];break;case 11:a[o-1].push(a[o]),this.$=a[o-1];break;case 12:this.$=a[o-1];break;case 17:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 22:i.checkout(a[o]);break;case 23:i.branch(a[o]);break;case 24:i.branch(a[o-2],a[o]);break;case 25:i.cherryPick(a[o]);break;case 26:i.merge(a[o]);break;case 27:i.merge(a[o-2],a[o]);break;case 28:i.commit(a[o]);break;case 29:i.commit("","",i.commitType.NORMAL,a[o]);break;case 30:i.commit("","",a[o],"");break;case 31:i.commit("","",a[o],a[o-2]);break;case 32:i.commit("","",a[o-2],a[o]);break;case 33:i.commit("",a[o],i.commitType.NORMAL,"");break;case 34:i.commit("",a[o-2],i.commitType.NORMAL,a[o]);break;case 35:i.commit("",a[o],i.commitType.NORMAL,a[o-2]);break;case 36:i.commit("",a[o-2],a[o],"");break;case 37:i.commit("",a[o],a[o-2],"");break;case 38:i.commit("",a[o-4],a[o-2],a[o]);break;case 39:i.commit("",a[o-4],a[o],a[o-2]);break;case 40:i.commit("",a[o-2],a[o-4],a[o]);break;case 41:i.commit("",a[o],a[o-4],a[o-2]);break;case 42:i.commit("",a[o],a[o-2],a[o-4]);break;case 43:i.commit("",a[o-2],a[o],a[o-4]);break;case 44:i.commit(a[o],"",i.commitType.NORMAL,"");break;case 45:i.commit(a[o],"",i.commitType.NORMAL,a[o-2]);break;case 46:i.commit(a[o-2],"",i.commitType.NORMAL,a[o]);break;case 47:i.commit(a[o-2],"",a[o],"");break;case 48:i.commit(a[o],"",a[o-2],"");break;case 49:i.commit(a[o],a[o-2],i.commitType.NORMAL,"");break;case 50:i.commit(a[o-2],a[o],i.commitType.NORMAL,"");break;case 51:i.commit(a[o-4],"",a[o-2],a[o]);break;case 52:i.commit(a[o-4],"",a[o],a[o-2]);break;case 53:i.commit(a[o-2],"",a[o-4],a[o]);break;case 54:i.commit(a[o],"",a[o-4],a[o-2]);break;case 55:i.commit(a[o],"",a[o-2],a[o-4]);break;case 56:i.commit(a[o-2],"",a[o],a[o-4]);break;case 57:i.commit(a[o-4],a[o],a[o-2],"");break;case 58:i.commit(a[o-4],a[o-2],a[o],"");break;case 59:i.commit(a[o-2],a[o],a[o-4],"");break;case 60:i.commit(a[o],a[o-2],a[o-4],"");break;case 61:i.commit(a[o],a[o-4],a[o-2],"");break;case 62:i.commit(a[o-2],a[o-4],a[o],"");break;case 63:i.commit(a[o-4],a[o],i.commitType.NORMAL,a[o-2]);break;case 64:i.commit(a[o-4],a[o-2],i.commitType.NORMAL,a[o]);break;case 65:i.commit(a[o-2],a[o],i.commitType.NORMAL,a[o-4]);break;case 66:i.commit(a[o],a[o-2],i.commitType.NORMAL,a[o-4]);break;case 67:i.commit(a[o],a[o-4],i.commitType.NORMAL,a[o-2]);break;case 68:i.commit(a[o-2],a[o-4],i.commitType.NORMAL,a[o]);break;case 69:i.commit(a[o-6],a[o-4],a[o-2],a[o]);break;case 70:i.commit(a[o-6],a[o-4],a[o],a[o-2]);break;case 71:i.commit(a[o-6],a[o-2],a[o-4],a[o]);break;case 72:i.commit(a[o-6],a[o],a[o-4],a[o-2]);break;case 73:i.commit(a[o-6],a[o-2],a[o],a[o-4]);break;case 74:i.commit(a[o-6],a[o],a[o-2],a[o-4]);break;case 75:i.commit(a[o-4],a[o-6],a[o-2],a[o]);break;case 76:i.commit(a[o-4],a[o-6],a[o],a[o-2]);break;case 77:i.commit(a[o-2],a[o-6],a[o-4],a[o]);break;case 78:i.commit(a[o],a[o-6],a[o-4],a[o-2]);break;case 79:i.commit(a[o-2],a[o-6],a[o],a[o-4]);break;case 80:i.commit(a[o],a[o-6],a[o-2],a[o-4]);break;case 81:i.commit(a[o],a[o-4],a[o-2],a[o-6]);break;case 82:i.commit(a[o-2],a[o-4],a[o],a[o-6]);break;case 83:i.commit(a[o],a[o-2],a[o-4],a[o-6]);break;case 84:i.commit(a[o-2],a[o],a[o-4],a[o-6]);break;case 85:i.commit(a[o-4],a[o-2],a[o],a[o-6]);break;case 86:i.commit(a[o-4],a[o],a[o-2],a[o-6]);break;case 87:i.commit(a[o-2],a[o-4],a[o-6],a[o]);break;case 88:i.commit(a[o],a[o-4],a[o-6],a[o-2]);break;case 89:i.commit(a[o-2],a[o],a[o-6],a[o-4]);break;case 90:i.commit(a[o],a[o-2],a[o-6],a[o-4]);break;case 91:i.commit(a[o-4],a[o-2],a[o-6],a[o]);break;case 92:i.commit(a[o-4],a[o],a[o-6],a[o-2]);break;case 93:this.$="";break;case 94:this.$=a[o];break;case 95:this.$=i.commitType.NORMAL;break;case 96:this.$=i.commitType.REVERSE;break;case 97:this.$=i.commitType.HIGHLIGHT;break;case 100:i.parseDirective("%%{","open_directive");break;case 101:i.parseDirective(a[o],"type_directive");break;case 102:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 103:i.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:e,8:r,14:i,45:8,49:n,53:a},{1:[3]},{3:10,4:2,5:3,6:e,8:r,14:i,45:8,49:n,53:a},{3:11,4:2,5:3,6:e,8:r,14:i,45:8,49:n,53:a},{7:12,8:s,9:[1,13],10:[1,14],11:15,14:o},t(c,[2,104]),t(c,[2,105]),t(c,[2,106]),{46:17,50:[1,18]},{50:[2,100]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:s,11:15,14:o},{9:[1,21]},t(l,[2,10],{12:22,13:[1,23]}),t(h,[2,9]),{9:[1,25],47:24,52:u},t([9,52],[2,101]),{1:[2,3]},{8:[1,27]},{7:28,8:s,11:15,14:o},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],35:[1,42],37:[1,41]},t(h,[2,8]),t(d,[2,98]),{48:45,51:[1,46]},t(d,[2,103]),{1:[2,4]},{8:[1,47]},t(l,[2,11]),{4:48,8:r,14:i,53:a},t(l,[2,13]),t(g,[2,14]),t(g,[2,15]),t(g,[2,16]),{21:[1,49]},{23:[1,50]},t(g,[2,19]),t(g,[2,20]),t(g,[2,21]),{28:[1,51]},t(g,[2,93],{38:52,33:[1,55],34:[1,57],36:[1,53],39:[1,54],41:[1,56]}),{28:[1,58]},{33:[1,59]},{28:[1,60]},{47:61,52:u},{52:[2,102]},{1:[2,5]},t(l,[2,12]),t(g,[2,17]),t(g,[2,18]),t(g,[2,22]),t(g,[2,28]),{34:[1,62]},{40:63,42:p,43:f,44:y},{34:[1,67]},{34:[1,68]},t(g,[2,94]),t(g,[2,26],{36:[1,69]}),{34:[1,70]},t(g,[2,23],{30:[1,71]}),t(d,[2,99]),t(g,[2,29],{33:[1,73],39:[1,72],41:[1,74]}),t(g,[2,30],{33:[1,76],36:[1,75],41:[1,77]}),t(m,[2,95]),t(m,[2,96]),t(m,[2,97]),t(g,[2,33],{36:[1,78],39:[1,79],41:[1,80]}),t(g,[2,44],{33:[1,83],36:[1,81],39:[1,82]}),{34:[1,84]},t(g,[2,25]),{31:[1,85]},{40:86,42:p,43:f,44:y},{34:[1,87]},{34:[1,88]},{34:[1,89]},{34:[1,90]},{34:[1,91]},{34:[1,92]},{40:93,42:p,43:f,44:y},{34:[1,94]},{34:[1,95]},{40:96,42:p,43:f,44:y},{34:[1,97]},t(g,[2,27]),t(g,[2,24]),t(g,[2,31],{33:[1,98],41:[1,99]}),t(g,[2,35],{39:[1,100],41:[1,101]}),t(g,[2,45],{33:[1,103],39:[1,102]}),t(g,[2,32],{33:[1,104],41:[1,105]}),t(g,[2,37],{36:[1,106],41:[1,107]}),t(g,[2,48],{33:[1,109],36:[1,108]}),t(g,[2,34],{39:[1,110],41:[1,111]}),t(g,[2,36],{36:[1,112],41:[1,113]}),t(g,[2,49],{36:[1,115],39:[1,114]}),t(g,[2,46],{33:[1,117],39:[1,116]}),t(g,[2,47],{33:[1,119],36:[1,118]}),t(g,[2,50],{36:[1,121],39:[1,120]}),{34:[1,122]},{34:[1,123]},{40:124,42:p,43:f,44:y},{34:[1,125]},{40:126,42:p,43:f,44:y},{34:[1,127]},{34:[1,128]},{34:[1,129]},{34:[1,130]},{34:[1,131]},{34:[1,132]},{34:[1,133]},{40:134,42:p,43:f,44:y},{34:[1,135]},{34:[1,136]},{34:[1,137]},{40:138,42:p,43:f,44:y},{34:[1,139]},{40:140,42:p,43:f,44:y},{34:[1,141]},{34:[1,142]},{34:[1,143]},{40:144,42:p,43:f,44:y},{34:[1,145]},t(g,[2,42],{41:[1,146]}),t(g,[2,55],{33:[1,147]}),t(g,[2,43],{41:[1,148]}),t(g,[2,66],{39:[1,149]}),t(g,[2,56],{33:[1,150]}),t(g,[2,65],{39:[1,151]}),t(g,[2,41],{41:[1,152]}),t(g,[2,54],{33:[1,153]}),t(g,[2,40],{41:[1,154]}),t(g,[2,60],{36:[1,155]}),t(g,[2,53],{33:[1,156]}),t(g,[2,59],{36:[1,157]}),t(g,[2,39],{41:[1,158]}),t(g,[2,67],{39:[1,159]}),t(g,[2,38],{41:[1,160]}),t(g,[2,61],{36:[1,161]}),t(g,[2,62],{36:[1,162]}),t(g,[2,68],{39:[1,163]}),t(g,[2,52],{33:[1,164]}),t(g,[2,63],{39:[1,165]}),t(g,[2,51],{33:[1,166]}),t(g,[2,57],{36:[1,167]}),t(g,[2,58],{36:[1,168]}),t(g,[2,64],{39:[1,169]}),{34:[1,170]},{34:[1,171]},{34:[1,172]},{40:173,42:p,43:f,44:y},{34:[1,174]},{40:175,42:p,43:f,44:y},{34:[1,176]},{34:[1,177]},{34:[1,178]},{34:[1,179]},{34:[1,180]},{34:[1,181]},{34:[1,182]},{40:183,42:p,43:f,44:y},{34:[1,184]},{34:[1,185]},{34:[1,186]},{40:187,42:p,43:f,44:y},{34:[1,188]},{40:189,42:p,43:f,44:y},{34:[1,190]},{34:[1,191]},{34:[1,192]},{40:193,42:p,43:f,44:y},t(g,[2,83]),t(g,[2,84]),t(g,[2,81]),t(g,[2,82]),t(g,[2,86]),t(g,[2,85]),t(g,[2,90]),t(g,[2,89]),t(g,[2,88]),t(g,[2,87]),t(g,[2,92]),t(g,[2,91]),t(g,[2,80]),t(g,[2,79]),t(g,[2,78]),t(g,[2,77]),t(g,[2,75]),t(g,[2,76]),t(g,[2,74]),t(g,[2,73]),t(g,[2,72]),t(g,[2,71]),t(g,[2,69]),t(g,[2,70])],defaultActions:{9:[2,100],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,102],47:[2,5]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},v={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),49;case 1:return this.begin("type_directive"),50;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),52;case 4:return 51;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 35:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:case 15:break;case 16:return 6;case 17:return 37;case 18:return 33;case 19:return 39;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 36;case 25:return 29;case 26:return 30;case 27:return 35;case 28:return 32;case 29:return 27;case 30:case 31:return 10;case 32:return 9;case 33:return"CARET";case 34:this.begin("options");break;case 36:return 13;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 28;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch\b)/i,/^(?:order:)/i,/^(?:merge\b)/i,/^(?:cherry-pick\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+)/i,/^(?:[a-zA-Z][-_\./a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[35,36],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,37,40,41,42],inclusive:!0}}};function x(){this.yy={}}return b.lexer=v,x.prototype=b,b.Parser=x,new x}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?2b40").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/info/parser/info.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[6,9,10],r={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,r,i,n,a,s){switch(a.length,n){case 1:return i;case 4:break;case 6:i.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},i={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function n(){this.yy={}}return r.lexer=i,n.prototype=r,r.Parser=n,new n}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?c5f1").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/pie/parser/pie.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,4],r=[1,5],i=[1,6],n=[1,7],a=[1,9],s=[1,11,13,15,17,19,20,26,27,28,29],o=[2,5],c=[1,6,11,13,15,17,19,20,26,27,28,29],l=[26,27,28],h=[2,8],u=[1,18],d=[1,19],g=[1,20],p=[1,21],f=[1,22],y=[1,23],m=[1,28],b=[6,26,27,28,29],v={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:i.setShowData(!0);break;case 7:this.$=a[o-1];break;case 9:i.addSection(a[o-1],i.cleanupValue(a[o]));break;case 10:this.$=a[o].trim(),i.setDiagramTitle(this.$);break;case 11:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 12:case 13:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 14:i.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(a[o],"type_directive");break;case 23:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,21:8,26:r,27:i,28:n,29:a},{1:[3]},{3:10,4:2,5:3,6:e,21:8,26:r,27:i,28:n,29:a},{3:11,4:2,5:3,6:e,21:8,26:r,27:i,28:n,29:a},t(s,o,{7:12,8:[1,13]}),t(c,[2,18]),t(c,[2,19]),t(c,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(l,h,{21:8,9:16,10:17,5:24,1:[2,3],11:u,13:d,15:g,17:p,19:f,20:y,29:a}),t(s,o,{7:25}),{23:26,24:[1,27],32:m},t([24,32],[2,22]),t(s,[2,6]),{4:29,26:r,27:i,28:n},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(l,[2,13]),t(l,[2,14]),t(l,[2,15]),t(l,h,{21:8,9:16,10:17,5:24,1:[2,4],11:u,13:d,15:g,17:p,19:f,20:y,29:a}),t(b,[2,16]),{25:34,31:[1,35]},t(b,[2,24]),t(s,[2,7]),t(l,[2,9]),t(l,[2,10]),t(l,[2,11]),t(l,[2,12]),{23:36,32:m},{32:[2,23]},t(b,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},x={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};function k(){this.yy={}}return v.lexer=x,k.prototype=v,v.Parser=k,new k}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?a3fa").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/requirement/parser/requirementDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,5],i=[1,6],n=[1,7],a=[1,8],s=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],o=[1,22],c=[2,13],l=[1,26],h=[1,27],u=[1,28],d=[1,29],g=[1,30],p=[1,31],f=[1,24],y=[1,32],m=[1,33],b=[1,36],v=[71,72],x=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],k=[1,56],_=[1,57],C=[1,58],T=[1,59],E=[1,60],w=[1,61],S=[1,62],A=[62,63],B=[1,74],D=[1,70],L=[1,71],O=[1,72],I=[1,73],N=[1,75],F=[1,79],R=[1,80],j=[1,77],M=[1,78],P=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],z={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 6:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 7:case 8:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 9:i.parseDirective("%%{","open_directive");break;case 10:i.parseDirective(a[o],"type_directive");break;case 11:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 12:i.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:i.addRequirement(a[o-3],a[o-4]);break;case 20:i.setNewReqId(a[o-2]);break;case 21:i.setNewReqText(a[o-2]);break;case 22:i.setNewReqRisk(a[o-2]);break;case 23:i.setNewReqVerifyMethod(a[o-2]);break;case 26:this.$=i.RequirementType.REQUIREMENT;break;case 27:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=i.RiskLevel.LOW_RISK;break;case 33:this.$=i.RiskLevel.MED_RISK;break;case 34:this.$=i.RiskLevel.HIGH_RISK;break;case 35:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=i.VerifyType.VERIFY_TEST;break;case 39:i.addElement(a[o-3]);break;case 40:i.setNewElementType(a[o-2]);break;case 41:i.setNewElementDocRef(a[o-2]);break;case 44:i.addRelationship(a[o-2],a[o],a[o-4]);break;case 45:i.addRelationship(a[o-2],a[o-4],a[o]);break;case 46:this.$=i.Relationships.CONTAINS;break;case 47:this.$=i.Relationships.COPIES;break;case 48:this.$=i.Relationships.DERIVES;break;case 49:this.$=i.Relationships.SATISFIES;break;case 50:this.$=i.Relationships.VERIFIES;break;case 51:this.$=i.Relationships.REFINES;break;case 52:this.$=i.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:4,14:r,16:i,18:n,19:a},{1:[3]},{3:10,4:2,5:[1,9],6:e,9:4,14:r,16:i,18:n,19:a},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},t(s,[2,8]),{20:[2,9]},{3:16,4:2,6:e,9:4,14:r,16:i,18:n,19:a},{1:[2,2]},{4:21,5:o,7:17,8:c,9:4,14:r,16:i,18:n,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:h,42:u,43:d,44:g,45:p,53:f,71:y,72:m},{11:34,12:[1,35],22:b},t([12,22],[2,10]),t(s,[2,6]),t(s,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:o,7:38,8:c,9:4,14:r,16:i,18:n,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:h,42:u,43:d,44:g,45:p,53:f,71:y,72:m},{4:21,5:o,7:39,8:c,9:4,14:r,16:i,18:n,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:h,42:u,43:d,44:g,45:p,53:f,71:y,72:m},{4:21,5:o,7:40,8:c,9:4,14:r,16:i,18:n,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:h,42:u,43:d,44:g,45:p,53:f,71:y,72:m},{4:21,5:o,7:41,8:c,9:4,14:r,16:i,18:n,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:h,42:u,43:d,44:g,45:p,53:f,71:y,72:m},{4:21,5:o,7:42,8:c,9:4,14:r,16:i,18:n,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:h,42:u,43:d,44:g,45:p,53:f,71:y,72:m},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},t(v,[2,26]),t(v,[2,27]),t(v,[2,28]),t(v,[2,29]),t(v,[2,30]),t(v,[2,31]),t(x,[2,55]),t(x,[2,56]),t(s,[2,4]),{13:51,21:[1,52]},t(s,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:k,65:_,66:C,67:T,68:E,69:w,70:S},{61:63,64:k,65:_,66:C,67:T,68:E,69:w,70:S},{11:64,22:b},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},t(A,[2,46]),t(A,[2,47]),t(A,[2,48]),t(A,[2,49]),t(A,[2,50]),t(A,[2,51]),t(A,[2,52]),{63:[1,68]},t(s,[2,5]),{5:B,29:69,30:D,33:L,35:O,37:I,39:N},{5:F,39:R,55:76,56:j,58:M},{32:81,71:y,72:m},{32:82,71:y,72:m},t(P,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:B,29:87,30:D,33:L,35:O,37:I,39:N},t(P,[2,25]),t(P,[2,39]),{31:[1,88]},{31:[1,89]},{5:F,39:R,55:90,56:j,58:M},t(P,[2,43]),t(P,[2,44]),t(P,[2,45]),{32:91,71:y,72:m},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},t(P,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},t(P,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:B,29:116,30:D,33:L,35:O,37:I,39:N},{5:B,29:117,30:D,33:L,35:O,37:I,39:N},{5:B,29:118,30:D,33:L,35:O,37:I,39:N},{5:B,29:119,30:D,33:L,35:O,37:I,39:N},{5:F,39:R,55:120,56:j,58:M},{5:F,39:R,55:121,56:j,58:M},t(P,[2,20]),t(P,[2,21]),t(P,[2,22]),t(P,[2,23]),t(P,[2,40]),t(P,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},$={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return e.yytext=e.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/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,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}};function q(){this.yy={}}return z.lexer=$,q.prototype=z,z.Parser=q,new q}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?ebf4").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/sequence/parser/sequenceDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,3],i=[1,5],n=[1,7],a=[2,5],s=[1,15],o=[1,17],c=[1,18],l=[1,19],h=[1,21],u=[1,22],d=[1,23],g=[1,29],p=[1,30],f=[1,31],y=[1,32],m=[1,33],b=[1,34],v=[1,35],x=[1,36],k=[1,37],_=[1,38],C=[1,39],T=[1,40],E=[1,43],w=[1,44],S=[1,45],A=[1,46],B=[1,47],D=[1,48],L=[1,51],O=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],I=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,53,58,59,60,61,69,79],N=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,52,53,58,59,60,61,69,79],F=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,51,53,58,59,60,61,69,79],R=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,53,58,59,60,61,69,79],j=[67,68,69],M=[1,121],P=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],z={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,openDirective:11,typeDirective:12,closeDirective:13,":":14,argDirective:15,participant:16,actor:17,AS:18,restOfLine:19,participant_actor:20,signal:21,autonumber:22,NUM:23,off:24,activate:25,deactivate:26,note_statement:27,links_statement:28,link_statement:29,properties_statement:30,details_statement:31,title:32,legacy_title:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,loop:39,end:40,rect:41,opt:42,alt:43,else_sections:44,par:45,par_sections:46,critical:47,option_sections:48,break:49,option:50,and:51,else:52,note:53,placement:54,text2:55,over:56,actor_pair:57,links:58,link:59,properties:60,details:61,spaceList:62,",":63,left_of:64,right_of:65,signaltype:66,"+":67,"-":68,ACTOR:69,SOLID_OPEN_ARROW:70,DOTTED_OPEN_ARROW:71,SOLID_ARROW:72,DOTTED_ARROW:73,SOLID_CROSS:74,DOTTED_CROSS:75,SOLID_POINT:76,DOTTED_POINT:77,TXT:78,open_directive:79,type_directive:80,arg_directive:81,close_directive:82,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",14:":",16:"participant",18:"AS",19:"restOfLine",20:"participant_actor",22:"autonumber",23:"NUM",24:"off",25:"activate",26:"deactivate",32:"title",33:"legacy_title",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",39:"loop",40:"end",41:"rect",42:"opt",43:"alt",45:"par",47:"critical",49:"break",50:"option",51:"and",52:"else",53:"note",56:"over",58:"links",59:"link",60:"properties",61:"details",63:",",64:"left_of",65:"right_of",67:"+",68:"-",69:"ACTOR",70:"SOLID_OPEN_ARROW",71:"DOTTED_OPEN_ARROW",72:"SOLID_ARROW",73:"DOTTED_ARROW",74:"SOLID_CROSS",75:"DOTTED_CROSS",76:"SOLID_POINT",77:"DOTTED_POINT",78:"TXT",79:"open_directive",80:"type_directive",81:"arg_directive",82:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[48,1],[48,4],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[62,2],[62,1],[57,3],[57,1],[54,1],[54,1],[21,5],[21,5],[21,4],[17,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[55,1],[11,1],[12,1],[15,1],[13,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:return i.apply(a[o]),a[o];case 5:case 9:this.$=[];break;case 6:a[o-1].push(a[o]),this.$=a[o-1];break;case 7:case 8:case 56:this.$=a[o];break;case 12:a[o-3].type="addParticipant",a[o-3].description=i.parseMessage(a[o-1]),this.$=a[o-3];break;case 13:a[o-1].type="addParticipant",this.$=a[o-1];break;case 14:a[o-3].type="addActor",a[o-3].description=i.parseMessage(a[o-1]),this.$=a[o-3];break;case 15:a[o-1].type="addActor",this.$=a[o-1];break;case 17:this.$={type:"sequenceIndex",sequenceIndex:Number(a[o-2]),sequenceIndexStep:Number(a[o-1]),sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(a[o-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:i.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:a[o-1]};break;case 22:this.$={type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:a[o-1]};break;case 28:i.setDiagramTitle(a[o].substring(6)),this.$=a[o].substring(6);break;case 29:i.setDiagramTitle(a[o].substring(7)),this.$=a[o].substring(7);break;case 30:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 31:case 32:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 33:a[o-1].unshift({type:"loopStart",loopText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.LOOP_START}),a[o-1].push({type:"loopEnd",loopText:a[o-2],signalType:i.LINETYPE.LOOP_END}),this.$=a[o-1];break;case 34:a[o-1].unshift({type:"rectStart",color:i.parseMessage(a[o-2]),signalType:i.LINETYPE.RECT_START}),a[o-1].push({type:"rectEnd",color:i.parseMessage(a[o-2]),signalType:i.LINETYPE.RECT_END}),this.$=a[o-1];break;case 35:a[o-1].unshift({type:"optStart",optText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.OPT_START}),a[o-1].push({type:"optEnd",optText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.OPT_END}),this.$=a[o-1];break;case 36:a[o-1].unshift({type:"altStart",altText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.ALT_START}),a[o-1].push({type:"altEnd",signalType:i.LINETYPE.ALT_END}),this.$=a[o-1];break;case 37:a[o-1].unshift({type:"parStart",parText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.PAR_START}),a[o-1].push({type:"parEnd",signalType:i.LINETYPE.PAR_END}),this.$=a[o-1];break;case 38:a[o-1].unshift({type:"criticalStart",criticalText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.CRITICAL_START}),a[o-1].push({type:"criticalEnd",signalType:i.LINETYPE.CRITICAL_END}),this.$=a[o-1];break;case 39:a[o-1].unshift({type:"breakStart",breakText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.BREAK_START}),a[o-1].push({type:"breakEnd",optText:i.parseMessage(a[o-2]),signalType:i.LINETYPE.BREAK_END}),this.$=a[o-1];break;case 42:this.$=a[o-3].concat([{type:"option",optionText:i.parseMessage(a[o-1]),signalType:i.LINETYPE.CRITICAL_OPTION},a[o]]);break;case 44:this.$=a[o-3].concat([{type:"and",parText:i.parseMessage(a[o-1]),signalType:i.LINETYPE.PAR_AND},a[o]]);break;case 46:this.$=a[o-3].concat([{type:"else",altText:i.parseMessage(a[o-1]),signalType:i.LINETYPE.ALT_ELSE},a[o]]);break;case 47:this.$=[a[o-1],{type:"addNote",placement:a[o-2],actor:a[o-1].actor,text:a[o]}];break;case 48:a[o-2]=[].concat(a[o-1],a[o-1]).slice(0,2),a[o-2][0]=a[o-2][0].actor,a[o-2][1]=a[o-2][1].actor,this.$=[a[o-1],{type:"addNote",placement:i.PLACEMENT.OVER,actor:a[o-2].slice(0,2),text:a[o]}];break;case 49:this.$=[a[o-1],{type:"addLinks",actor:a[o-1].actor,text:a[o]}];break;case 50:this.$=[a[o-1],{type:"addALink",actor:a[o-1].actor,text:a[o]}];break;case 51:this.$=[a[o-1],{type:"addProperties",actor:a[o-1].actor,text:a[o]}];break;case 52:this.$=[a[o-1],{type:"addDetails",actor:a[o-1].actor,text:a[o]}];break;case 55:this.$=[a[o-2],a[o]];break;case 57:this.$=i.PLACEMENT.LEFTOF;break;case 58:this.$=i.PLACEMENT.RIGHTOF;break;case 59:this.$=[a[o-4],a[o-1],{type:"addMessage",from:a[o-4].actor,to:a[o-1].actor,signalType:a[o-3],msg:a[o]},{type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:a[o-1]}];break;case 60:this.$=[a[o-4],a[o-1],{type:"addMessage",from:a[o-4].actor,to:a[o-1].actor,signalType:a[o-3],msg:a[o]},{type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:a[o-4]}];break;case 61:this.$=[a[o-3],a[o-1],{type:"addMessage",from:a[o-3].actor,to:a[o-1].actor,signalType:a[o-2],msg:a[o]}];break;case 62:this.$={type:"addParticipant",actor:a[o]};break;case 63:this.$=i.LINETYPE.SOLID_OPEN;break;case 64:this.$=i.LINETYPE.DOTTED_OPEN;break;case 65:this.$=i.LINETYPE.SOLID;break;case 66:this.$=i.LINETYPE.DOTTED;break;case 67:this.$=i.LINETYPE.SOLID_CROSS;break;case 68:this.$=i.LINETYPE.DOTTED_CROSS;break;case 69:this.$=i.LINETYPE.SOLID_POINT;break;case 70:this.$=i.LINETYPE.DOTTED_POINT;break;case 71:this.$=i.parseMessage(a[o].trim().substring(1));break;case 72:i.parseDirective("%%{","open_directive");break;case 73:i.parseDirective(a[o],"type_directive");break;case 74:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 75:i.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:e,5:r,6:4,7:i,11:6,79:n},{1:[3]},{3:8,4:e,5:r,6:4,7:i,11:6,79:n},{3:9,4:e,5:r,6:4,7:i,11:6,79:n},{3:10,4:e,5:r,6:4,7:i,11:6,79:n},t([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,47,49,53,58,59,60,61,69,79],a,{8:11}),{12:12,80:[1,13]},{80:[2,72]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,41:v,42:x,43:k,45:_,47:C,49:T,53:E,58:w,59:S,60:A,61:B,69:D,79:n},{13:49,14:[1,50],82:L},t([14,82],[2,73]),t(O,[2,6]),{6:41,10:52,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,41:v,42:x,43:k,45:_,47:C,49:T,53:E,58:w,59:S,60:A,61:B,69:D,79:n},t(O,[2,8]),t(O,[2,9]),{17:53,69:D},{17:54,69:D},{5:[1,55]},{5:[1,58],23:[1,56],24:[1,57]},{17:59,69:D},{17:60,69:D},{5:[1,61]},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},t(O,[2,28]),t(O,[2,29]),{35:[1,66]},{37:[1,67]},t(O,[2,32]),{19:[1,68]},{19:[1,69]},{19:[1,70]},{19:[1,71]},{19:[1,72]},{19:[1,73]},{19:[1,74]},t(O,[2,40]),{66:75,70:[1,76],71:[1,77],72:[1,78],73:[1,79],74:[1,80],75:[1,81],76:[1,82],77:[1,83]},{54:84,56:[1,85],64:[1,86],65:[1,87]},{17:88,69:D},{17:89,69:D},{17:90,69:D},{17:91,69:D},t([5,18,63,70,71,72,73,74,75,76,77,78],[2,62]),{5:[1,92]},{15:93,81:[1,94]},{5:[2,75]},t(O,[2,7]),{5:[1,96],18:[1,95]},{5:[1,98],18:[1,97]},t(O,[2,16]),{5:[1,100],23:[1,99]},{5:[1,101]},t(O,[2,20]),{5:[1,102]},{5:[1,103]},t(O,[2,23]),t(O,[2,24]),t(O,[2,25]),t(O,[2,26]),t(O,[2,27]),t(O,[2,30]),t(O,[2,31]),t(I,a,{8:104}),t(I,a,{8:105}),t(I,a,{8:106}),t(N,a,{44:107,8:108}),t(F,a,{46:109,8:110}),t(R,a,{48:111,8:112}),t(I,a,{8:113}),{17:116,67:[1,114],68:[1,115],69:D},t(j,[2,63]),t(j,[2,64]),t(j,[2,65]),t(j,[2,66]),t(j,[2,67]),t(j,[2,68]),t(j,[2,69]),t(j,[2,70]),{17:117,69:D},{17:119,57:118,69:D},{69:[2,57]},{69:[2,58]},{55:120,78:M},{55:122,78:M},{55:123,78:M},{55:124,78:M},t(P,[2,10]),{13:125,82:L},{82:[2,74]},{19:[1,126]},t(O,[2,13]),{19:[1,127]},t(O,[2,15]),{5:[1,128]},t(O,[2,18]),t(O,[2,19]),t(O,[2,21]),t(O,[2,22]),{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[1,129],41:v,42:x,43:k,45:_,47:C,49:T,53:E,58:w,59:S,60:A,61:B,69:D,79:n},{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[1,130],41:v,42:x,43:k,45:_,47:C,49:T,53:E,58:w,59:S,60:A,61:B,69:D,79:n},{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[1,131],41:v,42:x,43:k,45:_,47:C,49:T,53:E,58:w,59:S,60:A,61:B,69:D,79:n},{40:[1,132]},{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[2,45],41:v,42:x,43:k,45:_,47:C,49:T,52:[1,133],53:E,58:w,59:S,60:A,61:B,69:D,79:n},{40:[1,134]},{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[2,43],41:v,42:x,43:k,45:_,47:C,49:T,51:[1,135],53:E,58:w,59:S,60:A,61:B,69:D,79:n},{40:[1,136]},{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[2,41],41:v,42:x,43:k,45:_,47:C,49:T,50:[1,137],53:E,58:w,59:S,60:A,61:B,69:D,79:n},{4:s,5:o,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:h,25:u,26:d,27:24,28:25,29:26,30:27,31:28,32:g,33:p,34:f,36:y,38:m,39:b,40:[1,138],41:v,42:x,43:k,45:_,47:C,49:T,53:E,58:w,59:S,60:A,61:B,69:D,79:n},{17:139,69:D},{17:140,69:D},{55:141,78:M},{55:142,78:M},{55:143,78:M},{63:[1,144],78:[2,56]},{5:[2,49]},{5:[2,71]},{5:[2,50]},{5:[2,51]},{5:[2,52]},{5:[1,145]},{5:[1,146]},{5:[1,147]},t(O,[2,17]),t(O,[2,33]),t(O,[2,34]),t(O,[2,35]),t(O,[2,36]),{19:[1,148]},t(O,[2,37]),{19:[1,149]},t(O,[2,38]),{19:[1,150]},t(O,[2,39]),{55:151,78:M},{55:152,78:M},{5:[2,61]},{5:[2,47]},{5:[2,48]},{17:153,69:D},t(P,[2,11]),t(O,[2,12]),t(O,[2,14]),t(N,a,{8:108,44:154}),t(F,a,{8:110,46:155}),t(R,a,{8:112,48:156}),{5:[2,59]},{5:[2,60]},{78:[2,55]},{40:[2,46]},{40:[2,44]},{40:[2,42]}],defaultActions:{7:[2,72],8:[2,1],9:[2,2],10:[2,3],51:[2,75],86:[2,57],87:[2,58],94:[2,74],120:[2,49],121:[2,71],122:[2,50],123:[2,51],124:[2,52],141:[2,61],142:[2,47],143:[2,48],151:[2,59],152:[2,60],153:[2,55],154:[2,46],155:[2,44],156:[2,42]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},$={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),79;case 1:return this.begin("type_directive"),80;case 2:return this.popState(),this.begin("arg_directive"),14;case 3:return this.popState(),this.popState(),82;case 4:return 81;case 5:case 52:case 65:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 23;case 12:return this.begin("ID"),16;case 13:return this.begin("ID"),20;case 14:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),69;case 15:return this.popState(),this.popState(),this.begin("LINE"),18;case 16:return this.popState(),this.popState(),5;case 17:return this.begin("LINE"),39;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),52;case 22:return this.begin("LINE"),45;case 23:return this.begin("LINE"),51;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),50;case 26:return this.begin("LINE"),49;case 27:return this.popState(),19;case 28:return 40;case 29:return 64;case 30:return 65;case 31:return 58;case 32:return 59;case 33:return 60;case 34:return 61;case 35:return 56;case 36:return 53;case 37:return this.begin("ID"),25;case 38:return this.begin("ID"),26;case 39:return 32;case 40:return 33;case 41:return this.begin("acc_title"),34;case 42:return this.popState(),"acc_title_value";case 43:return this.begin("acc_descr"),36;case 44:return this.popState(),"acc_descr_value";case 45:this.begin("acc_descr_multiline");break;case 46:this.popState();break;case 47:return"acc_descr_multiline_value";case 48:return 7;case 49:return 22;case 50:return 24;case 51:return 63;case 53:return e.yytext=e.yytext.trim(),69;case 54:return 72;case 55:return 73;case 56:return 70;case 57:return 71;case 58:return 74;case 59:return 75;case 60:return 76;case 61:return 77;case 62:return 78;case 63:return 67;case 64:return 68;case 66:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/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,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[46,47],inclusive:!1},acc_descr:{rules:[44],inclusive:!1},acc_title:{rules:[42],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,14],inclusive:!1},ALIAS:{rules:[7,8,15,16],inclusive:!1},LINE:{rules:[7,8,27],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,45,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66],inclusive:!0}}};function q(){this.yy={}}return z.lexer=$,q.prototype=z,z.Parser=q,new q}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?e940").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/state/parser/stateDiagram.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,3],i=[1,5],n=[1,7],a=[2,5],s=[1,15],o=[1,17],c=[1,19],l=[1,20],h=[1,21],u=[1,22],d=[1,33],g=[1,23],p=[1,24],f=[1,25],y=[1,26],m=[1,27],b=[1,30],v=[1,31],x=[1,32],k=[1,35],_=[1,36],C=[1,37],T=[1,38],E=[1,34],w=[1,41],S=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],A=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],B=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],D=[4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],L={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,idStatement:11,DESCR:12,"--\x3e":13,HIDE_EMPTY:14,scale:15,WIDTH:16,COMPOSIT_STATE:17,STRUCT_START:18,STRUCT_STOP:19,STATE_DESCR:20,AS:21,ID:22,FORK:23,JOIN:24,CHOICE:25,CONCURRENT:26,note:27,notePosition:28,NOTE_TEXT:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,openDirective:36,typeDirective:37,closeDirective:38,":":39,argDirective:40,direction_tb:41,direction_bt:42,direction_rl:43,direction_lr:44,eol:45,";":46,EDGE_STATE:47,left_of:48,right_of:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",12:"DESCR",13:"--\x3e",14:"HIDE_EMPTY",15:"scale",16:"WIDTH",17:"COMPOSIT_STATE",18:"STRUCT_START",19:"STRUCT_STOP",20:"STATE_DESCR",21:"AS",22:"ID",23:"FORK",24:"JOIN",25:"CHOICE",26:"CONCURRENT",27:"note",29:"NOTE_TEXT",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",39:":",41:"direction_tb",42:"direction_bt",43:"direction_rl",44:"direction_lr",46:";",47:"EDGE_STATE",48:"left_of",49:"right_of",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[45,1],[45,1],[11,1],[11,1],[28,1],[28,1],[36,1],[37,1],[40,1],[38,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 4:return i.setRootDoc(a[o]),a[o];case 5:this.$=[];break;case 6:"nl"!=a[o]&&(a[o-1].push(a[o]),this.$=a[o-1]);break;case 7:case 8:case 39:case 40:this.$=a[o];break;case 9:this.$="nl";break;case 10:this.$={stmt:"state",id:a[o],type:"default",description:""};break;case 11:this.$={stmt:"state",id:a[o-1],type:"default",description:i.trimColon(a[o])};break;case 12:this.$={stmt:"relation",state1:{stmt:"state",id:a[o-2],type:"default",description:""},state2:{stmt:"state",id:a[o],type:"default",description:""}};break;case 13:this.$={stmt:"relation",state1:{stmt:"state",id:a[o-3],type:"default",description:""},state2:{stmt:"state",id:a[o-1],type:"default",description:""},description:a[o].substr(1).trim()};break;case 17:this.$={stmt:"state",id:a[o-3],type:"default",description:"",doc:a[o-1]};break;case 18:var c=a[o],l=a[o-2].trim();if(a[o].match(":")){var h=a[o].split(":");c=h[0],l=[l,h[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 19:this.$={stmt:"state",id:a[o-3],type:"default",description:a[o-5],doc:a[o-1]};break;case 20:this.$={stmt:"state",id:a[o],type:"fork"};break;case 21:this.$={stmt:"state",id:a[o],type:"join"};break;case 22:this.$={stmt:"state",id:a[o],type:"choice"};break;case 23:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 24:this.$={stmt:"state",id:a[o-1].trim(),note:{position:a[o-2].trim(),text:a[o].trim()}};break;case 28:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 29:case 30:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 33:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 34:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 35:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 36:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 43:i.parseDirective("%%{","open_directive");break;case 44:i.parseDirective(a[o],"type_directive");break;case 45:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 46:i.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:r,6:4,7:i,36:6,50:n},{1:[3]},{3:8,4:e,5:r,6:4,7:i,36:6,50:n},{3:9,4:e,5:r,6:4,7:i,36:6,50:n},{3:10,4:e,5:r,6:4,7:i,36:6,50:n},t([1,4,5,14,15,17,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],a,{8:11}),{37:12,51:[1,13]},{51:[2,43]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:o,6:28,9:14,10:16,11:18,14:c,15:l,17:h,20:u,22:d,23:g,24:p,25:f,26:y,27:m,30:29,31:b,33:v,35:x,36:6,41:k,42:_,43:C,44:T,47:E,50:n},{38:39,39:[1,40],53:w},t([39,53],[2,44]),t(S,[2,6]),{6:28,10:42,11:18,14:c,15:l,17:h,20:u,22:d,23:g,24:p,25:f,26:y,27:m,30:29,31:b,33:v,35:x,36:6,41:k,42:_,43:C,44:T,47:E,50:n},t(S,[2,8]),t(S,[2,9]),t(S,[2,10],{12:[1,43],13:[1,44]}),t(S,[2,14]),{16:[1,45]},t(S,[2,16],{18:[1,46]}),{21:[1,47]},t(S,[2,20]),t(S,[2,21]),t(S,[2,22]),t(S,[2,23]),{28:48,29:[1,49],48:[1,50],49:[1,51]},t(S,[2,26]),t(S,[2,27]),{32:[1,52]},{34:[1,53]},t(S,[2,30]),t(A,[2,39]),t(A,[2,40]),t(S,[2,33]),t(S,[2,34]),t(S,[2,35]),t(S,[2,36]),t(B,[2,31]),{40:54,52:[1,55]},t(B,[2,46]),t(S,[2,7]),t(S,[2,11]),{11:56,22:d,47:E},t(S,[2,15]),t(D,a,{8:57}),{22:[1,58]},{22:[1,59]},{21:[1,60]},{22:[2,41]},{22:[2,42]},t(S,[2,28]),t(S,[2,29]),{38:61,53:w},{53:[2,45]},t(S,[2,12],{12:[1,62]}),{4:s,5:o,6:28,9:14,10:16,11:18,14:c,15:l,17:h,19:[1,63],20:u,22:d,23:g,24:p,25:f,26:y,27:m,30:29,31:b,33:v,35:x,36:6,41:k,42:_,43:C,44:T,47:E,50:n},t(S,[2,18],{18:[1,64]}),{29:[1,65]},{22:[1,66]},t(B,[2,32]),t(S,[2,13]),t(S,[2,17]),t(D,a,{8:67}),t(S,[2,24]),t(S,[2,25]),{4:s,5:o,6:28,9:14,10:16,11:18,14:c,15:l,17:h,19:[1,68],20:u,22:d,23:g,24:p,25:f,26:y,27:m,30:29,31:b,33:v,35:x,36:6,41:k,42:_,43:C,44:T,47:E,50:n},t(S,[2,19])],defaultActions:{7:[2,43],8:[2,1],9:[2,2],10:[2,3],50:[2,41],51:[2,42],55:[2,45]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},O={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:case 33:return 41;case 1:case 34:return 42;case 2:case 35:return 43;case 3:case 36:return 44;case 4:return this.begin("open_directive"),50;case 5:return this.begin("type_directive"),51;case 6:return this.popState(),this.begin("arg_directive"),39;case 7:return this.popState(),this.popState(),53;case 8:return 52;case 9:case 10:case 12:case 13:case 14:case 15:case 46:case 52:break;case 11:case 66:return 5;case 16:return this.pushState("SCALE"),15;case 17:return 16;case 18:case 24:case 40:case 43:this.popState();break;case 19:return this.begin("acc_title"),31;case 20:return this.popState(),"acc_title_value";case 21:return this.begin("acc_descr"),33;case 22:return this.popState(),"acc_descr_value";case 23:this.begin("acc_descr_multiline");break;case 25:return"acc_descr_multiline_value";case 26:this.pushState("STATE");break;case 27:case 30:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),23;case 28:case 31:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 29:case 32:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),25;case 37:this.begin("STATE_STRING");break;case 38:return this.popState(),this.pushState("STATE_ID"),"AS";case 39:case 54:return this.popState(),"ID";case 41:return"STATE_DESCR";case 42:return 17;case 44:return this.popState(),this.pushState("struct"),18;case 45:return this.popState(),19;case 47:return this.begin("NOTE"),27;case 48:return this.popState(),this.pushState("NOTE_ID"),48;case 49:return this.popState(),this.pushState("NOTE_ID"),49;case 50:this.popState(),this.pushState("FLOATING_NOTE");break;case 51:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 53:return"NOTE_TEXT";case 55:return this.popState(),this.pushState("NOTE_TEXT"),22;case 56:return this.popState(),e.yytext=e.yytext.substr(2).trim(),29;case 57:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),29;case 58:case 59:return 7;case 60:return 14;case 61:return 47;case 62:return 22;case 63:return e.yytext=e.yytext.trim(),12;case 64:return 13;case 65:return 26;case 67:return"INVALID"}},rules:[/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[13,14],inclusive:!1},close_directive:{rules:[13,14],inclusive:!1},arg_directive:{rules:[7,8,13,14],inclusive:!1},type_directive:{rules:[6,7,13,14],inclusive:!1},open_directive:{rules:[5,13,14],inclusive:!1},struct:{rules:[13,14,26,33,34,35,36,45,46,47,61,62,63,64,65],inclusive:!1},FLOATING_NOTE_ID:{rules:[54],inclusive:!1},FLOATING_NOTE:{rules:[51,52,53],inclusive:!1},NOTE_TEXT:{rules:[56,57],inclusive:!1},NOTE_ID:{rules:[55],inclusive:!1},NOTE:{rules:[48,49,50],inclusive:!1},acc_descr_multiline:{rules:[24,25],inclusive:!1},acc_descr:{rules:[22],inclusive:!1},acc_title:{rules:[20],inclusive:!1},SCALE:{rules:[17,18],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[39],inclusive:!1},STATE_STRING:{rules:[40,41],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[13,14,27,28,29,30,31,32,37,38,42,43,44],inclusive:!1},ID:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,12,14,15,16,19,21,23,26,44,47,58,59,60,61,62,63,64,66,67],inclusive:!0}}};function I(){this.yy={}}return L.lexer=O,I.prototype=L,L.Parser=I,new I}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?a3b8").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/diagrams/user-journey/parser/journey.jison":(t,e,r)=>{t=r.nmd(t);var i=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,5],i=[6,9,11,17,18,20,22,23,24,26],n=[1,15],a=[1,16],s=[1,17],o=[1,18],c=[1,19],l=[1,20],h=[1,24],u=[4,6,9,11,17,18,20,22,23,24,26],d={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,r,i,n,a,s){var o=a.length-1;switch(n){case 1:return a[o-1];case 3:case 7:case 8:this.$=[];break;case 4:a[o-1].push(a[o]),this.$=a[o-1];break;case 5:case 6:this.$=a[o];break;case 11:i.setDiagramTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 12:this.$=a[o].trim(),i.setAccTitle(this.$);break;case 13:case 14:this.$=a[o].trim(),i.setAccDescription(this.$);break;case 15:i.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 16:i.addTask(a[o-1],a[o]),this.$="task";break;case 18:i.parseDirective("%%{","open_directive");break;case 19:i.parseDirective(a[o],"type_directive");break;case 20:a[o]=a[o].trim().replace(/'/g,'"'),i.parseDirective(a[o],"arg_directive");break;case 21:i.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,26:r},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:r},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:n,18:a,20:s,22:o,23:c,24:l,26:r},{1:[2,2]},{14:22,15:[1,23],29:h},t([15,29],[2,19]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:21,10:25,12:4,17:n,18:a,20:s,22:o,23:c,24:l,26:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,26]},{21:[1,27]},t(i,[2,14]),t(i,[2,15]),{25:[1,28]},t(i,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(i,[2,16]),t(u,[2,9]),{14:32,29:h},{29:[2,20]},{11:[1,33]},t(u,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],s=this.table,o="",c=0,l=0,h=0,u=2,d=1,g=a.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,k,_,C,T,E,w,S,A,B={};;){if(_=r[r.length-1],this.defaultActions[_]?C=this.defaultActions[_]:(null==x&&(x=v()),C=s[_]&&s[_][x]),void 0===C||!C.length||!C[0]){var D="";for(E in A=[],s[_])this.terminals_[E]&&E>u&&A.push("'"+this.terminals_[E]+"'");D=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==d?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(D,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:A})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(C[0]){case 1:r.push(x),n.push(p.yytext),a.push(p.yylloc),r.push(C[1]),x=null,k?(x=k,k=null):(l=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,h>0&&h--);break;case 2:if(w=this.productions_[C[1]][1],B.$=n[n.length-w],B._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},b&&(B._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(B,[o,l,c,f.yy,C[1],n,a].concat(g))))return T;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[C[1]][0]),n.push(B.$),a.push(B._$),S=s[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},g={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;ae[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\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,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};function p(){this.yy={}}return d.lexer=g,p.prototype=d,d.Parser=p,new p}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var i=r("?0f62").readFileSync(r("./node_modules/path-browserify/index.js").normalize(t[1]),"utf8");return e.parser.parse(i)},r.c[r.s]===t&&e.main(process.argv.slice(1))},"./src/accessibility.js":(t,e,r)=>{"use strict";function i(t,e,r){if(void 0!==e.insert){var i=t.getAccTitle(),n=t.getAccDescription();e.attr("role","img").attr("aria-labelledby","chart-title-"+r+" chart-desc-"+r),e.insert("desc",":first-child").attr("id","chart-desc-"+r).text(n),e.insert("title",":first-child").attr("id","chart-title-"+r).text(i)}}r.r(e),r.d(e,{default:()=>i})},"./src/commonDb.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{clear:()=>l,default:()=>y,getAccDescription:()=>g,getAccTitle:()=>u,getDiagramTitle:()=>f,setAccDescription:()=>d,setAccTitle:()=>h,setDiagramTitle:()=>p});var i=r("./src/diagrams/common/common.js"),n=r("./src/config.js"),a="",s="",o="",c=function(t){return(0,i.sanitizeText)(t,(0,n.getConfig)())},l=function(){a="",o="",s=""},h=function(t){a=c(t).replace(/^\s+/g,"")},u=function(){return a||s},d=function(t){o=c(t).replace(/\n\s+/g,"\n")},g=function(){return o},p=function(t){s=c(t)},f=function(){return s};const y={setAccTitle:h,getAccTitle:u,setDiagramTitle:p,getDiagramTitle:f,getAccDescription:g,setAccDescription:d,clear:l}},"./src/config.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{addDirective:()=>k,defaultConfig:()=>l,getConfig:()=>v,getSiteConfig:()=>m,reset:()=>_,sanitize:()=>x,saveConfigFromInitialize:()=>f,setConfig:()=>b,setSiteConfig:()=>p,updateCurrentConfig:()=>g,updateSiteConfig:()=>y});var i=r("./src/utils.js"),n=r("./src/logger.js"),a=r("./src/themes/index.js"),s=r("./src/defaultConfig.js");function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}var c,l=Object.freeze(s.default),h=(0,i.assignWithDepth)({},l),u=[],d=(0,i.assignWithDepth)({},l),g=function(t,e){for(var r=(0,i.assignWithDepth)({},t),n={},s=0;s-1||e[r].indexOf(">")>-1||e[r].indexOf("url(data:")>-1)&&delete e[r],"object"===o(e[r])&&t(e[r])}))},k=function(t){t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),u.push(t),g(h,u)},_=function(){g(h,u=[])}},"./src/dagre-wrapper/clusters.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{clear:()=>g,getClusterTitleWidth:()=>d,insertCluster:()=>u,positionCluster:()=>p});var i=r("./src/dagre-wrapper/intersect/intersect-rect.js"),n=r("./src/logger.js"),a=r("./src/dagre-wrapper/createLabel.js"),s=r("d3"),o=r("./src/config.js"),c=r("./src/diagrams/common/common.js"),l={rect:function(t,e){n.log.trace("Creating subgraph rect for ",e.id,e);var r=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),l=r.insert("rect",":first-child"),h=r.insert("g").attr("class","cluster-label"),u=h.node().appendChild((0,a.default)(e.labelText,e.labelStyle,void 0,!0)),d=u.getBBox();if((0,c.evaluate)((0,o.getConfig)().flowchart.htmlLabels)){var g=u.children[0],p=(0,s.select)(u);d=g.getBoundingClientRect(),p.attr("width",d.width),p.attr("height",d.height)}var f=0*e.padding,y=f/2,m=e.width<=d.width+f?d.width+f:e.width;e.width<=d.width+f?e.diff=(d.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,n.log.trace("Data ",e,JSON.stringify(e)),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-m/2).attr("y",e.y-e.height/2-y).attr("width",m).attr("height",e.height+f),h.attr("transform","translate("+(e.x-d.width/2)+", "+(e.y-e.height/2+e.padding/3)+")");var b=l.node().getBBox();return e.width=b.width,e.height=b.height,e.intersect=function(t){return(0,i.default)(e,t)},r},roundedWithTitle:function(t,e){var r=t.insert("g").attr("class",e.classes).attr("id",e.id),n=r.insert("rect",":first-child"),l=r.insert("g").attr("class","cluster-label"),h=r.append("rect"),u=l.node().appendChild((0,a.default)(e.labelText,e.labelStyle,void 0,!0)),d=u.getBBox();if((0,c.evaluate)((0,o.getConfig)().flowchart.htmlLabels)){var g=u.children[0],p=(0,s.select)(u);d=g.getBoundingClientRect(),p.attr("width",d.width),p.attr("height",d.height)}d=u.getBBox();var f=0*e.padding,y=f/2,m=e.width<=d.width+e.padding?d.width+e.padding:e.width;e.width<=d.width+e.padding?e.diff=(d.width+0*e.padding-e.width)/2:e.diff=-e.padding/2,n.attr("class","outer").attr("x",e.x-m/2-y).attr("y",e.y-e.height/2-y).attr("width",m+f).attr("height",e.height+f),h.attr("class","inner").attr("x",e.x-m/2-y).attr("y",e.y-e.height/2-y+d.height-1).attr("width",m+f).attr("height",e.height+f-d.height-3),l.attr("transform","translate("+(e.x-d.width/2)+", "+(e.y-e.height/2-e.padding/3+((0,c.evaluate)((0,o.getConfig)().flowchart.htmlLabels)?5:3))+")");var b=n.node().getBBox();return e.height=b.height,e.intersect=function(t){return(0,i.default)(e,t)},r},noteGroup:function(t,e){var r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),a=0*e.padding,s=a/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-s).attr("y",e.y-e.height/2-s).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");var o=n.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return(0,i.default)(e,t)},r},divider:function(t,e){var r=t.insert("g").attr("class",e.classes).attr("id",e.id),n=r.insert("rect",":first-child"),a=0*e.padding,s=a/2;n.attr("class","divider").attr("x",e.x-e.width/2-s).attr("y",e.y-e.height/2).attr("width",e.width+a).attr("height",e.height+a);var o=n.node().getBBox();return e.width=o.width,e.height=o.height,e.diff=-e.padding/2,e.intersect=function(t){return(0,i.default)(e,t)},r}},h={},u=function(t,e){n.log.trace("Inserting cluster");var r=e.shape||"rect";h[e.id]=l[r](t,e)},d=function(t,e){var r=(0,a.default)(e.labelText,e.labelStyle,void 0,!0);t.node().appendChild(r);var i=r.getBBox().width;return t.node().removeChild(r),i},g=function(){h={}},p=function(t){n.log.info("Position cluster ("+t.id+", "+t.x+", "+t.y+")"),h[t.id].attr("transform","translate("+t.x+", "+t.y+")")}},"./src/dagre-wrapper/createLabel.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>c});var i=r("d3"),n=r("./src/logger.js"),a=r("./src/config.js"),s=r("./src/diagrams/common/common.js");function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}const c=function(t,e,r,c){var l,h,u,d,g,p,f=t||"";if("object"===o(f)&&(f=f[0]),(0,s.evaluate)((0,a.getConfig)().flowchart.htmlLabels))return f=f.replace(/\\n|\n/g,"
"),n.log.info("vertexText"+f),l={isNode:c,label:f.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(t){return"")})),labelStyle:e.replace("fill:","color:")},u=(0,i.select)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),d=u.append("xhtml:div"),g=l.label,p=l.isNode?"nodeLabel":"edgeLabel",d.html('"+g+""),(h=l.labelStyle)&&d.attr("style",h),d.style("display","inline-block"),d.style("white-space","nowrap"),d.attr("xmlns","http://www.w3.org/1999/xhtml"),u.node();var y=document.createElementNS("http://www.w3.org/2000/svg","text");y.setAttribute("style",e.replace("color:","fill:"));var m=[];m="string"==typeof f?f.split(/\\n|\n|/gi):Array.isArray(f)?f:[];for(var b=0;b{"use strict";r.r(e),r.d(e,{clear:()=>u,insertEdge:()=>m,insertEdgeLabel:()=>d,intersection:()=>f,positionEdgeLabel:()=>p});var i=r("./src/logger.js"),n=r("./src/dagre-wrapper/createLabel.js"),a=r("d3"),s=r("./src/config.js"),o=r("./src/utils.js"),c=r("./src/diagrams/common/common.js"),l={},h={},u=function(){l={},h={}},d=function(t,e){var r=(0,n.default)(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),o=i.insert("g").attr("class","label");o.node().appendChild(r);var u,d=r.getBBox();if((0,c.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var p=r.children[0],f=(0,a.select)(r);d=p.getBoundingClientRect(),f.attr("width",d.width),f.attr("height",d.height)}if(o.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),l[e.id]=i,e.width=d.width,e.height=d.height,e.startLabelLeft){var y=(0,n.default)(e.startLabelLeft,e.labelStyle),m=t.insert("g").attr("class","edgeTerminals"),b=m.insert("g").attr("class","inner");u=b.node().appendChild(y);var v=y.getBBox();b.attr("transform","translate("+-v.width/2+", "+-v.height/2+")"),h[e.id]||(h[e.id]={}),h[e.id].startLeft=m,g(u,e.startLabelLeft)}if(e.startLabelRight){var x=(0,n.default)(e.startLabelRight,e.labelStyle),k=t.insert("g").attr("class","edgeTerminals"),_=k.insert("g").attr("class","inner");u=k.node().appendChild(x),_.node().appendChild(x);var C=x.getBBox();_.attr("transform","translate("+-C.width/2+", "+-C.height/2+")"),h[e.id]||(h[e.id]={}),h[e.id].startRight=k,g(u,e.startLabelRight)}if(e.endLabelLeft){var T=(0,n.default)(e.endLabelLeft,e.labelStyle),E=t.insert("g").attr("class","edgeTerminals"),w=E.insert("g").attr("class","inner");u=w.node().appendChild(T);var S=T.getBBox();w.attr("transform","translate("+-S.width/2+", "+-S.height/2+")"),E.node().appendChild(T),h[e.id]||(h[e.id]={}),h[e.id].endLeft=E,g(u,e.endLabelLeft)}if(e.endLabelRight){var A=(0,n.default)(e.endLabelRight,e.labelStyle),B=t.insert("g").attr("class","edgeTerminals"),D=B.insert("g").attr("class","inner");u=D.node().appendChild(A);var L=A.getBBox();D.attr("transform","translate("+-L.width/2+", "+-L.height/2+")"),B.node().appendChild(A),h[e.id]||(h[e.id]={}),h[e.id].endRight=B,g(u,e.endLabelRight)}};function g(t,e){(0,s.getConfig)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}var p=function(t,e){i.log.info("Moving label abc78 ",t.id,t.label,l[t.id]);var r=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){var n=l[t.id],a=t.x,s=t.y;if(r){var c=o.default.calcLabelPosition(r);i.log.info("Moving label from (",a,",",s,") to (",c.x,",",c.y,") abc78")}n.attr("transform","translate("+a+", "+s+")")}if(t.startLabelLeft){var u=h[t.id].startLeft,d=t.x,g=t.y;if(r){var p=o.default.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);d=p.x,g=p.y}u.attr("transform","translate("+d+", "+g+")")}if(t.startLabelRight){var f=h[t.id].startRight,y=t.x,m=t.y;if(r){var b=o.default.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);y=b.x,m=b.y}f.attr("transform","translate("+y+", "+m+")")}if(t.endLabelLeft){var v=h[t.id].endLeft,x=t.x,k=t.y;if(r){var _=o.default.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);x=_.x,k=_.y}v.attr("transform","translate("+x+", "+k+")")}if(t.endLabelRight){var C=h[t.id].endRight,T=t.x,E=t.y;if(r){var w=o.default.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);T=w.x,E=w.y}C.attr("transform","translate("+T+", "+E+")")}},f=function(t,e,r){i.log.warn("intersection calc abc89:\n outsidePoint: ".concat(JSON.stringify(e),"\n insidePoint : ").concat(JSON.stringify(r),"\n node : x:").concat(t.x," y:").concat(t.y," w:").concat(t.width," h:").concat(t.height));var n=t.x,a=t.y,s=Math.abs(n-r.x),o=t.width/2,c=r.xMath.abs(n-e.x)*l){var d=r.y=s||a>=o}(e,t)||a)i.log.warn("abc88 outside",t,n),n=t,a||r.push(t);else{var s=f(e,n,t);i.log.warn("abc88 inside",t,n,s),i.log.warn("abc88 intersection",s);var o=!1;r.forEach((function(t){o=o||t.x===s.x&&t.y===s.y})),r.find((function(t){return t.x===s.x&&t.y===s.y}))?i.log.warn("abc88 no intersect",s,r):r.push(s),a=!0}})),i.log.warn("abc88 returning points",r),r},m=function(t,e,r,n,o,c){var l=r.points,h=!1,u=c.node(e.v),d=c.node(e.w);i.log.info("abc88 InsertEdge: ",r),d.intersect&&u.intersect&&((l=l.slice(1,r.points.length-1)).unshift(u.intersect(l[0])),i.log.info("Last point",l[l.length-1],d,d.intersect(l[l.length-1])),l.push(d.intersect(l[l.length-1]))),r.toCluster&&(i.log.info("to cluster abc88",n[r.toCluster]),l=y(r.points,n[r.toCluster].node),h=!0),r.fromCluster&&(i.log.info("from cluster abc88",n[r.fromCluster]),l=y(l.reverse(),n[r.fromCluster].node).reverse(),h=!0);var g,p=l.filter((function(t){return!Number.isNaN(t.y)}));g=("graph"===o||"flowchart"===o)&&r.curve||a.curveBasis;var f,m=(0,a.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(g);switch(r.thickness){case"normal":f="edge-thickness-normal";break;case"thick":f="edge-thickness-thick";break;default:f=""}switch(r.pattern){case"solid":f+=" edge-pattern-solid";break;case"dotted":f+=" edge-pattern-dotted";break;case"dashed":f+=" edge-pattern-dashed"}var b=t.append("path").attr("d",m(p)).attr("id",r.id).attr("class"," "+f+(r.classes?" "+r.classes:"")).attr("style",r.style),v="";switch((0,s.getConfig)().state.arrowMarkerAbsolute&&(v=(v=(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),i.log.info("arrowTypeStart",r.arrowTypeStart),i.log.info("arrowTypeEnd",r.arrowTypeEnd),r.arrowTypeStart){case"arrow_cross":b.attr("marker-start","url("+v+"#"+o+"-crossStart)");break;case"arrow_point":b.attr("marker-start","url("+v+"#"+o+"-pointStart)");break;case"arrow_barb":b.attr("marker-start","url("+v+"#"+o+"-barbStart)");break;case"arrow_circle":b.attr("marker-start","url("+v+"#"+o+"-circleStart)");break;case"aggregation":b.attr("marker-start","url("+v+"#"+o+"-aggregationStart)");break;case"extension":b.attr("marker-start","url("+v+"#"+o+"-extensionStart)");break;case"composition":b.attr("marker-start","url("+v+"#"+o+"-compositionStart)");break;case"dependency":b.attr("marker-start","url("+v+"#"+o+"-dependencyStart)")}switch(r.arrowTypeEnd){case"arrow_cross":b.attr("marker-end","url("+v+"#"+o+"-crossEnd)");break;case"arrow_point":b.attr("marker-end","url("+v+"#"+o+"-pointEnd)");break;case"arrow_barb":b.attr("marker-end","url("+v+"#"+o+"-barbEnd)");break;case"arrow_circle":b.attr("marker-end","url("+v+"#"+o+"-circleEnd)");break;case"aggregation":b.attr("marker-end","url("+v+"#"+o+"-aggregationEnd)");break;case"extension":b.attr("marker-end","url("+v+"#"+o+"-extensionEnd)");break;case"composition":b.attr("marker-end","url("+v+"#"+o+"-compositionEnd)");break;case"dependency":b.attr("marker-end","url("+v+"#"+o+"-dependencyEnd)")}var x={};return h&&(x.updatedPath=l),x.originalPath=r.points,x}},"./src/dagre-wrapper/index.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{render:()=>f});var i=r("dagre"),n=r.n(i),a=r("graphlib"),s=r.n(a),o=r("./src/dagre-wrapper/markers.js"),c=r("./src/dagre-wrapper/shapes/util.js"),l=r("./src/dagre-wrapper/mermaid-graphlib.js"),h=r("./src/dagre-wrapper/nodes.js"),u=r("./src/dagre-wrapper/clusters.js"),d=r("./src/dagre-wrapper/edges.js"),g=r("./src/logger.js"),p=function t(e,r,i,a){g.log.info("Graph in recursive render: XXX",s().json.write(r),a);var o=r.graph().rankdir;g.log.trace("Dir in recursive render - dir:",o);var p=e.insert("g").attr("class","root");r.nodes()?g.log.info("Recursive render XXX",r.nodes()):g.log.info("No nodes found for",r),r.edges().length>0&&g.log.trace("Recursive edges",r.edge(r.edges()[0]));var f=p.insert("g").attr("class","clusters"),y=p.insert("g").attr("class","edgePaths"),m=p.insert("g").attr("class","edgeLabels"),b=p.insert("g").attr("class","nodes");r.nodes().forEach((function(e){var n=r.node(e);if(void 0!==a){var s=JSON.parse(JSON.stringify(a.clusterData));g.log.info("Setting data for cluster XXX (",e,") ",s,a),r.setNode(a.id,s),r.parent(e)||(g.log.trace("Setting parent",e,a.id),r.setParent(e,a.id,s))}if(g.log.info("(Insert) Node XXX"+e+": "+JSON.stringify(r.node(e))),n&&n.clusterNode){g.log.info("Cluster identified",e,n.width,r.node(e));var u=t(b,n.graph,i,r.node(e)),d=u.elem;(0,c.updateNodeBounds)(n,d),n.diff=u.diff||0,g.log.info("Node bounds (abc123)",e,n,n.width,n.x,n.y),(0,h.setNodeElem)(d,n),g.log.warn("Recursive render complete ",d,n)}else r.children(e).length>0?(g.log.info("Cluster - the non recursive path XXX",e,n.id,n,r),g.log.info((0,l.findNonClusterChild)(n.id,r)),l.clusterDb[n.id]={id:(0,l.findNonClusterChild)(n.id,r),node:n}):(g.log.info("Node - the non recursive path",e,n.id,n),(0,h.insertNode)(b,r.node(e),o))})),r.edges().forEach((function(t){var e=r.edge(t.v,t.w,t.name);g.log.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),g.log.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(r.edge(t))),g.log.info("Fix",l.clusterDb,"ids:",t.v,t.w,"Translateing: ",l.clusterDb[t.v],l.clusterDb[t.w]),(0,d.insertEdgeLabel)(m,e)})),r.edges().forEach((function(t){g.log.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),g.log.info("#############################################"),g.log.info("### Layout ###"),g.log.info("#############################################"),g.log.info(r),n().layout(r),g.log.info("Graph after layout:",s().json.write(r));var v=0;return(0,l.sortNodesByHierarchy)(r).forEach((function(t){var e=r.node(t);g.log.info("Position "+t+": "+JSON.stringify(r.node(t))),g.log.info("Position "+t+": ("+e.x,","+e.y,") width: ",e.width," height: ",e.height),e&&e.clusterNode?(0,h.positionNode)(e):r.children(t).length>0?((0,u.insertCluster)(f,e),l.clusterDb[e.id].node=e):(0,h.positionNode)(e)})),r.edges().forEach((function(t){var e=r.edge(t);g.log.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e),e);var n=(0,d.insertEdge)(y,t,e,l.clusterDb,i,r);(0,d.positionEdgeLabel)(e,n)})),r.nodes().forEach((function(t){var e=r.node(t);g.log.info(t,e.type,e.diff),"group"===e.type&&(v=e.diff)})),{elem:p,diff:v}},f=function(t,e,r,i,n){(0,o.default)(t,r,i,n),(0,h.clear)(),(0,d.clear)(),(0,u.clear)(),(0,l.clear)(),g.log.warn("Graph at first:",s().json.write(e)),(0,l.adjustClustersAndEdges)(e),g.log.warn("Graph after:",s().json.write(e)),p(t,e,i)}},"./src/dagre-wrapper/intersect/index.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>l});var i=r("./src/dagre-wrapper/intersect/intersect-node.js"),n=r.n(i),a=r("./src/dagre-wrapper/intersect/intersect-circle.js"),s=r("./src/dagre-wrapper/intersect/intersect-ellipse.js"),o=r("./src/dagre-wrapper/intersect/intersect-polygon.js"),c=r("./src/dagre-wrapper/intersect/intersect-rect.js");const l={node:n(),circle:a.default,ellipse:s.default,polygon:o.default,rect:c.default}},"./src/dagre-wrapper/intersect/intersect-circle.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});var i=r("./src/dagre-wrapper/intersect/intersect-ellipse.js");const n=function(t,e,r){return(0,i.default)(t,e,e,r)}},"./src/dagre-wrapper/intersect/intersect-ellipse.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t,e,r,i){var n=t.x,a=t.y,s=n-i.x,o=a-i.y,c=Math.sqrt(e*e*o*o+r*r*s*s),l=Math.abs(e*r*s/c);i.x{"use strict";function i(t,e){return t*e>0}r.r(e),r.d(e,{default:()=>n});const n=function(t,e,r,n){var a,s,o,c,l,h,u,d,g,p,f,y,m;if(a=e.y-t.y,o=t.x-e.x,l=e.x*t.y-t.x*e.y,g=a*r.x+o*r.y+l,p=a*n.x+o*n.y+l,!(0!==g&&0!==p&&i(g,p)||(s=n.y-r.y,c=r.x-n.x,h=n.x*r.y-r.x*n.y,u=s*t.x+c*t.y+h,d=s*e.x+c*e.y+h,0!==u&&0!==d&&i(u,d)||0==(f=a*c-s*o))))return y=Math.abs(f/2),{x:(m=o*h-c*l)<0?(m-y)/f:(m+y)/f,y:(m=s*l-a*h)<0?(m-y)/f:(m+y)/f}}},"./src/dagre-wrapper/intersect/intersect-node.js":t=>{t.exports=function(t,e){return t.intersect(e)}},"./src/dagre-wrapper/intersect/intersect-polygon.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});var i=r("./src/dagre-wrapper/intersect/intersect-line.js");const n=function(t,e,r){var n=t.x,a=t.y,s=[],o=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),c=Math.min(c,t.y)})):(o=Math.min(o,e.x),c=Math.min(c,e.y));for(var l=n-t.width/2-o,h=a-t.height/2-c,u=0;u1&&s.sort((function(t,e){var i=t.x-r.x,n=t.y-r.y,a=Math.sqrt(i*i+n*n),s=e.x-r.x,o=e.y-r.y,c=Math.sqrt(s*s+o*o);return a{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t,e){var r,i,n=t.x,a=t.y,s=e.x-n,o=e.y-a,c=t.width/2,l=t.height/2;return Math.abs(o)*c>Math.abs(s)*l?(o<0&&(l=-l),r=0===o?0:l*s/o,i=l):(s<0&&(c=-c),r=c,i=0===s?0:c*o/s),{x:n+r,y:a+i}}},"./src/dagre-wrapper/markers.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>a});var i=r("./src/logger.js"),n={extension:function(t,e,r){i.log.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:function(t,e){t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:function(t,e){t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:function(t,e){t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},point:function(t,e){t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:function(t,e){t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:function(t,e){t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:function(t,e){t.append("defs").append("marker").attr("id",e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}};const a=function(t,e,r,i){e.forEach((function(e){n[e](t,r,i)}))}},"./src/dagre-wrapper/mermaid-graphlib.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{adjustClustersAndEdges:()=>y,clear:()=>l,clusterDb:()=>s,extractDecendants:()=>d,extractor:()=>m,findNonClusterChild:()=>p,sortNodesByHierarchy:()=>v,validate:()=>g});var i=r("./src/logger.js"),n=r("graphlib"),a=r.n(n),s={},o={},c={},l=function(){o={},c={},s={}},h=function(t,e){return i.log.trace("In isDecendant",e," ",t," = ",o[e].indexOf(t)>=0),o[e].indexOf(t)>=0},u=function t(e,r,n,a){i.log.warn("Copying children of ",e,"root",a,"data",r.node(e),a);var s=r.children(e)||[];e!==a&&s.push(e),i.log.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach((function(s){if(r.children(s).length>0)t(s,r,n,a);else{var c=r.node(s);i.log.info("cp ",s," to ",a," with parent ",e),n.setNode(s,c),a!==r.parent(s)&&(i.log.warn("Setting parent",s,r.parent(s)),n.setParent(s,r.parent(s))),e!==a&&s!==e?(i.log.debug("Setting parent",s,e),n.setParent(s,e)):(i.log.info("In copy ",e,"root",a,"data",r.node(e),a),i.log.debug("Not Setting parent for node=",s,"cluster!==rootId",e!==a,"node!==clusterId",s!==e));var l=r.edges(s);i.log.debug("Copying Edges",l),l.forEach((function(t){i.log.info("Edge",t);var s=r.edge(t.v,t.w,t.name);i.log.info("Edge data",s,a);try{!function(t,e){return i.log.info("Decendants of ",e," is ",o[e]),i.log.info("Edge is ",t),t.v!==e&&t.w!==e&&(o[e]?(i.log.info("Here "),o[e].indexOf(t.v)>=0||!!h(t.v,e)||!!h(t.w,e)||o[e].indexOf(t.w)>=0):(i.log.debug("Tilt, ",e,",not in decendants"),!1))}(t,a)?i.log.info("Skipping copy of edge ",t.v,"--\x3e",t.w," rootId: ",a," clusterId:",e):(i.log.info("Copying as ",t.v,t.w,s,t.name),n.setEdge(t.v,t.w,s,t.name),i.log.info("newGraph edges ",n.edges(),n.edge(n.edges()[0])))}catch(t){i.log.error(t)}}))}i.log.debug("Removing node",s),r.removeNode(s)}))},d=function t(e,r){for(var i=r.children(e),n=[].concat(i),a=0;a0)return i.log.trace("The node ",e[r].v," is part of and edge even though it has children"),!1;if(t.children(e[r].w).length>0)return i.log.trace("The node ",e[r].w," is part of and edge even though it has children"),!1}return!0},p=function t(e,r){i.log.trace("Searching",e);var n=r.children(e);if(i.log.trace("Searching children of id ",e,n),n.length<1)return i.log.trace("This is a valid node",e),e;for(var a=0;a ",s),s}},f=function(t){return s[t]&&s[t].externalConnections&&s[t]?s[t].id:t},y=function(t,e){!t||e>10?i.log.debug("Opting out, no graph "):(i.log.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(i.log.warn("Cluster identified",e," Replacement id in edges: ",p(e,t)),o[e]=d(e,t),s[e]={id:p(e,t),clusterData:t.node(e)})})),t.nodes().forEach((function(e){var r=t.children(e),n=t.edges();r.length>0?(i.log.debug("Cluster identified",e,o),n.forEach((function(t){t.v!==e&&t.w!==e&&h(t.v,e)^h(t.w,e)&&(i.log.warn("Edge: ",t," leaves cluster ",e),i.log.warn("Decendants of XXX ",e,": ",o[e]),s[e].externalConnections=!0)}))):i.log.debug("Not a cluster ",e,o)})),t.edges().forEach((function(e){var r=t.edge(e);i.log.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),i.log.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));var n=e.v,a=e.w;if(i.log.warn("Fix XXX",s,"ids:",e.v,e.w,"Translateing: ",s[e.v]," --- ",s[e.w]),s[e.v]&&s[e.w]&&s[e.v]===s[e.w]){i.log.warn("Fixing and trixing link to self - removing XXX",e.v,e.w,e.name),i.log.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),n=f(e.v),a=f(e.w),t.removeEdge(e.v,e.w,e.name);var o=e.w+"---"+e.v;t.setNode(o,{domId:o,id:o,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});var c=JSON.parse(JSON.stringify(r)),l=JSON.parse(JSON.stringify(r));c.label="",c.arrowTypeEnd="none",l.label="",c.fromCluster=e.v,l.toCluster=e.v,t.setEdge(n,o,c,e.name+"-cyclic-special"),t.setEdge(o,a,l,e.name+"-cyclic-special")}else(s[e.v]||s[e.w])&&(i.log.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),n=f(e.v),a=f(e.w),t.removeEdge(e.v,e.w,e.name),n!==e.v&&(r.fromCluster=e.v),a!==e.w&&(r.toCluster=e.w),i.log.warn("Fix Replacing with XXX",n,a,e.name),t.setEdge(n,a,r,e.name))})),i.log.warn("Adjusted Graph",a().json.write(t)),m(t,0),i.log.trace(s))},m=function t(e,r){if(i.log.warn("extractor - ",r,a().json.write(e),e.children("D")),r>10)i.log.error("Bailing out");else{for(var n=e.nodes(),o=!1,c=0;c0}if(o){i.log.debug("Nodes = ",n,r);for(var d=0;d0){i.log.warn("Cluster without external connections, without a parent and with children",g,r);var p="TB"===e.graph().rankdir?"LR":"TB";s[g]&&s[g].clusterData&&s[g].clusterData.dir&&(p=s[g].clusterData.dir,i.log.warn("Fixing dir",s[g].clusterData.dir,p));var f=new(a().Graph)({multigraph:!0,compound:!0}).setGraph({rankdir:p,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));i.log.warn("Old graph before copy",a().json.write(e)),u(g,e,f,g),e.setNode(g,{clusterNode:!0,id:g,clusterData:s[g].clusterData,labelText:s[g].labelText,graph:f}),i.log.warn("New graph after copy node: (",g,")",a().json.write(f)),i.log.debug("Old graph after copy",a().json.write(e))}else i.log.warn("Cluster ** ",g," **not meeting the criteria !externalConnections:",!s[g].externalConnections," no parent: ",!e.parent(g)," children ",e.children(g)&&e.children(g).length>0,e.children("D"),r),i.log.debug(s);else i.log.debug("Not a cluster",g,r)}n=e.nodes(),i.log.warn("New list of nodes",n);for(var y=0;y{"use strict";r.r(e),r.d(e,{clear:()=>v,insertNode:()=>m,positionNode:()=>x,setNodeElem:()=>b});var i=r("d3"),n=r("./src/logger.js"),a=r("./src/dagre-wrapper/shapes/util.js"),s=r("./src/config.js"),o=r("./src/dagre-wrapper/intersect/index.js"),c=r("./src/dagre-wrapper/createLabel.js"),l=r("./src/dagre-wrapper/shapes/note.js"),h=r("./src/diagrams/class/svgDraw.js"),u=r("./src/diagrams/common/common.js");function d(t){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}function g(t,e,r,i){var a=[],s=function(t){a.push(t),a.push(0)},o=function(t){a.push(0),a.push(t)};e.includes("t")?(n.log.debug("add top border"),s(r)):o(r),e.includes("r")?(n.log.debug("add right border"),s(i)):o(i),e.includes("b")?(n.log.debug("add bottom border"),s(r)):o(r),e.includes("l")?(n.log.debug("add left border"),s(i)):o(i),t.attr("stroke-dasharray",a.join(" "))}var p=function(t,e,r){var i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=70,s=10;"LR"===r&&(n=10,s=70);var c=i.append("rect").attr("x",-1*n/2).attr("y",-1*s/2).attr("width",n).attr("height",s).attr("class","fork-join");return(0,a.updateNodeBounds)(e,c),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return o.default.rect(e,t)},i},f={question:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,s=r.bbox,c=s.width+e.padding+(s.height+e.padding),l=[{x:c/2,y:0},{x:c,y:-c/2},{x:c/2,y:-c},{x:0,y:-c/2}];n.log.info("Question main (Circle)");var h=(0,a.insertPolygonShape)(i,c,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return n.log.warn("Intersect called"),o.default.polygon(e,l,t)},i},rect:function(t,e){var r=(0,a.labelHelper)(t,e,"node "+e.classes,!0),i=r.shapeSvg,s=r.bbox,c=r.halfPadding;n.log.trace("Classes = ",e.classes);var l=i.insert("rect",":first-child"),h=s.width+e.padding,u=s.height+e.padding;if(l.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-s.width/2-c).attr("y",-s.height/2-c).attr("width",h).attr("height",u),e.props){var d=new Set(Object.keys(e.props));e.props.borders&&(g(l,e.props.borders,h,u),d.delete("borders")),d.forEach((function(t){n.log.warn("Unknown node property ".concat(t))}))}return(0,a.updateNodeBounds)(e,l),e.intersect=function(t){return o.default.rect(e,t)},i},labelRect:function(t,e){var r=(0,a.labelHelper)(t,e,"label",!0),i=r.shapeSvg;r.bbox,r.halfPadding,n.log.trace("Classes = ",e.classes);var s=i.insert("rect",":first-child");if(s.attr("width",0).attr("height",0),i.attr("class","label edgeLabel"),e.props){var c=new Set(Object.keys(e.props));e.props.borders&&(g(s,e.props.borders,0,0),c.delete("borders")),c.forEach((function(t){n.log.warn("Unknown node property ".concat(t))}))}return(0,a.updateNodeBounds)(e,s),e.intersect=function(t){return o.default.rect(e,t)},i},rectWithTitle:function(t,e){var r;r=e.classes?"node "+e.classes:"node default";var l,h=t.insert("g").attr("class",r).attr("id",e.domId||e.id),g=h.insert("rect",":first-child"),p=h.insert("line"),f=h.insert("g").attr("class","label"),y=e.labelText.flat?e.labelText.flat():e.labelText;l="object"===d(y)?y[0]:y,n.log.info("Label text abc79",l,y,"object"===d(y));var m=f.node().appendChild((0,c.default)(l,e.labelStyle,!0,!0)),b={width:0,height:0};if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var v=m.children[0],x=(0,i.select)(m);b=v.getBoundingClientRect(),x.attr("width",b.width),x.attr("height",b.height)}n.log.info("Text 2",y);var k=y.slice(1,y.length),_=m.getBBox(),C=f.node().appendChild((0,c.default)(k.join?k.join("
"):k,e.labelStyle,!0,!0));if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var T=C.children[0],E=(0,i.select)(C);b=T.getBoundingClientRect(),E.attr("width",b.width),E.attr("height",b.height)}var w=e.padding/2;return(0,i.select)(C).attr("transform","translate( "+(b.width>_.width?0:(_.width-b.width)/2)+", "+(_.height+w+5)+")"),(0,i.select)(m).attr("transform","translate( "+(b.width<_.width?0:-(_.width-b.width)/2)+", 0)"),b=f.node().getBBox(),f.attr("transform","translate("+-b.width/2+", "+(-b.height/2-w+3)+")"),g.attr("class","outer title-state").attr("x",-b.width/2-w).attr("y",-b.height/2-w).attr("width",b.width+e.padding).attr("height",b.height+e.padding),p.attr("class","divider").attr("x1",-b.width/2-w).attr("x2",b.width/2+w).attr("y1",-b.height/2-w+_.height+w).attr("y2",-b.height/2-w+_.height+w),(0,a.updateNodeBounds)(e,g),e.intersect=function(t){return o.default.rect(e,t)},h},choice:function(t,e){var r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);return r.insert("polygon",":first-child").attr("points",[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}].map((function(t){return t.x+","+t.y})).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return o.default.circle(e,14,t)},r},circle:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,s=r.bbox,c=r.halfPadding,l=i.insert("circle",":first-child");return l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",s.width/2+c).attr("width",s.width+e.padding).attr("height",s.height+e.padding),n.log.info("Circle main"),(0,a.updateNodeBounds)(e,l),e.intersect=function(t){return n.log.info("Circle intersect",e,s.width/2+c,t),o.default.circle(e,s.width/2+c,t)},i},doublecircle:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,s=r.bbox,c=r.halfPadding,l=i.insert("g",":first-child"),h=l.insert("circle"),u=l.insert("circle");return h.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",s.width/2+c+5).attr("width",s.width+e.padding+10).attr("height",s.height+e.padding+10),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",s.width/2+c).attr("width",s.width+e.padding).attr("height",s.height+e.padding),n.log.info("DoubleCircle main"),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return n.log.info("DoubleCircle intersect",e,s.width/2+c+5,t),o.default.circle(e,s.width/2+c+5,t)},i},stadium:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.height+e.padding,c=n.width+s/4+e.padding,l=i.insert("rect",":first-child").attr("style",e.style).attr("rx",s/2).attr("ry",s/2).attr("x",-c/2).attr("y",-s/2).attr("width",c).attr("height",s);return(0,a.updateNodeBounds)(e,l),e.intersect=function(t){return o.default.rect(e,t)},i},hexagon:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.height+e.padding,c=s/4,l=n.width+2*c+e.padding,h=[{x:c,y:0},{x:l-c,y:0},{x:l,y:-s/2},{x:l-c,y:-s},{x:c,y:-s},{x:0,y:-s/2}],u=(0,a.insertPolygonShape)(i,l,s,h);return u.attr("style",e.style),(0,a.updateNodeBounds)(e,u),e.intersect=function(t){return o.default.polygon(e,h,t)},i},rect_left_inv_arrow:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:-c/2,y:0},{x:s,y:0},{x:s,y:-c},{x:-c/2,y:-c},{x:0,y:-c/2}];return(0,a.insertPolygonShape)(i,s,c,l).attr("style",e.style),e.width=s+c,e.height=c,e.intersect=function(t){return o.default.polygon(e,l,t)},i},lean_right:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:-2*c/6,y:0},{x:s-c/6,y:0},{x:s+2*c/6,y:-c},{x:c/6,y:-c}],h=(0,a.insertPolygonShape)(i,s,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,l,t)},i},lean_left:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:2*c/6,y:0},{x:s+c/6,y:0},{x:s-2*c/6,y:-c},{x:-c/6,y:-c}],h=(0,a.insertPolygonShape)(i,s,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,l,t)},i},trapezoid:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:-2*c/6,y:0},{x:s+2*c/6,y:0},{x:s-c/6,y:-c},{x:c/6,y:-c}],h=(0,a.insertPolygonShape)(i,s,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,l,t)},i},inv_trapezoid:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:c/6,y:0},{x:s-c/6,y:0},{x:s+2*c/6,y:-c},{x:-2*c/6,y:-c}],h=(0,a.insertPolygonShape)(i,s,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,l,t)},i},rect_right_inv_arrow:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:0,y:0},{x:s+c/2,y:0},{x:s,y:-c/2},{x:s+c/2,y:-c},{x:0,y:-c}],h=(0,a.insertPolygonShape)(i,s,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,l,t)},i},cylinder:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=s/2,l=c/(2.5+s/50),h=n.height+l+e.padding,u="M 0,"+l+" a "+c+","+l+" 0,0,0 "+s+" 0 a "+c+","+l+" 0,0,0 "+-s+" 0 l 0,"+h+" a "+c+","+l+" 0,0,0 "+s+" 0 l 0,"+-h,d=i.attr("label-offset-y",l).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-s/2+","+-(h/2+l)+")");return(0,a.updateNodeBounds)(e,d),e.intersect=function(t){var r=o.default.rect(e,t),i=r.x-e.x;if(0!=c&&(Math.abs(i)e.height/2-l)){var n=l*l*(1-i*i/(c*c));0!=n&&(n=Math.sqrt(n)),n=l-n,t.y-e.y>0&&(n=-n),r.y+=n}return r},i},start:function(t,e){var r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),(0,a.updateNodeBounds)(e,i),e.intersect=function(t){return o.default.circle(e,7,t)},r},end:function(t,e){var r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=r.insert("circle",":first-child"),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),(0,a.updateNodeBounds)(e,n),e.intersect=function(t){return o.default.circle(e,7,t)},r},note:l.default,subroutine:function(t,e){var r=(0,a.labelHelper)(t,e,void 0,!0),i=r.shapeSvg,n=r.bbox,s=n.width+e.padding,c=n.height+e.padding,l=[{x:0,y:0},{x:s,y:0},{x:s,y:-c},{x:0,y:-c},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-c},{x:-8,y:-c},{x:-8,y:0}],h=(0,a.insertPolygonShape)(i,s,c,l);return h.attr("style",e.style),(0,a.updateNodeBounds)(e,h),e.intersect=function(t){return o.default.polygon(e,l,t)},i},fork:p,join:p,class_box:function(t,e){var r,n=e.padding/2;r=e.classes?"node "+e.classes:"node default";var l=t.insert("g").attr("class",r).attr("id",e.domId||e.id),d=l.insert("rect",":first-child"),g=l.insert("line"),p=l.insert("line"),f=0,y=4,m=l.insert("g").attr("class","label"),b=0,v=e.classData.annotations&&e.classData.annotations[0],x=e.classData.annotations[0]?"«"+e.classData.annotations[0]+"»":"",k=m.node().appendChild((0,c.default)(x,e.labelStyle,!0,!0)),_=k.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var C=k.children[0],T=(0,i.select)(k);_=C.getBoundingClientRect(),T.attr("width",_.width),T.attr("height",_.height)}e.classData.annotations[0]&&(y+=_.height+4,f+=_.width);var E=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&((0,s.getConfig)().flowchart.htmlLabels?E+="<"+e.classData.type+">":E+="<"+e.classData.type+">");var w=m.node().appendChild((0,c.default)(E,e.labelStyle,!0,!0));(0,i.select)(w).attr("class","classTitle");var S=w.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var A=w.children[0],B=(0,i.select)(w);S=A.getBoundingClientRect(),B.attr("width",S.width),B.attr("height",S.height)}y+=S.height+4,S.width>f&&(f=S.width);var D=[];e.classData.members.forEach((function(t){var r=(0,h.parseMember)(t),n=r.displayText;(0,s.getConfig)().flowchart.htmlLabels&&(n=n.replace(//g,">"));var a=m.node().appendChild((0,c.default)(n,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),o=a.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var l=a.children[0],d=(0,i.select)(a);o=l.getBoundingClientRect(),d.attr("width",o.width),d.attr("height",o.height)}o.width>f&&(f=o.width),y+=o.height+4,D.push(a)})),y+=8;var L=[];if(e.classData.methods.forEach((function(t){var r=(0,h.parseMember)(t),n=r.displayText;(0,s.getConfig)().flowchart.htmlLabels&&(n=n.replace(//g,">"));var a=m.node().appendChild((0,c.default)(n,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),o=a.getBBox();if((0,u.evaluate)((0,s.getConfig)().flowchart.htmlLabels)){var l=a.children[0],d=(0,i.select)(a);o=l.getBoundingClientRect(),d.attr("width",o.width),d.attr("height",o.height)}o.width>f&&(f=o.width),y+=o.height+4,L.push(a)})),y+=8,v){var O=(f-_.width)/2;(0,i.select)(k).attr("transform","translate( "+(-1*f/2+O)+", "+-1*y/2+")"),b=_.height+4}var I=(f-S.width)/2;return(0,i.select)(w).attr("transform","translate( "+(-1*f/2+I)+", "+(-1*y/2+b)+")"),b+=S.height+4,g.attr("class","divider").attr("x1",-f/2-n).attr("x2",f/2+n).attr("y1",-y/2-n+8+b).attr("y2",-y/2-n+8+b),b+=8,D.forEach((function(t){(0,i.select)(t).attr("transform","translate( "+-f/2+", "+(-1*y/2+b+4)+")"),b+=S.height+4})),b+=8,p.attr("class","divider").attr("x1",-f/2-n).attr("x2",f/2+n).attr("y1",-y/2-n+8+b).attr("y2",-y/2-n+8+b),b+=8,L.forEach((function(t){(0,i.select)(t).attr("transform","translate( "+-f/2+", "+(-1*y/2+b)+")"),b+=S.height+4})),d.attr("class","outer title-state").attr("x",-f/2-n).attr("y",-y/2-n).attr("width",f+e.padding).attr("height",y+e.padding),(0,a.updateNodeBounds)(e,d),e.intersect=function(t){return o.default.rect(e,t)},l}},y={},m=function(t,e,r){var i,n,a;e.link?("sandbox"===(0,s.getConfig)().securityLevel?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),n=f[e.shape](i,e,r)):i=n=f[e.shape](t,e,r),e.tooltip&&n.attr("title",e.tooltip),e.class&&n.attr("class","node default "+e.class),y[e.id]=i,e.haveCallback&&y[e.id].attr("class",y[e.id].attr("class")+" clickable")},b=function(t,e){y[e.id]=t},v=function(){y={}},x=function(t){var e=y[t.id];n.log.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");var r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r}},"./src/dagre-wrapper/shapes/note.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>s});var i=r("./src/dagre-wrapper/shapes/util.js"),n=r("./src/logger.js"),a=r("./src/dagre-wrapper/intersect/index.js");const s=function(t,e){var r=(0,i.labelHelper)(t,e,"node "+e.classes,!0),s=r.shapeSvg,o=r.bbox,c=r.halfPadding;n.log.info("Classes = ",e.classes);var l=s.insert("rect",":first-child");return l.attr("rx",e.rx).attr("ry",e.ry).attr("x",-o.width/2-c).attr("y",-o.height/2-c).attr("width",o.width+e.padding).attr("height",o.height+e.padding),(0,i.updateNodeBounds)(e,l),e.intersect=function(t){return a.default.rect(e,t)},s}},"./src/dagre-wrapper/shapes/util.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{insertPolygonShape:()=>h,labelHelper:()=>c,updateNodeBounds:()=>l});var i=r("./src/dagre-wrapper/createLabel.js"),n=r("./src/config.js"),a=r("./src/mermaidAPI.js"),s=r("d3"),o=r("./src/diagrams/common/common.js"),c=function(t,e,r,c){var l;l=r||"node default";var h=t.insert("g").attr("class",l).attr("id",e.domId||e.id),u=h.insert("g").attr("class","label").attr("style",e.labelStyle),d="string"==typeof e.labelText?e.labelText:e.labelText[0],g=u.node().appendChild((0,i.default)((0,o.sanitizeText)((0,a.decodeEntities)(d),(0,n.getConfig)()),e.labelStyle,!1,c)),p=g.getBBox();if((0,o.evaluate)((0,n.getConfig)().flowchart.htmlLabels)){var f=g.children[0],y=(0,s.select)(g);p=f.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}var m=e.padding/2;return u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),{shapeSvg:h,bbox:p,halfPadding:m,label:u}},l=function(t,e){var r=e.node().getBBox();t.width=r.width,t.height=r.height};function h(t,e,r,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}},"./src/defaultConfig.js":(t,e,r)=>{"use strict";function i(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);ro,default:()=>c});var s={theme:"default",themeVariables:r("./src/themes/index.js").default.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-d3"},sequence:{hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{arrowMarkerAbsolute:!1,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},state:{dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},gitGraph:{diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"}};s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,s.gitGraph.arrowMarkerAbsolute=s.arrowMarkerAbsolute;var o=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object.keys(e).reduce((function(n,s){return Array.isArray(e[s])?n:"object"===a(e[s])&&null!==e[s]?[].concat(i(n),[r+s],i(t(e[s],""))):[].concat(i(n),[r+s])}),[])}(s,"");const c=s},"./src/diagrams/c4/c4Db.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{ARROWTYPE:()=>X,LINETYPE:()=>G,PLACEMENT:()=>K,addComponent:()=>S,addContainer:()=>w,addContainerBoundary:()=>B,addDeploymentNode:()=>D,addPersonOrSystem:()=>E,addPersonOrSystemBoundary:()=>A,addRel:()=>T,autoWrap:()=>V,clear:()=>H,default:()=>Q,getBoundarys:()=>q,getC4BoundaryInRow:()=>R,getC4Shape:()=>z,getC4ShapeArray:()=>P,getC4ShapeInRow:()=>F,getC4ShapeKeys:()=>$,getC4Type:()=>k,getCurrentBoundaryParse:()=>j,getParentBoundaryParse:()=>M,getRels:()=>Y,getTitle:()=>W,parseDirective:()=>C,popBoundaryParseStack:()=>L,setC4Type:()=>_,setTitle:()=>J,setWrap:()=>U,updateElStyle:()=>O,updateLayoutConfig:()=>N,updateRelStyle:()=>I});var i=r("./src/mermaidAPI.js"),n=r("./src/config.js"),a=r("./src/diagrams/common/common.js"),s=r("./src/commonDb.js");function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var i,n,a=[],s=!0,o=!1;try{for(r=r.call(t);!(s=(i=r.next()).done)&&(a.push(i.value),!e||a.length!==e);s=!0);}catch(t){o=!0,n=t}finally{try{s||null==r.return||r.return()}finally{if(o)throw n}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return c(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r=1&&(v=i),n>=1&&(x=n)},F=function(){return v},R=function(){return x},j=function(){return g},M=function(){return p},P=function(t){return null==t?u:u.filter((function(e){return e.parentBoundary===t}))},z=function(t){return u.find((function(e){return e.alias===t}))},$=function(t){return Object.keys(P(t))},q=function(t){return null==t?f:f.filter((function(e){return e.parentBoundary===t}))},Y=function(){return y},W=function(){return m},U=function(t){b=t},V=function(){return b},H=function(){u=[],f=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],p="",g="global",d=[""],y=[],d=[""],m="",b=!1,v=4,x=2},G={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},X={FILLED:0,OPEN:1},K={LEFTOF:0,RIGHTOF:1,OVER:2},J=function(t){var e=(0,a.sanitizeText)(t,n.getConfig());m=e};const Q={addPersonOrSystem:E,addPersonOrSystemBoundary:A,addContainer:w,addContainerBoundary:B,addComponent:S,addDeploymentNode:D,popBoundaryParseStack:L,addRel:T,updateElStyle:O,updateRelStyle:I,updateLayoutConfig:N,autoWrap:V,setWrap:U,getC4ShapeArray:P,getC4Shape:z,getC4ShapeKeys:$,getBoundarys:q,getCurrentBoundaryParse:j,getParentBoundaryParse:M,getRels:Y,getTitle:W,getC4Type:k,getC4ShapeInRow:F,getC4BoundaryInRow:R,setAccTitle:s.setAccTitle,getAccTitle:s.getAccTitle,getAccDescription:s.getAccDescription,setAccDescription:s.setAccDescription,parseDirective:C,getConfig:function(){return n.getConfig().c4},clear:H,LINETYPE:G,ARROWTYPE:X,PLACEMENT:K,setTitle:J,setC4Type:_}},"./src/diagrams/c4/c4Renderer.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>N,draw:()=>I,drawBoundary:()=>w,drawC4ShapeArray:()=>S,drawRels:()=>L,setConf:()=>_});var i=r("d3"),n=r("./src/diagrams/c4/svgDraw.js"),a=r("./src/logger.js"),s=r("./src/diagrams/c4/parser/c4Diagram.jison"),o=r("./src/diagrams/common/common.js"),c=r("./src/diagrams/c4/c4Db.js"),l=r("./src/config.js"),h=r("./src/utils.js"),u=r("./src/accessibility.js");function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r=this.data.widthLimit||r>=this.data.widthLimit||this.nextData.cnt>b)&&(e=this.nextData.startx+t.margin+x.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=r=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=n=i+t.height,this.nextData.cnt=1),t.x=e,t.y=i,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",r,Math.max),this.updateVal(this.data,"stopy",n,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",r,Math.max),this.updateVal(this.nextData,"stopy",n,Math.max)}},{key:"init",value:function(){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},_(s.parser.yy.getConfig())}},{key:"bumpLastMargin",value:function(t){this.data.stopx+=t,this.data.stopy+=t}}]),t}(),_=function(t){(0,h.assignWithDepth)(x,t),t.fontFamily&&(x.personFontFamily=x.systemFontFamily=x.messageFontFamily=t.fontFamily),t.fontSize&&(x.personFontSize=x.systemFontSize=x.messageFontSize=t.fontSize),t.fontWeight&&(x.personFontWeight=x.systemFontWeight=x.messageFontWeight=t.fontWeight)},C=function(t,e){return{fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}},T=function(t){return{fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}};function E(t,e,r,i,n){if(!e[t].width)if(r)e[t].text=(0,h.wrapLabel)(e[t].text,n,i),e[t].textLines=e[t].text.split(o.default.lineBreakRegex).length,e[t].width=n,e[t].height=(0,h.calculateTextHeight)(e[t].text,i);else{var a=e[t].text.split(o.default.lineBreakRegex);e[t].textLines=a.length;var s=0;e[t].height=0,e[t].width=0;for(var c=0;c>",c),o.typeC4Shape.height=c.fontSize+2,o.typeC4Shape.Y=x.c4ShapePadding,a=o.typeC4Shape.Y+o.typeC4Shape.height-4,o.image={width:0,height:0,Y:0},o.typeC4Shape.text){case"person":case"external_person":o.image.width=48,o.image.height=48,o.image.Y=a,a=o.image.Y+o.image.height}o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=a,a=o.image.Y+o.image.height);var l=o.wrap&&x.wrap,u=x.width-2*x.c4ShapePadding,d=C(x,o.typeC4Shape.text);d.fontSize=d.fontSize+2,d.fontWeight="bold",E("label",o,l,d,u),o.label.Y=a+8,a=o.label.Y+o.label.height,o.type&&""!==o.type.text?(o.type.text="["+o.type.text+"]",E("type",o,l,C(x,o.typeC4Shape.text),u),o.type.Y=a+5,a=o.type.Y+o.type.height):o.techn&&""!==o.techn.text&&(o.techn.text="["+o.techn.text+"]",E("techn",o,l,C(x,o.techn.text),u),o.techn.Y=a+5,a=o.techn.Y+o.techn.height);var g=a,p=o.label.width;o.descr&&""!==o.descr.text&&(E("descr",o,l,C(x,o.typeC4Shape.text),u),o.descr.Y=a+20,a=o.descr.Y+o.descr.height,p=Math.max(o.label.width,o.descr.width),g=a-5*o.descr.textLines),p+=x.c4ShapePadding,o.width=Math.max(o.width||x.width,p,x.width),o.height=Math.max(o.height||x.height,g,x.height),o.margin=o.margin||x.c4ShapeMargin,t.insert(o),n.default.drawC4Shape(e,o,x)}t.bumpLastMargin(x.c4ShapeMargin)},A=f((function t(e,r){g(this,t),this.x=e,this.y=r})),B=function(t,e){var r=t.x,i=t.y,n=e.x,a=e.y,s=r+t.width/2,o=i+t.height/2,c=Math.abs(r-n),l=Math.abs(i-a),h=l/c,u=t.height/t.width,d=null;return i==a&&rn?d=new A(r,o):r==n&&ia&&(d=new A(s,i)),r>n&&i=h?new A(r,o+h*t.width/2):new A(s-c/l*t.height/2,i+t.height):r=h?new A(r+t.width,o+h*t.width/2):new A(s+c/l*t.height/2,i+t.height):ra?d=u>=h?new A(r+t.width,o-h*t.width/2):new A(s+t.height/2*c/l,i):r>n&&i>a&&(d=u>=h?new A(r,o-t.width/2*h):new A(s-t.height/2*c/l,i)),d},D=function(t,e){var r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;var i=B(t,r);return r.x=t.x+t.width/2,r.y=t.y+t.height/2,{startPoint:i,endPoint:B(e,r)}},L=function(t,e,r){var i,a,o=0,c=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return d(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var i=0,n=function(){};return{s:n,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw a}}}}(e);try{for(c.s();!(i=c.n()).done;){var l=i.value;o+=1;var u=l.wrap&&x.wrap,g={fontFamily:(a=x).messageFontFamily,fontSize:a.messageFontSize,fontWeight:a.messageFontWeight};"C4Dynamic"===s.parser.yy.getC4Type()&&(l.label.text=o+": "+l.label.text);var p=(0,h.calculateTextWidth)(l.label.text,g);E("label",l,u,g,p),l.techn&&""!==l.techn.text&&E("techn",l,u,g,p=(0,h.calculateTextWidth)(l.techn.text,g)),l.descr&&""!==l.descr.text&&E("descr",l,u,g,p=(0,h.calculateTextWidth)(l.descr.text,g));var f=r(l.from),y=r(l.to),m=D(f,y);l.startPoint=m.startPoint,l.endPoint=m.endPoint}}catch(t){c.e(t)}finally{c.f()}n.default.drawRels(t,e,x)};function O(t,e,r,i){var n=new k;n.data.widthLimit=r.data.widthLimit/Math.min(v,i.length);for(var a=0;a0&&S(n,t,b,_),e=o.alias;var C=s.parser.yy.getBoundarys(e);C.length>0&&O(t,e,n,C),"global"!==o.alias&&w(t,o,n),r.data.stopy=Math.max(n.data.stopy+x.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(n.data.stopx+x.c4ShapeMargin,r.data.stopx),y=Math.max(y,r.data.stopx),m=Math.max(m,r.data.stopy)}}var I=function(t,e){x=l.getConfig().c4;var r,o=l.getConfig().securityLevel;"sandbox"===o&&(r=(0,i.select)("#i"+e));var c="sandbox"===o?(0,i.select)(r.nodes()[0].contentDocument.body):(0,i.select)("body"),d=("sandbox"===o?r.nodes()[0].contentDocument:document,s.parser.yy);s.parser.yy.clear(),s.parser.yy.setWrap(x.wrap),s.parser.parse(t+"\n"),b=d.getC4ShapeInRow(),v=d.getC4BoundaryInRow(),a.log.debug("C:".concat(JSON.stringify(x,null,2)));var g="sandbox"===o?c.select('[id="'.concat(e,'"]')):(0,i.select)('[id="'.concat(e,'"]'));n.default.insertComputerIcon(g),n.default.insertDatabaseIcon(g),n.default.insertClockIcon(g);var p=new k;p.setData(x.diagramMarginX,x.diagramMarginX,x.diagramMarginY,x.diagramMarginY),p.data.widthLimit=screen.availWidth,y=x.diagramMarginX,m=x.diagramMarginY;var f=s.parser.yy.getTitle();s.parser.yy.getC4Type(),O(g,"",p,s.parser.yy.getBoundarys("")),n.default.insertArrowHead(g),n.default.insertArrowEnd(g),n.default.insertArrowCrossHead(g),n.default.insertArrowFilledHead(g),L(g,s.parser.yy.getRels(),s.parser.yy.getC4Shape),p.data.stopx=y,p.data.stopy=m;var _=p.data,C=_.stopy-_.starty+2*x.diagramMarginY,T=_.stopx-_.startx+2*x.diagramMarginX;f&&g.append("text").text(f).attr("x",(_.stopx-_.startx)/2-4*x.diagramMarginX).attr("y",_.starty+x.diagramMarginY),(0,h.configureSvgSize)(g,C,T,x.useMaxWidth);var E=f?60:0;g.attr("viewBox",_.startx-x.diagramMarginX+" -"+(x.diagramMarginY+E)+" "+T+" "+(C+E)),(0,u.default)(s.parser.yy,g,e),a.log.debug("models:",_)};const N={drawPersonOrSystemArray:S,drawBoundary:w,setConf:_,draw:I}},"./src/diagrams/c4/styles.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t){return".person {\n stroke: ".concat(t.personBorder,";\n fill: ").concat(t.personBkg,";\n }\n")}},"./src/diagrams/c4/svgDraw.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>E,drawC4Shape:()=>d,drawEmbeddedImage:()=>c,drawImage:()=>o,drawLabel:()=>h,drawRect:()=>s,drawRels:()=>u,drawText:()=>l,getNoteRect:()=>_,getTextObj:()=>k,insertArrowCrossHead:()=>x,insertArrowEnd:()=>m,insertArrowFilledHead:()=>b,insertArrowHead:()=>y,insertClockIcon:()=>f,insertComputerIcon:()=>p,insertDatabaseIcon:()=>g,insertDynamicNumber:()=>v});var i=r("./src/diagrams/common/common.js"),n=r("@braintree/sanitize-url");function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r0)switch(e.valign){case"top":case"start":c=function(){return Math.round(e.y+e.textMargin)};break;case"middle":case"center":c=function(){return Math.round(e.y+(r+n+e.textMargin)/2)};break;case"bottom":case"end":c=function(){return Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin)}}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="text-after-edge",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="text-before-edge",e.alignmentBaseline="middle"}for(var l=0;l0&&(n+=(u._groups||u)[0][0].getBBox().height,r=n),s.push(u)}return s},h=function(t,e){var r,i,n,a,s=t.append("polygon");return s.attr("points",(r=e.x)+","+(i=e.y)+" "+(r+(n=e.width))+","+i+" "+(r+n)+","+(i+(a=e.height)-7)+" "+(r+n-8.4)+","+(i+a)+" "+r+","+(i+a)),s.attr("class","labelBox"),e.y=e.y+e.height/2,l(t,e),s},u=function(t,e,r){var i,n=t.append("g"),s=0,o=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var i=0,n=function(){};return{s:n,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,o=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){c=!0,s=t},f:function(){try{o||null==r.return||r.return()}finally{if(c)throw s}}}}(e);try{for(o.s();!(i=o.n()).done;){var c=i.value,l=c.textColor?c.textColor:"#444444",h=c.lineColor?c.lineColor:"#444444",u=c.offsetX?parseInt(c.offsetX):0,d=c.offsetY?parseInt(c.offsetY):0;if(0===s){var g=n.append("line");g.attr("x1",c.startPoint.x),g.attr("y1",c.startPoint.y),g.attr("x2",c.endPoint.x),g.attr("y2",c.endPoint.y),g.attr("stroke-width","1"),g.attr("stroke",h),g.style("fill","none"),"rel_b"!==c.type&&g.attr("marker-end","url(#arrowhead)"),"birel"!==c.type&&"rel_b"!==c.type||g.attr("marker-start","url(#arrowend)"),s=-1}else{var p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",h).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",c.startPoint.x).replaceAll("starty",c.startPoint.y).replaceAll("controlx",c.startPoint.x+(c.endPoint.x-c.startPoint.x)/2-(c.endPoint.x-c.startPoint.x)/4).replaceAll("controly",c.startPoint.y+(c.endPoint.y-c.startPoint.y)/2).replaceAll("stopx",c.endPoint.x).replaceAll("stopy",c.endPoint.y)),"rel_b"!==c.type&&p.attr("marker-end","url(#arrowhead)"),"birel"!==c.type&&"rel_b"!==c.type||p.attr("marker-start","url(#arrowend)")}var f=r.messageFont();T(r)(c.label.text,n,Math.min(c.startPoint.x,c.endPoint.x)+Math.abs(c.endPoint.x-c.startPoint.x)/2+u,Math.min(c.startPoint.y,c.endPoint.y)+Math.abs(c.endPoint.y-c.startPoint.y)/2+d,c.label.width,c.label.height,{fill:l},f),c.techn&&""!==c.techn.text&&(f=r.messageFont(),T(r)("["+c.techn.text+"]",n,Math.min(c.startPoint.x,c.endPoint.x)+Math.abs(c.endPoint.x-c.startPoint.x)/2+u,Math.min(c.startPoint.y,c.endPoint.y)+Math.abs(c.endPoint.y-c.startPoint.y)/2+r.messageFontSize+5+d,Math.max(c.label.width,c.techn.width),c.techn.height,{fill:l,"font-style":"italic"},f))}}catch(t){o.e(t)}finally{o.f()}},d=function(t,e,r){var i=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],n=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",c="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":c="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":c="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}var l=t.append("g");l.attr("class","person-man");var h=_();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=e.x,h.y=e.y,h.fill=i,h.width=e.width,h.height=e.height,h.style="stroke:"+n+";stroke-width:0.5;",h.rx=2.5,h.ry=2.5,s(l,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",i).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",i).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}var u=C(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":o(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,c)}var d=r[e.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=a,T(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},d),(d=r[e.typeC4Shape.text+"Font"]()).fontColor=a,e.thchn&&""!==e.thchn.text?T(r)(e.thchn.text,l,e.x,e.y+e.thchn.Y,e.width,e.height,{fill:a,"font-style":"italic"},d):e.type&&""!==e.type.text&&T(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},d),e.descr&&""!==e.descr.text&&((d=r.personFont()).fontColor=a,T(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},d)),e.height},g=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},p=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},f=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},y=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},m=function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},b=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},v=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},x=function(t){var e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},k=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},_=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},C=function(t,e){return{fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}},T=function(){function t(t,e,r,i,a,s,o){n(e.append("text").attr("x",r+a/2).attr("y",i+s/2+5).style("text-anchor","middle").text(t),o)}function e(t,e,r,a,s,o,c,l){for(var h=l.fontSize,u=l.fontFamily,d=l.fontWeight,g=t.split(i.default.lineBreakRegex),p=0;p{"use strict";r.r(e),r.d(e,{addAnnotation:()=>w,addClass:()=>v,addMember:()=>S,addMembers:()=>A,addRelation:()=>E,bindFunctions:()=>N,cleanupLabel:()=>B,clear:()=>k,default:()=>P,getClass:()=>_,getClasses:()=>C,getRelations:()=>T,lineType:()=>F,lookUpDomId:()=>x,parseDirective:()=>m,relationType:()=>R,setClickEvent:()=>O,setCssClass:()=>D,setLink:()=>L});var i=r("d3"),n=r("./src/logger.js"),a=r("./src/config.js"),s=r("./src/diagrams/common/common.js"),o=r("./src/utils.js"),c=r("./src/mermaidAPI.js"),l=r("./src/commonDb.js");function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r0){var i=t.split("~");r=i[0],e=s.default.sanitizeText(i[1],a.getConfig())}return{className:r,type:e}},v=function(t){var e=b(t);void 0===g[e.className]&&(g[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:u+e.className+"-"+p},p++)},x=function(t){for(var e=Object.keys(g),r=0;r>")?i.annotations.push(y(n.substring(2,n.length-2))):n.indexOf(")")>0?i.methods.push(y(n)):n&&i.members.push(y(n))}},A=function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((function(e){return S(t,e)})))},B=function(t){return":"===t.substring(0,1)?s.default.sanitizeText(t.substr(1).trim(),a.getConfig()):y(t.trim())},D=function(t,e){t.split(",").forEach((function(t){var r=t;t[0].match(/\d/)&&(r=u+r),void 0!==g[r]&&g[r].cssClasses.push(e)}))},L=function(t,e,r){var i=a.getConfig();t.split(",").forEach((function(t){var n=t;t[0].match(/\d/)&&(n=u+n),void 0!==g[n]&&(g[n].link=o.default.formatUrl(e,i),"sandbox"===i.securityLevel?g[n].linkTarget="_top":g[n].linkTarget="string"==typeof r?y(r):"_blank")})),D(t,"clickable")},O=function(t,e,r){t.split(",").forEach((function(t){I(t,e,r),g[t].haveCallback=!0})),D(t,"clickable")},I=function(t,e,r){var i=a.getConfig(),n=t,s=x(n);if("loose"===i.securityLevel&&void 0!==e&&void 0!==g[n]){var c=[];if("string"==typeof r){c=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(var l=0;l{"use strict";r.r(e),r.d(e,{addClasses:()=>f,addRelations:()=>y,default:()=>x,draw:()=>b,setConf:()=>m});var i=r("d3"),n=(r("dagre"),r("graphlib")),a=r.n(n),s=r("./src/logger.js"),o=r("./src/diagrams/class/classDb.js"),c=r("./src/diagrams/class/parser/classDiagram.jison"),l=r("./src/config.js"),h=r("./src/dagre-wrapper/index.js"),u=r("./src/utils.js"),d=r("./src/diagrams/common/common.js"),g=r("./src/accessibility.js");c.parser.yy=o.default;var p={dividerMargin:10,padding:5,textHeight:10},f=function(t,e){var r=Object.keys(t);s.log.info("keys:",r),s.log.info(t),r.forEach((function(r){var i=t[r],n="";i.cssClasses.length>0&&(n=n+" "+i.cssClasses.join(" "));var a,o,c={labelStyle:""},h=void 0!==i.text?i.text:i.id;i.type,o="class_box",e.setNode(i.id,{labelStyle:c.labelStyle,shape:o,labelText:(a=h,d.default.sanitizeText(a,(0,l.getConfig)())),classData:i,rx:0,ry:0,class:n,style:c.style,id:i.id,domId:i.domId,haveCallback:i.haveCallback,link:i.link,width:"group"===i.type?500:void 0,type:i.type,padding:(0,l.getConfig)().flowchart.padding}),s.log.info("setNode",{labelStyle:c.labelStyle,shape:o,labelText:h,rx:0,ry:0,class:n,style:c.style,id:i.id,width:"group"===i.type?500:void 0,type:i.type,padding:(0,l.getConfig)().flowchart.padding})}))},y=function(t,e){var r=0;t.forEach((function(n){r++;var a={classes:"relation"};a.pattern=1==n.relation.lineType?"dashed":"solid",a.id="id"+r,"arrow_open"===n.type?a.arrowhead="none":a.arrowhead="normal",s.log.info(a,n),a.startLabelRight="none"===n.relationTitle1?"":n.relationTitle1,a.endLabelLeft="none"===n.relationTitle2?"":n.relationTitle2,a.arrowTypeStart=v(n.relation.type1),a.arrowTypeEnd=v(n.relation.type2);var o="",c="";if(void 0!==n.style){var h=(0,u.getStylesFromArray)(n.style);o=h.style,c=h.labelStyle}else o="fill:none";a.style=o,a.labelStyle=c,void 0!==n.interpolate?a.curve=(0,u.interpolateToCurve)(n.interpolate,i.curveLinear):void 0!==t.defaultInterpolate?a.curve=(0,u.interpolateToCurve)(t.defaultInterpolate,i.curveLinear):a.curve=(0,u.interpolateToCurve)(p.curve,i.curveLinear),n.text=n.title,void 0===n.text?void 0!==n.style&&(a.arrowheadStyle="fill: #333"):(a.arrowheadStyle="fill: #333",a.labelpos="c",(0,l.getConfig)().flowchart.htmlLabels?(a.labelType="html",a.label=''+n.text+""):(a.labelType="text",a.label=n.text.replace(d.default.lineBreakRegex,"\n"),void 0===n.style&&(a.style=a.style||"stroke: #333; stroke-width: 1.5px;fill:none"),a.labelStyle=a.labelStyle.replace("color:","fill:"))),e.setEdge(n.id1,n.id2,a,r)}))},m=function(t){Object.keys(t).forEach((function(e){p[e]=t[e]}))},b=function(t,e){s.log.info("Drawing class - ",e),o.default.clear(),c.parser.parse(t);var r=(0,l.getConfig)().flowchart,n=(0,l.getConfig)().securityLevel;s.log.info("config:",r);var d,p=r.nodeSpacing||50,m=r.rankSpacing||50,b=new(a().Graph)({multigraph:!0,compound:!0}).setGraph({rankdir:o.default.getDirection(),nodesep:p,ranksep:m,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),v=o.default.getClasses(),x=o.default.getRelations();s.log.info(x),f(v,b,e),y(x,b),"sandbox"===n&&(d=(0,i.select)("#i"+e));var k="sandbox"===n?(0,i.select)(d.nodes()[0].contentDocument.body):(0,i.select)("body"),_=k.select('[id="'.concat(e,'"]'));_.attr("xmlns:xlink","http://www.w3.org/1999/xlink");var C=k.select("#"+e+" g");if((0,h.render)(C,b,["aggregation","extension","composition","dependency"],"classDiagram",e),(0,u.setupGraphViewbox)(b,_,r.diagramPadding,r.useMaxWidth),!r.htmlLabels)for(var T="sandbox"===n?d.nodes()[0].contentDocument:document,E=T.querySelectorAll('[id="'+e+'"] .edgeLabel .label'),w=0;w{"use strict";r.r(e),r.d(e,{default:()=>x,draw:()=>v,setConf:()=>b});var i=r("d3"),n=r("dagre"),a=r.n(n),s=r("graphlib"),o=r.n(s),c=r("./src/logger.js"),l=r("./src/diagrams/class/classDb.js"),h=r("./src/diagrams/class/parser/classDiagram.jison"),u=r("./src/diagrams/class/svgDraw.js"),d=r("./src/utils.js"),g=r("./src/config.js"),p=r("./src/accessibility.js");h.parser.yy=l.default;var f={},y={dividerMargin:10,padding:5,textHeight:10},m=function(t){var e=Object.entries(f).find((function(e){return e[1].label===t}));if(e)return e[0]},b=function(t){Object.keys(t).forEach((function(e){y[e]=t[e]}))},v=function(t,e){f={},h.parser.yy.clear(),h.parser.parse(t),c.log.info("Rendering diagram "+t);var r,n=(0,g.getConfig)().securityLevel;"sandbox"===n&&(r=(0,i.select)("#i"+e));var s,b="sandbox"===n?(0,i.select)(r.nodes()[0].contentDocument.body):(0,i.select)("body"),v=("sandbox"===n?r.nodes()[0].contentDocument:document,b.select("[id='".concat(e,"']")));v.attr("xmlns:xlink","http://www.w3.org/1999/xlink"),(s=v).append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),s.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),s.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),s.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z");var x=new(o().Graph)({multigraph:!0});x.setGraph({isMultiGraph:!0}),x.setDefaultEdgeLabel((function(){return{}}));for(var k=l.default.getClasses(),_=Object.keys(k),C=0;C<_.length;C++){var T=k[_[C]],E=u.default.drawClass(v,T,y);f[E.id]=E,x.setNode(E.id,E),c.log.info("Org height: "+E.height)}l.default.getRelations().forEach((function(t){c.log.info("tjoho"+m(t.id1)+m(t.id2)+JSON.stringify(t)),x.setEdge(m(t.id1),m(t.id2),{relation:t},t.title||"DEFAULT")})),a().layout(x),x.nodes().forEach((function(t){void 0!==t&&void 0!==x.node(t)&&(c.log.debug("Node "+t+": "+JSON.stringify(x.node(t))),b.select("#"+(0,l.lookUpDomId)(t)).attr("transform","translate("+(x.node(t).x-x.node(t).width/2)+","+(x.node(t).y-x.node(t).height/2)+" )"))})),x.edges().forEach((function(t){void 0!==t&&void 0!==x.edge(t)&&(c.log.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(x.edge(t))),u.default.drawEdge(v,x.edge(t),x.edge(t).relation,y))}));var w=v.node().getBBox(),S=w.width+40,A=w.height+40;(0,d.configureSvgSize)(v,A,S,y.useMaxWidth);var B="".concat(w.x-20," ").concat(w.y-20," ").concat(S," ").concat(A);c.log.debug("viewBox ".concat(B)),v.attr("viewBox",B),(0,p.default)(h.parser.yy,v,e)};const x={setConf:b,draw:v}},"./src/diagrams/class/styles.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>i});const i=function(t){return"g.classGroup text {\n fill: ".concat(t.nodeBorder,";\n fill: ").concat(t.classText,";\n stroke: none;\n font-family: ").concat(t.fontFamily,";\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ").concat(t.classText,";\n}\n.edgeLabel .label rect {\n fill: ").concat(t.mainBkg,";\n}\n.label text {\n fill: ").concat(t.classText,";\n}\n.edgeLabel .label span {\n background: ").concat(t.mainBkg,";\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(t.mainBkg,";\n stroke: ").concat(t.nodeBorder,";\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ").concat(t.nodeBorder,";\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ").concat(t.mainBkg,";\n stroke: ").concat(t.nodeBorder,";\n}\n\ng.classGroup line {\n stroke: ").concat(t.nodeBorder,";\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ").concat(t.mainBkg,";\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ").concat(t.nodeBorder,";\n font-size: 10px;\n}\n\n.relation {\n stroke: ").concat(t.lineColor,";\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ").concat(t.lineColor," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ").concat(t.mainBkg," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ").concat(t.mainBkg," !important;\n stroke: ").concat(t.lineColor," !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n")}},"./src/diagrams/class/svgDraw.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>m,drawClass:()=>l,drawEdge:()=>c,parseMember:()=>h});var i=r("d3"),n=r("./src/diagrams/class/classDb.js"),a=r("./src/utils.js"),s=r("./src/logger.js"),o=0,c=function(t,e,r,c){var l=function(t){switch(t){case n.relationType.AGGREGATION:return"aggregation";case n.relationType.EXTENSION:return"extension";case n.relationType.COMPOSITION:return"composition";case n.relationType.DEPENDENCY:return"dependency"}};e.points=e.points.filter((function(t){return!Number.isNaN(t.y)}));var h,u,d=e.points,g=(0,i.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(i.curveBasis),p=t.append("path").attr("d",g(d)).attr("id","edge"+o).attr("class","relation"),f="";c.arrowMarkerAbsolute&&(f=(f=(f=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),1==r.relation.lineType&&p.attr("class","relation dashed-line"),"none"!==r.relation.type1&&p.attr("marker-start","url("+f+"#"+l(r.relation.type1)+"Start)"),"none"!==r.relation.type2&&p.attr("marker-end","url("+f+"#"+l(r.relation.type2)+"End)");var y,m,b,v,x=e.points.length,k=a.default.calcLabelPosition(e.points);if(h=k.x,u=k.y,x%2!=0&&x>1){var _=a.default.calcCardinalityPosition("none"!==r.relation.type1,e.points,e.points[0]),C=a.default.calcCardinalityPosition("none"!==r.relation.type2,e.points,e.points[x-1]);s.log.debug("cardinality_1_point "+JSON.stringify(_)),s.log.debug("cardinality_2_point "+JSON.stringify(C)),y=_.x,m=_.y,b=C.x,v=C.y}if(void 0!==r.title){var T=t.append("g").attr("class","classLabel"),E=T.append("text").attr("class","label").attr("x",h).attr("y",u).attr("fill","red").attr("text-anchor","middle").text(r.title);window.label=E;var w=E.node().getBBox();T.insert("rect",":first-child").attr("class","box").attr("x",w.x-c.padding/2).attr("y",w.y-c.padding/2).attr("width",w.width+c.padding).attr("height",w.height+c.padding)}s.log.info("Rendering relation "+JSON.stringify(r)),void 0!==r.relationTitle1&&"none"!==r.relationTitle1&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",y).attr("y",m).attr("fill","black").attr("font-size","6").text(r.relationTitle1),void 0!==r.relationTitle2&&"none"!==r.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",b).attr("y",v).attr("fill","black").attr("font-size","6").text(r.relationTitle2),o++},l=function(t,e,r){s.log.info("Rendering class "+e);var i,a=e.id,o={id:a,label:e.id,width:0,height:0},c=t.append("g").attr("id",(0,n.lookUpDomId)(a)).attr("class","classGroup");i=e.link?c.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",r.textHeight+r.padding).attr("x",0):c.append("text").attr("y",r.textHeight+r.padding).attr("x",0);var l=!0;e.annotations.forEach((function(t){var e=i.append("tspan").text("«"+t+"»");l||e.attr("dy",r.textHeight),l=!1}));var h=e.id;void 0!==e.type&&""!==e.type&&(h+="<"+e.type+">");var u=i.append("tspan").text(h).attr("class","title");l||u.attr("dy",r.textHeight);var d=i.node().getBBox().height,g=c.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin/2).attr("y2",r.padding+d+r.dividerMargin/2),f=c.append("text").attr("x",r.padding).attr("y",d+r.dividerMargin+r.textHeight).attr("fill","white").attr("class","classText");l=!0,e.members.forEach((function(t){p(f,t,l,r),l=!1}));var y=f.node().getBBox(),m=c.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin+y.height).attr("y2",r.padding+d+r.dividerMargin+y.height),b=c.append("text").attr("x",r.padding).attr("y",d+2*r.dividerMargin+y.height+r.textHeight).attr("fill","white").attr("class","classText");l=!0,e.methods.forEach((function(t){p(b,t,l,r),l=!1}));var v=c.node().getBBox(),x=" ";e.cssClasses.length>0&&(x+=e.cssClasses.join(" "));var k=c.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",v.width+2*r.padding).attr("height",v.height+r.padding+.5*r.dividerMargin).attr("class",x).node().getBBox().width;return i.node().childNodes.forEach((function(t){t.setAttribute("x",(k-t.getBBox().width)/2)})),e.tooltip&&i.insert("title").text(e.tooltip),g.attr("x2",k),m.attr("x2",k),o.width=k,o.height=v.height+r.padding+.5*r.dividerMargin,o},h=function(t){var e=t.match(/^(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+) *(\*|\$)?$/),r=t.match(/^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/);return e&&!r?u(e):r?d(r):g(t)},u=function(t){var e="",r="";try{var i=t[1]?t[1].trim():"",n=t[2]?t[2].trim():"",a=t[3]?f(t[3].trim()):"",s=t[4]?t[4].trim():"",o=t[5]?t[5].trim():"";r=i+n+a+" "+s,e=y(o)}catch(e){r=t}return{displayText:r,cssStyle:e}},d=function(t){var e="",r="";try{var i=t[1]?t[1].trim():"",n=t[2]?t[2].trim():"",a=t[3]?f(t[3].trim()):"",s=t[4]?t[4].trim():"";r=i+n+"("+a+")"+(t[5]?" : "+f(t[5]).trim():""),e=y(s)}catch(e){r=t}return{displayText:r,cssStyle:e}},g=function(t){var e="",r="",i="",n=t.indexOf("("),a=t.indexOf(")");if(n>1&&a>n&&a<=t.length){var s="",o="",c=t.substring(0,1);c.match(/\w/)?o=t.substring(0,n).trim():(c.match(/\+|-|~|#/)&&(s=c),o=t.substring(1,n).trim());var l=t.substring(n+1,a),h=t.substring(a+1,1);r=y(h),e=s+o+"("+f(l.trim())+")",a<"".length&&""!==(i=t.substring(a+2).trim())&&(i=" : "+f(i))}else e=f(t);return{displayText:e,cssStyle:r}},p=function(t,e,r,i){var n=h(e),a=t.append("tspan").attr("x",i.padding).text(n.displayText);""!==n.cssStyle&&a.attr("style",n.cssStyle),r||a.attr("dy",i.textHeight)},f=function t(e){var r=e;return-1!=e.indexOf("~")?t(r=(r=r.replace("~","<")).replace("~",">")):r},y=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}};const m={drawClass:l,drawEdge:c,parseMember:h}},"./src/diagrams/common/common.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>m,evaluate:()=>y,getRows:()=>a,hasBreaks:()=>d,lineBreakRegex:()=>u,removeEscapes:()=>s,removeScript:()=>o,sanitizeText:()=>l,sanitizeTextOrArray:()=>h,splitBreaks:()=>g});var i=r("dompurify"),n=r.n(i),a=function(t){if(!t)return 1;var e=f(t);return(e=e.replace(/\\n/g,"#br#")).split("#br#")},s=function(t){var e=t.replace(/\\u[\dA-F]{4}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\u/g,""),16))}));return(e=(e=e.replace(/\\x([0-9a-f]{2})/gi,(function(t,e){return String.fromCharCode(parseInt(e,16))}))).replace(/\\[\d\d\d]{3}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\/g,""),8))}))).replace(/\\[\d\d\d]{2}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\/g,""),8))}))},o=function(t){for(var e="",r=0;r>=0;){if(!((r=t.indexOf("=0)){e+=t,r=-1;break}e+=t.substr(0,r),(r=(t=t.substr(r+1)).indexOf("<\/script>"))>=0&&(r+=9,t=t.substr(r))}var i=s(e);return(i=(i=(i=(i=i.replaceAll(/script>/gi,"#")).replaceAll(/javascript:/gi,"#")).replaceAll(/javascript&colon/gi,"#")).replaceAll(/onerror=/gi,"onerror:")).replaceAll(/')}else"loose"!==p.securityLevel&&(q=ut().sanitize(q,{ADD_TAGS:["foreignobject"],ADD_ATTR:["dominant-baseline"]}));if(void 0!==r)switch(A){case"flowchart":case"flowchart-v2":r(q,x.default.bindFunctions);break;case"gantt":r(q,E.default.bindFunctions);break;case"class":case"classDiagram":r(q,u.default.bindFunctions);break;default:r(q)}else st.log.debug("CB = undefined!");(0,at.attachFunctions)();var V="sandbox"===p.securityLevel?"#i"+t:"#d"+t,H=(0,i.select)(V).node();return null!==H&&"function"==typeof H.remove&&(0,i.select)(V).node().remove(),q},parse:function(t){var e=!1;try{t+="\n";var r=s.getConfig(),i=lt.default.detectInit(t,r);i&&st.log.info("reinit ",i);var n,a=lt.default.detectType(t,r);switch(st.log.debug("Type "+a),a){case"c4":o.default.clear(),(n=h()).parser.yy=o.default;break;case"gitGraph":B.default.clear(),(n=O()).parser.yy=B.default;break;case"flowchart":case"flowchart-v2":x.default.clear(),(n=T()).parser.yy=x.default;break;case"sequence":H.default.clear(),(n=V()).parser.yy=H.default;break;case"gantt":(n=A()).parser.yy=E.default;break;case"class":case"classDiagram":(n=f()).parser.yy=u.default;break;case"state":case"stateDiagram":(n=K()).parser.yy=J.default;break;case"info":st.log.debug("info info info"),(n=R()).parser.yy=I.default;break;case"pie":st.log.debug("pie"),(n=M()).parser.yy=P.default;break;case"er":st.log.debug("er"),(n=v()).parser.yy=y.default;break;case"journey":st.log.debug("Journey"),(n=it()).parser.yy=tt.default;break;case"requirement":case"requirementDiagram":st.log.debug("RequirementDiagram"),(n=q()).parser.yy=Y.default}n.parser.yy.graphType=a,n.parser.yy.parseError=function(t,e){throw{str:t,hash:e}},n.parse(t)}catch(t){if(e=!0,!dt.default.parseError)throw t;null!=t.str?dt.default.parseError(t.str,t.hash):dt.default.parseError(t)}return!e},parseDirective:function(t,e,r,i){try{if(void 0!==e)switch(e=e.trim(),r){case"open_directive":yt={};break;case"type_directive":yt.type=e.toLowerCase();break;case"arg_directive":yt.args=JSON.parse(e);break;case"close_directive":(function(t,e,r){switch(st.log.debug("Directive type=".concat(e.type," with args:"),e.args),e.type){case"init":case"initialize":["config"].forEach((function(t){void 0!==e.args[t]&&("flowchart-v2"===r&&(r="flowchart"),e.args[r]=e.args[t],delete e.args[t])})),st.log.debug("sanitize in handleDirective",e.args),(0,lt.directiveSanitizer)(e.args),st.log.debug("sanitize in handleDirective (done)",e.args),e.args,s.addDirective(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":st.log.warn("themeCss encountered");break;default:st.log.warn("Unhandled directive: source: '%%{".concat(e.type,": ").concat(JSON.stringify(e.args?e.args:{}),"}%%"),e)}})(t,yt,i),yt=null}}catch(t){st.log.error("Error while rendering sequenceDiagram directive: ".concat(e," jison context: ").concat(r)),st.log.error(t.message)}},initialize:function(t){t&&t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),s.saveConfigFromInitialize(t),t&&t.theme&&ct.default[t.theme]?t.themeVariables=ct.default[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=ct.default.default.getThemeVariables(t.themeVariables));var e="object"===gt(t)?s.setSiteConfig(t):s.getSiteConfig();mt(e),(0,st.setLogLevel)(e.logLevel)},reinitialize:function(){},getConfig:s.getConfig,setConfig:s.setConfig,getSiteConfig:s.getSiteConfig,updateSiteConfig:s.updateSiteConfig,reset:function(){s.reset()},globalReset:function(){s.reset(s.defaultConfig),mt(s.getConfig())},defaultConfig:s.defaultConfig});(0,st.setLogLevel)(s.getConfig().logLevel),s.reset(s.getConfig());const vt=bt},"./src/styles.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{calcThemeVariables:()=>m,default:()=>b});var i=r("./src/diagrams/class/styles.js"),n=r("./src/diagrams/er/styles.js"),a=r("./src/diagrams/flowchart/styles.js"),s=r("./src/diagrams/gantt/styles.js"),o=r("./src/diagrams/git/styles.js"),c=r("./src/diagrams/info/styles.js"),l=r("./src/diagrams/pie/styles.js"),h=r("./src/diagrams/requirement/styles.js"),u=r("./src/diagrams/sequence/styles.js"),d=r("./src/diagrams/state/styles.js"),g=r("./src/diagrams/user-journey/styles.js"),p=r("./src/diagrams/c4/styles.js"),f=r("./src/logger.js"),y={flowchart:a.default,"flowchart-v2":a.default,sequence:u.default,gantt:s.default,classDiagram:i.default,"classDiagram-v2":i.default,class:i.default,stateDiagram:d.default,state:d.default,gitGraph:o.default,info:c.default,pie:l.default,er:n.default,journey:g.default,requirement:h.default,c4:p.default},m=function(t,e){return f.log.info("userOverides",e),t.calcColors(e)};const b=function(t,e,r){return" {\n font-family: ".concat(r.fontFamily,";\n font-size: ").concat(r.fontSize,";\n fill: ").concat(r.textColor,"\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ").concat(r.errorBkgColor,";\n }\n .error-text {\n fill: ").concat(r.errorTextColor,";\n stroke: ").concat(r.errorTextColor,";\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ").concat(r.lineColor,";\n stroke: ").concat(r.lineColor,";\n }\n .marker.cross {\n stroke: ").concat(r.lineColor,";\n }\n\n svg {\n font-family: ").concat(r.fontFamily,";\n font-size: ").concat(r.fontSize,";\n }\n\n ").concat(y[t](r),"\n\n ").concat(e,"\n")}},"./src/themes/index.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>c});var i=r("./src/themes/theme-base.js"),n=r("./src/themes/theme-dark.js"),a=r("./src/themes/theme-default.js"),s=r("./src/themes/theme-forest.js"),o=r("./src/themes/theme-neutral.js");const c={base:{getThemeVariables:i.getThemeVariables},dark:{getThemeVariables:n.getThemeVariables},default:{getThemeVariables:a.getThemeVariables},forest:{getThemeVariables:s.getThemeVariables},neutral:{getThemeVariables:o.getThemeVariables}}},"./src/themes/theme-base.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>c});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>c});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>c});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>c});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{mkBorder:()=>n});var i=r("khroma"),n=function(t,e){return e?(0,i.adjust)(t,{s:-40,l:10}):(0,i.adjust)(t,{s:-40,l:-10})}},"./src/themes/theme-neutral.js":(t,e,r)=>{"use strict";r.r(e),r.d(e,{getThemeVariables:()=>c});var i=r("khroma"),n=r("./src/themes/theme-helpers.js");function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e){for(var r=0;r{"use strict";r.r(e),r.d(e,{assignWithDepth:()=>I,calculateSvgSizeAttrs:()=>$,calculateTextDimensions:()=>z,calculateTextHeight:()=>M,calculateTextWidth:()=>P,configureSvgSize:()=>q,default:()=>G,detectDirective:()=>k,detectInit:()=>x,detectType:()=>_,directiveSanitizer:()=>V,drawSimpleText:()=>F,entityDecode:()=>U,formatUrl:()=>w,generateId:()=>L,getStylesFromArray:()=>B,getTextObj:()=>N,initIdGenerator:()=>W,interpolateToCurve:()=>E,isSubstringInArray:()=>T,random:()=>O,runFunc:()=>S,sanitizeCss:()=>H,setupGraphViewbox:()=>Y,wrapLabel:()=>R});var i=r("@braintree/sanitize-url"),n=r("d3"),a=r("./src/diagrams/common/common.js"),s=r("./src/defaultConfig.js"),o=r("./src/logger.js"),c=void 0;function l(t,e){for(var r=0;r=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw a}}}}function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function d(t){return function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||g(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t,e){if(t){if("string"==typeof t)return p(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(t,e):void 0}}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:null;try{var r=new RegExp("[%]{2}(?![{]".concat(b.source,")(?=[}][%]{2}).*\n"),"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),o.log.debug("Detecting diagram directive".concat(null!==e?" type:"+e:""," based on the text:").concat(t));for(var i,n=[];null!==(i=m.exec(t));)if(i.index===m.lastIndex&&m.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){var a=i[1]?i[1]:i[2],s=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;n.push({type:a,args:s})}return 0===n.length&&n.push({type:t,args:null}),1===n.length?n[0]:n}catch(r){return o.log.error("ERROR: ".concat(r.message," - Unable to parse directive\n ").concat(null!==e?" type:"+e:""," based on the text:").concat(t)),{type:null,args:null}}},_=function(t,e){return(t=t.replace(m,"").replace(v,"\n")).match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/)?"c4":t.match(/^\s*sequenceDiagram/)?"sequence":t.match(/^\s*gantt/)?"gantt":t.match(/^\s*classDiagram-v2/)?"classDiagram":t.match(/^\s*classDiagram/)?e&&e.class&&"dagre-wrapper"===e.class.defaultRenderer?"classDiagram":"class":t.match(/^\s*stateDiagram-v2/)?"stateDiagram":t.match(/^\s*stateDiagram/)?e&&e.class&&"dagre-wrapper"===e.state.defaultRenderer?"stateDiagram":"state":t.match(/^\s*gitGraph/)?"gitGraph":t.match(/^\s*flowchart/)?"flowchart-v2":t.match(/^\s*info/)?"info":t.match(/^\s*pie/)?"pie":t.match(/^\s*erDiagram/)?"er":t.match(/^\s*journey/)?"journey":t.match(/^\s*requirement/)||t.match(/^\s*requirementDiagram/)?"requirement":e&&e.flowchart&&"dagre-wrapper"===e.flowchart.defaultRenderer?"flowchart-v2":"flowchart"},C=function(t,e){var r={};return function(){for(var i=arguments.length,n=new Array(i),a=0;a1?o-1:0),l=1;l"},r),a.default.lineBreakRegex.test(t))return t;var i=t.split(" "),n=[],s="";return i.forEach((function(t,a){var o=P("".concat(t," "),r),c=P(s,r);if(o>e){var l=j(t,e,"-",r),h=l.hyphenatedStrings,u=l.remainingWord;n.push.apply(n,[s].concat(d(h))),s=u}else c+o>=e?(n.push(s),s=t):s=[s,t].filter(Boolean).join(" ");a+1===i.length&&n.push(s)})),n.filter((function(t){return""!==t})).join(r.joinWith)}),(function(t,e,r){return"".concat(t,"-").concat(e,"-").concat(r.fontSize,"-").concat(r.fontWeight,"-").concat(r.fontFamily,"-").concat(r.joinWith)})),j=C((function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",i=arguments.length>3?arguments[3]:void 0;i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);var n=t.split(""),a=[],s="";return n.forEach((function(t,o){var c="".concat(s).concat(t);if(P(c,i)>=e){var l=o+1,h=n.length===l,u="".concat(c).concat(r);a.push(h?c:u),s=""}else s=c})),{hyphenatedStrings:a,remainingWord:s}}),(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",i=arguments.length>3?arguments[3]:void 0;return"".concat(t,"-").concat(e,"-").concat(r,"-").concat(i.fontSize,"-").concat(i.fontWeight,"-").concat(i.fontFamily)})),M=function(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),z(t,e).height},P=function(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),z(t,e).width},z=C((function(t,e){var r=e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),i=r.fontSize,s=r.fontFamily,o=r.fontWeight;if(!t)return{width:0,height:0};var c=["sans-serif",s],l=t.split(a.default.lineBreakRegex),u=[],d=(0,n.select)("body");if(!d.remove)return{width:0,height:0,lineHeight:0};for(var g=d.append("svg"),p=0,f=c;pu[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1]}),(function(t,e){return"".concat(t,"-").concat(e.fontSize,"-").concat(e.fontWeight,"-").concat(e.fontFamily)})),$=function(t,e,r){var i=new Map;return i.set("height",t),r?(i.set("width","100%"),i.set("style","max-width: ".concat(e,"px;"))):i.set("width",e),i},q=function(t,e,r,i){!function(t,e){var r,i=h(e);try{for(i.s();!(r=i.n()).done;){var n=r.value;t.attr(n[0],n[1])}}catch(t){i.e(t)}finally{i.f()}}(t,$(e,r,i))},Y=function(t,e,r,i){var n=e.node().getBBox(),a=n.width,s=n.height,c=t._label.width,l=t._label.height,h=0,u=0;a>c?(h=(a-c)/2+r,c=a+2*r):Math.abs(a-c)>=2*r+1&&(c-=r),s>l&&(u=(s-l)/2+r,l=s+2*r),q(e,l,c,i);var d="0 0 ".concat(c," ").concat(l);o.log.debug("Graph.label",t._label,"swidth",a,"sheight",s,"width",c,"height",l,"tx",h,"ty",u,"vBox",d),e.attr("viewBox",d),e.select("g").attr("transform","translate(".concat(h,", ").concat(u,")"))},W=function(){function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.deterministic=e,this.seed=r,this.count=r?r.length:0}var e,r;return e=t,(r=[{key:"next",value:function(){return this.deterministic?this.count++:Date.now()}}])&&l(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),U=function(t){return f=f||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),f.innerHTML=t,unescape(f.textContent)},V=function t(e){if(o.log.debug("directiveSanitizer called with",e),"object"===u(e)&&(e.length?e.forEach((function(e){return t(e)})):Object.keys(e).forEach((function(r){o.log.debug("Checking key",r),0===r.indexOf("__")&&(o.log.debug("sanitize deleting __ option",r),delete e[r]),r.indexOf("proto")>=0&&(o.log.debug("sanitize deleting proto option",r),delete e[r]),r.indexOf("constr")>=0&&(o.log.debug("sanitize deleting constr option",r),delete e[r]),r.indexOf("themeCSS")>=0&&(o.log.debug("sanitizing themeCss option"),e[r]=H(e[r])),r.indexOf("fontFamily")>=0&&(o.log.debug("sanitizing fontFamily option"),e[r]=H(e[r])),r.indexOf("altFontFamily")>=0&&(o.log.debug("sanitizing altFontFamily option"),e[r]=H(e[r])),s.configKeys.indexOf(r)<0?(o.log.debug("sanitize deleting option",r),delete e[r]):"object"===u(e[r])&&(o.log.debug("sanitize deleting object",r),t(e[r]))}))),e.themeVariables)for(var r=Object.keys(e.themeVariables),i=0;i=1&&(n={x:t.x,y:t.y}),a>0&&a<1&&(n={x:(1-a)*e.x+a*t.x,y:(1-a)*e.y+a*t.y})}}e=t})),n}(t)},calcCardinalityPosition:function(t,e,r){var i;o.log.info("our points",e),e[0]!==r&&(e=e.reverse()),e.forEach((function(t){A(t,i),i=t}));var n,a=25;i=void 0,e.forEach((function(t){if(i&&!n){var e=A(t,i);if(e=1&&(n={x:t.x,y:t.y}),r>0&&r<1&&(n={x:(1-r)*i.x+r*t.x,y:(1-r)*i.y+r*t.y})}}i=t}));var s=t?10:5,c=Math.atan2(e[0].y-n.y,e[0].x-n.x),l={x:0,y:0};return l.x=Math.sin(c)*s+(e[0].x+n.x)/2,l.y=-Math.cos(c)*s+(e[0].y+n.y)/2,l},calcTerminalLabelPosition:function(t,e,r){var i,n=JSON.parse(JSON.stringify(r));o.log.info("our points",n),"start_left"!==e&&"start_right"!==e&&(n=n.reverse()),n.forEach((function(t){A(t,i),i=t}));var a,s=25+t;i=void 0,n.forEach((function(t){if(i&&!a){var e=A(t,i);if(e=1&&(a={x:t.x,y:t.y}),r>0&&r<1&&(a={x:(1-r)*i.x+r*t.x,y:(1-r)*i.y+r*t.y})}}i=t}));var c=10+.5*t,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),h={x:0,y:0};return h.x=Math.sin(l)*c+(n[0].x+a.x)/2,h.y=-Math.cos(l)*c+(n[0].y+a.y)/2,"start_left"===e&&(h.x=Math.sin(l+Math.PI)*c+(n[0].x+a.x)/2,h.y=-Math.cos(l+Math.PI)*c+(n[0].y+a.y)/2),"end_right"===e&&(h.x=Math.sin(l-Math.PI)*c+(n[0].x+a.x)/2-5,h.y=-Math.cos(l-Math.PI)*c+(n[0].y+a.y)/2-5),"end_left"===e&&(h.x=Math.sin(l)*c+(n[0].x+a.x)/2-5,h.y=-Math.cos(l)*c+(n[0].y+a.y)/2-5),h},formatUrl:w,getStylesFromArray:B,generateId:L,random:O,memoize:C,runFunc:S,entityDecode:U,initIdGenerator:W,directiveSanitizer:V,sanitizeCss:H}},"./node_modules/path-browserify/index.js":t=>{"use strict";function e(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function r(t,e){for(var r,i="",n=0,a=-1,s=0,o=0;o<=t.length;++o){if(o2){var c=i.lastIndexOf("/");if(c!==i.length-1){-1===c?(i="",n=0):n=(i=i.slice(0,c)).length-1-i.lastIndexOf("/"),a=o,s=0;continue}}else if(2===i.length||1===i.length){i="",n=0,a=o,s=0;continue}e&&(i.length>0?i+="/..":i="..",n=2)}else i.length>0?i+="/"+t.slice(a+1,o):i=t.slice(a+1,o),n=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return i}var i={resolve:function(){for(var t,i="",n=!1,a=arguments.length-1;a>=-1&&!n;a--){var s;a>=0?s=arguments[a]:(void 0===t&&(t=process.cwd()),s=t),e(s),0!==s.length&&(i=s+"/"+i,n=47===s.charCodeAt(0))}return i=r(i,!n),n?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(t){if(e(t),0===t.length)return".";var i=47===t.charCodeAt(0),n=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!i)).length||i||(t="."),t.length>0&&n&&(t+="/"),i?"/"+t:t},isAbsolute:function(t){return e(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var t,r=0;r0&&(void 0===t?t=n:t+="/"+n)}return void 0===t?".":i.normalize(t)},relative:function(t,r){if(e(t),e(r),t===r)return"";if((t=i.resolve(t))===(r=i.resolve(r)))return"";for(var n=1;nl){if(47===r.charCodeAt(o+u))return r.slice(o+u+1);if(0===u)return r.slice(o+u)}else s>l&&(47===t.charCodeAt(n+u)?h=u:0===u&&(h=0));break}var d=t.charCodeAt(n+u);if(d!==r.charCodeAt(o+u))break;47===d&&(h=u)}var g="";for(u=n+h+1;u<=a;++u)u!==a&&47!==t.charCodeAt(u)||(0===g.length?g+="..":g+="/..");return g.length>0?g+r.slice(o+h):(o+=h,47===r.charCodeAt(o)&&++o,r.slice(o))},_makeLong:function(t){return t},dirname:function(t){if(e(t),0===t.length)return".";for(var r=t.charCodeAt(0),i=47===r,n=-1,a=!0,s=t.length-1;s>=1;--s)if(47===(r=t.charCodeAt(s))){if(!a){n=s;break}}else a=!1;return-1===n?i?"/":".":i&&1===n?"//":t.slice(0,n)},basename:function(t,r){if(void 0!==r&&"string"!=typeof r)throw new TypeError('"ext" argument must be a string');e(t);var i,n=0,a=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return"";var o=r.length-1,c=-1;for(i=t.length-1;i>=0;--i){var l=t.charCodeAt(i);if(47===l){if(!s){n=i+1;break}}else-1===c&&(s=!1,c=i+1),o>=0&&(l===r.charCodeAt(o)?-1==--o&&(a=i):(o=-1,a=c))}return n===a?a=c:-1===a&&(a=t.length),t.slice(n,a)}for(i=t.length-1;i>=0;--i)if(47===t.charCodeAt(i)){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1);return-1===a?"":t.slice(n,a)},extname:function(t){e(t);for(var r=-1,i=0,n=-1,a=!0,s=0,o=t.length-1;o>=0;--o){var c=t.charCodeAt(o);if(47!==c)-1===n&&(a=!1,n=o+1),46===c?-1===r?r=o:1!==s&&(s=1):-1!==r&&(s=-1);else if(!a){i=o+1;break}}return-1===r||-1===n||0===s||1===s&&r===n-1&&r===i+1?"":t.slice(r,n)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,i=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+i:r+"/"+i:i}(0,t)},parse:function(t){e(t);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return r;var i,n=t.charCodeAt(0),a=47===n;a?(r.root="/",i=1):i=0;for(var s=-1,o=0,c=-1,l=!0,h=t.length-1,u=0;h>=i;--h)if(47!==(n=t.charCodeAt(h)))-1===c&&(l=!1,c=h+1),46===n?-1===s?s=h:1!==u&&(u=1):-1!==s&&(u=-1);else if(!l){o=h+1;break}return-1===s||-1===c||0===u||1===u&&s===c-1&&s===o+1?-1!==c&&(r.base=r.name=0===o&&a?t.slice(1,c):t.slice(o,c)):(0===o&&a?(r.name=t.slice(1,s),r.base=t.slice(1,c)):(r.name=t.slice(o,s),r.base=t.slice(o,c)),r.ext=t.slice(s,c)),o>0?r.dir=t.slice(0,o-1):a&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,t.exports=i},"@braintree/sanitize-url":t=>{"use strict";t.exports=require("@braintree/sanitize-url")},d3:t=>{"use strict";t.exports=require("d3")},dagre:t=>{"use strict";t.exports=require("dagre")},"dagre-d3":t=>{"use strict";t.exports=require("dagre-d3")},"dagre-d3/lib/label/add-html-label.js":t=>{"use strict";t.exports=require("dagre-d3/lib/label/add-html-label.js")},dompurify:t=>{"use strict";t.exports=require("dompurify")},graphlib:t=>{"use strict";t.exports=require("graphlib")},khroma:t=>{"use strict";t.exports=require("khroma")},"moment-mini":t=>{"use strict";t.exports=require("moment-mini")},stylis:t=>{"use strict";t.exports=require("stylis")},"?1da1":()=>{},"?35ed":()=>{},"?3c87":()=>{},"?dbae":()=>{},"?8ed1":()=>{},"?2b40":()=>{},"?c5f1":()=>{},"?a3fa":()=>{},"?ebf4":()=>{},"?e940":()=>{},"?a3b8":()=>{},"?0f62":()=>{},"./package.json":t=>{"use strict";t.exports=JSON.parse('{"name":"mermaid","version":"9.1.3","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext .js,.json,.html,.md","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack serve --config ./.webpack/webpack.config.e2e.babel.js","ci":"jest src/.*","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.8","graphlib":"^2.1.8","khroma":"^2.0.0","moment-mini":"^2.24.0","stylis":"^4.0.10"},"devDependencies":{"@applitools/eyes-cypress":"^3.25.7","@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^17.0.0","@commitlint/config-conventional":"^17.0.0","babel-jest":"^28.0.3","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"10.2.0","cypress-image-snapshot":"^4.0.1","documentation":"13.2.0","eslint":"^8.4.1","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^6.2.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^39.1.0","eslint-plugin-json":"^3.1.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^8.0.0","identity-obj-proxy":"^3.0.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^13.0.0","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"resolutions":{"d3":"^7.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}')}},e={};function r(i){var n=e[i];if(void 0!==n)return n.exports;var a=e[i]={id:i,loaded:!1,exports:{}};return t[i](a,a.exports,r),a.loaded=!0,a.exports}r.c=e,r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var i=r(r.s="./src/mermaid.js");return i.default})())); \ No newline at end of file diff --git a/dist/mermaid/mermaid.core.js.map b/dist/mermaid/mermaid.core.js.map index d34afe6..6331d3c 100644 --- a/dist/mermaid/mermaid.core.js.map +++ b/dist/mermaid/mermaid.core.js.map @@ -1 +1 @@ -{"version":3,"file":"mermaid.core.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,4uCAA4uC;AACvvC,aAAa,yvBAAyvB;AACtwB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,kEAAkE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,mEAAmE,EAAE,QAAQ,sDAAsD,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,uBAAuB,oBAAoB,sMAAsM,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,kHAAkH,gFAAgF,GAAG,8CAA8C,8BAA8B,2BAA2B,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,UAAU,eAAe,wDAAwD,gBAAgB,UAAU,mHAAmH,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,gNAAgN,gBAAgB,wDAAwD,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,2BAA2B,4CAA4C,UAAU,EAAE,UAAU,gBAAgB,8CAA8C,EAAE,wDAAwD,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,8CAA8C,eAAe,UAAU,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,sBAAsB,2DAA2D,+CAA+C,6BAA6B,WAAW,GAAG,WAAW,EAAE,wBAAwB,yDAAyD,WAAW,8BAA8B,WAAW,8BAA8B,WAAW,iBAAiB,cAAc,gBAAgB,UAAU,4CAA4C,WAAW;AACh1F,iBAAiB,8FAA8F;AAC/G;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,yIAAyI,8BAA8B,mBAAmB,yBAAyB,gIAAgI,oBAAoB,WAAW,yBAAyB,0fAA0f,EAAE,MAAM,YAAY,EAAE;AAC56B,aAAa,iBAAiB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,kBAAkB,kCAAkC,kBAAkB,qCAAqC,SAAS,kCAAkC,WAAW,2CAA2C,YAAY,kCAAkC,aAAa,kCAAkC,WAAW,kCAAkC,YAAY;AACpgB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACt3BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,wrBAAwrB;AACnsB,aAAa,oWAAoW;AACjX;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC;AACrD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,qEAAqE,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,oCAAoC,uDAAuD,kDAAkD,8CAA8C,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,uEAAuE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,mCAAmC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,8BAA8B,UAAU,EAAE,0BAA0B,gBAAgB,UAAU,eAAe,6BAA6B,2BAA2B,UAAU,uEAAuE,aAAa;AACxkC,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,gGAAgG,2GAA2G,mCAAmC,cAAc,uCAAuC,aAAa;AACpb,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,UAAU,iDAAiD,YAAY;AACzO,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACpwBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,m1DAAm1D;AAC91D,aAAa,omCAAomC;AACjnC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C,WAAW;AACtG;AACA;AACA,+CAA+C,gDAAgD,WAAW;AAC1G;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC,qDAAqD;AACxF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AA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A;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iBAAiB,8BAA8B,mBAAmB,yBAAyB,mBAAmB,0xBAA0xB,+zJAA+zJ,UAAU;AACluL,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,WAAW,6BAA6B,QAAQ,6DAA6D,WAAW,gCAAgC,YAAY;AACvjB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AClgCA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,6iBAA6iB;AACxjB,aAAa,kWAAkW;AAC/W;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,cAAc,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,2IAA2I,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,0GAA0G,uKAAuK,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AACv5B,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,qBAAqB,8TAA8T,2EAA2E,2BAA2B,2BAA2B,6BAA6B,qDAAqD,2BAA2B,kBAAkB,kBAAkB;AACttB,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,YAAY;AAC/Z,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7vBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,uSAAuS;AAClT,aAAa,0JAA0J;AACvK;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,cAAc,gBAAgB,gBAAgB,sBAAsB,EAAE,QAAQ,EAAE,gFAAgF,eAAe,SAAS,eAAe,UAAU,gBAAgB,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,eAAe,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU;AAC1lB,iBAAiB,2GAA2G;AAC5H;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW,kCAAkC,WAAW,kCAAkC,YAAY;AACnH,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACvrBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,sPAAsP,mHAAmH;AACpX,aAAa,wGAAwG,2FAA2F;AAChN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,mDAAmD,EAAE,MAAM,EAAE,oDAAoD,EAAE,oDAAoD,YAAY,cAAc,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,YAAY,kDAAkD,aAAa,KAAK,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,0BAA0B,kDAAkD,iBAAiB,gBAAgB,wDAAwD,aAAa,EAAE,UAAU;AAClqB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB;AACrI,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,UAAU,+BAA+B,WAAW,kCAAkC,YAAY;AACrT,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACppBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,6iCAA6iC;AACxjC,aAAa,yrBAAyrB;AACtsB;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,yBAAyB,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8HAA8H,EAAE,uBAAuB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,+HAA+H,gBAAgB,eAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,uDAAuD,EAAE,uDAAuD,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,oGAAoG,UAAU,eAAe,+CAA+C,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,oBAAoB,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+CAA+C,8BAA8B,UAAU,EAAE,UAAU,EAAE,iCAAiC,4CAA4C,oBAAoB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,8CAA8C,gBAAgB,4BAA4B,EAAE,6BAA6B,gBAAgB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,kCAAkC,EAAE,kCAAkC;AAC5qF,iBAAiB,2QAA2Q;AAC5R;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yHAAyH,WAAW,qoBAAqoB;AACh2B,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,cAAc,6BAA6B,UAAU,6BAA6B,WAAW,kCAAkC,YAAY;AAC9V,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC/xBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,m/BAAm/B;AAC9/B,aAAa,kmBAAkmB;AAC/mB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAgD;AAC/E;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,yBAAyB,gDAAgD;AACzE;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS,+BAA+B;AACxC;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,yCAAyC,qBAAqB;AAC9D;AACA,0BAA0B,iBAAiB,oBAAoB;AAC/D;AACA,0BAA0B,iBAAiB;AAC3C;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,kEAAkE,iCAAiC,sKAAsK,oRAAoR,qBAAqB,yCAAyC,4IAA4I;AACz6B,aAAa,kBAAkB,gCAAgC,mBAAmB,kCAAkC,kBAAkB,kCAAkC,OAAO,mCAAmC,UAAU,sCAAsC,SAAS,mCAAmC,YAAY;AAC1T,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACt3BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,khBAAkhB,qJAAqJ;AAClrB,aAAa,iVAAiV,6HAA6H;AAC3d;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E,iBAAiB,4BAA4B,+DAA+D,WAAW;AACvH;AACA;AACA;AACA;AACA,sEAAsE;AACtE,iBAAiB,4BAA4B,+DAA+D,WAAW,8DAA8D;AACrL;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2GAA2G;AAC3G,kBAAkB;AAClB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,6GAA6G;AAC7G,iBAAiB,0CAA0C;AAC3D;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,gEAAgE,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,qKAAqK,EAAE,uBAAuB,iCAAiC,4IAA4I,yCAAyC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,0DAA0D,oCAAoC,gIAAgI,gBAAgB,2CAA2C,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,eAAe,UAAU,GAAG,uKAAuK,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,sDAAsD,KAAK,+BAA+B,uKAAuK;AACvrD,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,0BAA0B,0CAA0C;AAC5F;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wBAAwB,8CAA8C;AACtE;AACA,yBAAyB,4BAA4B,6CAA6C;AAClG;AACA,yBAAyB,mDAAmD,2CAA2C;AACvH;AACA,yBAAyB,mDAAmD,6CAA6C;AACzH;AACA,4DAA4D;AAC5D;AACA,4DAA4D;AAC5D;AACA,qDAAqD;AACrD;AACA,iDAAiD;AACjD;AACA,2CAA2C;AAC3C;AACA,yCAAyC,sCAAsC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6IAA6I,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB,ocAAoc,6CAA6C,wBAAwB,WAAW,gLAAgL,oJAAoJ,qBAAqB;AAC9mC,aAAa,QAAQ,kCAAkC,oBAAoB,kCAAkC,kBAAkB,sCAAsC,mBAAmB,sCAAsC,mBAAmB,oCAAoC,WAAW,yEAAyE,qBAAqB,+BAA+B,kBAAkB,qCAAqC,cAAc,kCAAkC,YAAY,+BAA+B,SAAS,qCAAqC,UAAU,kCAAkC,UAAU,6BAA6B,aAAa,+BAA+B,iBAAiB,kCAAkC,eAAe,6BAA6B,UAAU,mEAAmE,OAAO,kCAAkC,YAAY;AAC77B,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACp0BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,8VAA8V;AACzW,aAAa,gMAAgM;AAC7M;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,6EAA6E,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,4CAA4C,wDAAwD,UAAU,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,aAAa,EAAE,UAAU,EAAE,UAAU;AACrhB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,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EAAE,IA/DA;;AAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEhP,EAAAA,mBAAmB,EAAE,KA5ER;;AA8Eb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE9L,EAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,aAA5B,EAA2C,aAA3C,CAxFK;;AA0Fb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE+a,EAAAA,gBAAgB,EAAE,KAtGL;;AAwGb;AACF;AACA;AACA;AACA;AACEC,EAAAA,mBAAmB,EAAEpZ,SA7GR;;AA+Gb;AACAG,EAAAA,SAAS,EAAE;AACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIkZ,IAAAA,cAAc,EAAE,CAbP;;AAeT;AACJ;AACA;AACA;AACA;AACA;AACA;AACIjZ,IAAAA,UAAU,EAAE,IAtBH;;AAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIkZ,IAAAA,WAAW,EAAE,EApCJ;;AAsCT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAlDJ;;AAoDT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI7P,IAAAA,KAAK,EAAE,OA7DE;AA8DT;AACA;AACA/I,IAAAA,OAAO,EAAE,EAhEA;;AAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI6Y,IAAAA,WAAW,EAAE,IA9EJ;;AAgFT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE;AA5FR,GAhHE;;AA+Mb;AACAC,EAAAA,QAAQ,EAAE;AACR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,EART;;AAUR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EAjBR;;AAmBR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EA1BR;;AA4BR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAnCL;;AAqCR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIrZ,IAAAA,KAAK,EAAE,GA5CC;;AA8CR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,MAAM,EAAE,EArDA;;AAuDR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIqZ,IAAAA,SAAS,EAAE,EA9DH;;AAgER;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,CAvEP;;AAyER;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,EAhFJ;;AAkFR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EAzFP;;AA2FR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,QAlGN;;AAoGR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,IA3GN;;AA6GR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,KAtHJ;;AAwHR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,CAnIT;;AAqIR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACId,IAAAA,WAAW,EAAE,IA/IL;;AAiJR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIe,IAAAA,WAAW,EAAE,KA5JL;;AA8JR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,mBAAmB,EAAE,KArKb;;AAuKR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EA9KP;;AAgLR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,2BAvLT;;AAyLR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,GA9LT;;AAgMR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,EAvMN;;AAyMR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,4CAhNR;;AAkNR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,GAvNR;;AAyNR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,SAAS,EAAE,QAhOH;;AAkOR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAAe,EAAE,EAzOT;;AA2OR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,iBAAiB,EAAE,4CAlPX;;AAoPR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,iBAAiB,EAAE,GAzPX;;AA2PR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,IAAI,EAAE,KAhQE;;AAkQR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAvQL;;AAyQR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,aAAa,EAAE,EA9QP;;AAgRR;AACJ;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EArRR;AAuRRC,IAAAA,WAAW,EAAE,uBAAY;AACvB,aAAO;AACL5c,QAAAA,UAAU,EAAE,KAAKsc,iBADZ;AAELO,QAAAA,QAAQ,EAAE,KAAKR,eAFV;AAGLS,QAAAA,UAAU,EAAE,KAAKP;AAHZ,OAAP;AAKD,KA7RO;AA8RRQ,IAAAA,QAAQ,EAAE,oBAAY;AACpB,aAAO;AACL/c,QAAAA,UAAU,EAAE,KAAKkc,cADZ;AAELW,QAAAA,QAAQ,EAAE,KAAKZ,YAFV;AAGLa,QAAAA,UAAU,EAAE,KAAKX;AAHZ,OAAP;AAKD,KApSO;AAqSRa,IAAAA,SAAS,EAAE,qBAAY;AACrB,aAAO;AACLhd,QAAAA,UAAU,EAAE,KAAK+b,eADZ;AAELc,QAAAA,QAAQ,EAAE,KAAKf,aAFV;AAGLgB,QAAAA,UAAU,EAAE,KAAKd;AAHZ,OAAP;AAKD;AA3SO,GAhNG;;AA8fb;AACAiB,EAAAA,KAAK,EAAE;AACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EAVX;;AAYL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,SAAS,EAAE,EAnBN;;AAqBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,MAAM,EAAE,CA5BH;;AA8BL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,EArCP;;AAuCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,YAAY,EAAE,EA9CT;;AAgDL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,WAAW,EAAE,EAvDR;;AAyDL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,oBAAoB,EAAE,EAhEjB;;AAkEL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIX,IAAAA,QAAQ,EAAE,EAzEL;;AA2EL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIY,IAAAA,eAAe,EAAE,EAlFZ;;AAoFL;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,mBAAmB,EAAE,CA3FhB;;AA6FL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,UAAU,EAAE,UAxGP;;AA0GL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI9C,IAAAA,WAAW,EAAE,IAtHR;;AAwHL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI+C,IAAAA,OAAO,EAAE,KAjIJ;AAmILC,IAAAA,QAAQ,EAAExc;AAnIL,GA/fM;;AAqoBb;AACAyc,EAAAA,OAAO,EAAE;AACP;AACJ;AACA;AACA;AACA;AACA;AACA;AACI7C,IAAAA,cAAc,EAAE,EART;;AAUP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,cAAc,EAAE,EAjBT;;AAmBP;AACJ;AACA;AACA;AACA;AACA;AACA;AACI6C,IAAAA,UAAU,EAAE,GA1BL;;AA4BP;AACJ;AACA;AACA;AACA;A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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY;AACZ;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV;AACA;AACA,iDAAiD;AACjD;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA,MAAM;AACN,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;AChhBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;UEJA;UACA;UACA;UACA","sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/requirement/parser/requirementDiagram.jison","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/defaultConfig.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer-v2.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/styles.js","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/styles.js","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/styles.js","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/styles.js","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/styles.js","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/styles.js","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/pie/styles.js","webpack://mermaid/./src/diagrams/requirement/requirementDb.js","webpack://mermaid/./src/diagrams/requirement/requirementMarkers.js","webpack://mermaid/./src/diagrams/requirement/requirementRenderer.js","webpack://mermaid/./src/diagrams/requirement/styles.js","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/styles.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/state/styles.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/styles.js","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/interactionDb.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/styles.js","webpack://mermaid/./src/themes/index.js","webpack://mermaid/./src/themes/theme-base.js","webpack://mermaid/./src/themes/theme-dark.js","webpack://mermaid/./src/themes/theme-default.js","webpack://mermaid/./src/themes/theme-forest.js","webpack://mermaid/./src/themes/theme-helpers.js","webpack://mermaid/./src/themes/theme-neutral.js","webpack://mermaid/./src/utils.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/external commonjs \"@braintree/sanitize-url\"","webpack://mermaid/external commonjs \"d3\"","webpack://mermaid/external commonjs \"dagre\"","webpack://mermaid/external commonjs \"dagre-d3\"","webpack://mermaid/external commonjs \"dagre-d3/lib/label/add-html-label.js\"","webpack://mermaid/external commonjs \"dompurify\"","webpack://mermaid/external commonjs \"graphlib\"","webpack://mermaid/external commonjs \"khroma\"","webpack://mermaid/external commonjs \"moment-mini\"","webpack://mermaid/external commonjs \"stylis\"","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/class/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/er/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/flowchart/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/gantt/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/git/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/info/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/pie/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/requirement/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/sequence/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/state/parser|fs","webpack://mermaid/ignored|/mnt/c/mermaid/src/diagrams/user-journey/parser|fs","webpack://mermaid/webpack/bootstrap","webpack://mermaid/webpack/runtime/compat get default export","webpack://mermaid/webpack/runtime/define property getters","webpack://mermaid/webpack/runtime/hasOwnProperty shorthand","webpack://mermaid/webpack/runtime/make namespace object","webpack://mermaid/webpack/runtime/node module decorator","webpack://mermaid/webpack/before-startup","webpack://mermaid/webpack/startup","webpack://mermaid/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn ","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,12],$V5=[1,11],$V6=[1,15,24],$V7=[1,19],$V8=[1,31],$V9=[1,34],$Va=[1,32],$Vb=[1,33],$Vc=[1,35],$Vd=[1,36],$Ve=[1,37],$Vf=[1,38],$Vg=[1,41],$Vh=[1,42],$Vi=[1,43],$Vj=[1,44],$Vk=[15,24],$Vl=[1,56],$Vm=[1,57],$Vn=[1,58],$Vo=[1,59],$Vp=[1,60],$Vq=[1,61],$Vr=[15,24,31,38,39,47,50,51,52,53,54,55,60,62],$Vs=[15,24,29,31,38,39,43,47,50,51,52,53,54,55,60,62,77,78,79,80],$Vt=[7,8,9,10,15,18,22,24],$Vu=[47,77,78,79,80],$Vv=[47,54,55,77,78,79,80],$Vw=[47,50,51,52,53,77,78,79,80],$Vx=[15,24,31],$Vy=[1,93];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"direction\":5,\"directive\":6,\"direction_tb\":7,\"direction_bt\":8,\"direction_rl\":9,\"direction_lr\":10,\"graphConfig\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\"NEWLINE\":15,\":\":16,\"argDirective\":17,\"open_directive\":18,\"type_directive\":19,\"arg_directive\":20,\"close_directive\":21,\"CLASS_DIAGRAM\":22,\"statements\":23,\"EOF\":24,\"statement\":25,\"className\":26,\"alphaNumToken\":27,\"classLiteralName\":28,\"GENERICTYPE\":29,\"relationStatement\":30,\"LABEL\":31,\"classStatement\":32,\"methodStatement\":33,\"annotationStatement\":34,\"clickStatement\":35,\"cssClassStatement\":36,\"CLASS\":37,\"STYLE_SEPARATOR\":38,\"STRUCT_START\":39,\"members\":40,\"STRUCT_STOP\":41,\"ANNOTATION_START\":42,\"ANNOTATION_END\":43,\"MEMBER\":44,\"SEPARATOR\":45,\"relation\":46,\"STR\":47,\"relationType\":48,\"lineType\":49,\"AGGREGATION\":50,\"EXTENSION\":51,\"COMPOSITION\":52,\"DEPENDENCY\":53,\"LINE\":54,\"DOTTED_LINE\":55,\"CALLBACK\":56,\"LINK\":57,\"LINK_TARGET\":58,\"CLICK\":59,\"CALLBACK_NAME\":60,\"CALLBACK_ARGS\":61,\"HREF\":62,\"CSSCLASS\":63,\"commentToken\":64,\"textToken\":65,\"graphCodeTokens\":66,\"textNoTagsToken\":67,\"TAGSTART\":68,\"TAGEND\":69,\"==\":70,\"--\":71,\"PCT\":72,\"DEFAULT\":73,\"SPACE\":74,\"MINUS\":75,\"keywords\":76,\"UNICODE_TEXT\":77,\"NUM\":78,\"ALPHA\":79,\"BQUOTE_STR\":80,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",7:\"direction_tb\",8:\"direction_bt\",9:\"direction_rl\",10:\"direction_lr\",15:\"NEWLINE\",16:\":\",18:\"open_directive\",19:\"type_directive\",20:\"arg_directive\",21:\"close_directive\",22:\"CLASS_DIAGRAM\",24:\"EOF\",29:\"GENERICTYPE\",31:\"LABEL\",37:\"CLASS\",38:\"STYLE_SEPARATOR\",39:\"STRUCT_START\",41:\"STRUCT_STOP\",42:\"ANNOTATION_START\",43:\"ANNOTATION_END\",44:\"MEMBER\",45:\"SEPARATOR\",47:\"STR\",50:\"AGGREGATION\",51:\"EXTENSION\",52:\"COMPOSITION\",53:\"DEPENDENCY\",54:\"LINE\",55:\"DOTTED_LINE\",56:\"CALLBACK\",57:\"LINK\",58:\"LINK_TARGET\",59:\"CLICK\",60:\"CALLBACK_NAME\",61:\"CALLBACK_ARGS\",62:\"HREF\",63:\"CSSCLASS\",66:\"graphCodeTokens\",68:\"TAGSTART\",69:\"TAGEND\",70:\"==\",71:\"--\",72:\"PCT\",73:\"DEFAULT\",74:\"SPACE\",75:\"MINUS\",76:\"keywords\",77:\"UNICODE_TEXT\",78:\"NUM\",79:\"ALPHA\",80:\"BQUOTE_STR\"},\nproductions_: [0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[23,1],[23,2],[23,3],[26,1],[26,1],[26,2],[26,2],[26,2],[25,1],[25,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[32,2],[32,4],[32,5],[32,7],[34,4],[40,1],[40,2],[33,1],[33,2],[33,1],[33,1],[30,3],[30,4],[30,4],[30,5],[46,3],[46,2],[46,2],[46,1],[48,1],[48,1],[48,1],[48,1],[49,1],[49,1],[35,3],[35,4],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[36,3],[64,1],[64,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[67,1],[67,1],[67,1],[67,1],[27,1],[27,1],[27,1],[28,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.setDirection('TB');\nbreak;\ncase 5:\n yy.setDirection('BT');\nbreak;\ncase 6:\n yy.setDirection('RL');\nbreak;\ncase 7:\n yy.setDirection('LR');\nbreak;\ncase 11:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 12:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 13:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 14:\n yy.parseDirective('}%%', 'close_directive', 'class'); \nbreak;\ncase 19: case 20:\n this.$=$$[$0]; \nbreak;\ncase 21:\n this.$=$$[$0-1]+$$[$0]; \nbreak;\ncase 22: case 23:\n this.$=$$[$0-1]+'~'+$$[$0]; \nbreak;\ncase 24:\n yy.addRelation($$[$0]); \nbreak;\ncase 25:\n $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]); \nbreak;\ncase 33:\nyy.addClass($$[$0]);\nbreak;\ncase 34:\nyy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);\nbreak;\ncase 35:\n/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);\nbreak;\ncase 36:\nyy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);\nbreak;\ncase 37:\n yy.addAnnotation($$[$0],$$[$0-2]); \nbreak;\ncase 38:\n this.$ = [$$[$0]]; \nbreak;\ncase 39:\n $$[$0].push($$[$0-1]);this.$=$$[$0];\nbreak;\ncase 40:\n/*console.log('Rel found',$$[$0]);*/\nbreak;\ncase 41:\nyy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));\nbreak;\ncase 42:\n/*console.warn('Member',$$[$0]);*/\nbreak;\ncase 43:\n/*console.log('sep found',$$[$0]);*/\nbreak;\ncase 44:\n this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; \nbreak;\ncase 45:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}\nbreak;\ncase 46:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; \nbreak;\ncase 47:\n this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} \nbreak;\ncase 48:\n this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 49:\n this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 50:\n this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; \nbreak;\ncase 51:\n this.$={type1:'none',type2:'none',lineType:$$[$0]}; \nbreak;\ncase 52:\n this.$=yy.relationType.AGGREGATION;\nbreak;\ncase 53:\n this.$=yy.relationType.EXTENSION;\nbreak;\ncase 54:\n this.$=yy.relationType.COMPOSITION;\nbreak;\ncase 55:\n this.$=yy.relationType.DEPENDENCY;\nbreak;\ncase 56:\nthis.$=yy.lineType.LINE;\nbreak;\ncase 57:\nthis.$=yy.lineType.DOTTED_LINE;\nbreak;\ncase 58: case 64:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 59: case 65:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 60: case 68:\nthis.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 61:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1],$$[$0]);\nbreak;\ncase 62: case 70:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 63: case 71:\nthis.$ = $$[$0-4];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);yy.setTooltip($$[$0-3], $$[$0-1]);\nbreak;\ncase 66:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 67:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 69:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 72:\nyy.setCssClass($$[$0-1], $$[$0]);\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5},{1:[3]},{1:[2,1]},{1:[2,2]},{3:13,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5},{1:[2,8]},o($V6,[2,4]),o($V6,[2,5]),o($V6,[2,6]),o($V6,[2,7]),{13:14,19:[1,15]},{15:[1,16]},{19:[2,11]},{1:[2,3]},{14:17,16:[1,18],21:$V7},o([16,21],[2,12]),{5:29,6:28,7:$V0,8:$V1,9:$V2,10:$V3,12:10,18:$V4,23:20,25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:$V8,42:$V9,44:$Va,45:$Vb,56:$Vc,57:$Vd,59:$Ve,63:$Vf,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{15:[1,45]},{17:46,20:[1,47]},{15:[2,14]},{24:[1,48]},{15:[1,49],24:[2,16]},o($Vk,[2,24],{31:[1,50]}),o($Vk,[2,26]),o($Vk,[2,27]),o($Vk,[2,28]),o($Vk,[2,29]),o($Vk,[2,30]),o($Vk,[2,31]),o($Vk,[2,32]),o($Vk,[2,40],{46:51,48:54,49:55,31:[1,53],47:[1,52],50:$Vl,51:$Vm,52:$Vn,53:$Vo,54:$Vp,55:$Vq}),{26:62,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vk,[2,42]),o($Vk,[2,43]),{27:63,77:$Vg,78:$Vh,79:$Vi},{26:64,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{26:65,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{26:66,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{47:[1,67]},o($Vr,[2,19],{27:39,28:40,26:68,29:[1,69],77:$Vg,78:$Vh,79:$Vi,80:$Vj}),o($Vr,[2,20],{29:[1,70]}),o($Vs,[2,86]),o($Vs,[2,87]),o($Vs,[2,88]),o([15,24,29,31,38,39,47,50,51,52,53,54,55,60,62],[2,89]),o($Vt,[2,9]),{14:71,21:$V7},{21:[2,13]},{1:[2,15]},{5:29,6:28,7:$V0,8:$V1,9:$V2,10:$V3,12:10,18:$V4,23:72,24:[2,17],25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:$V8,42:$V9,44:$Va,45:$Vb,56:$Vc,57:$Vd,59:$Ve,63:$Vf,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vk,[2,25]),{26:73,27:39,28:40,47:[1,74],77:$Vg,78:$Vh,79:$Vi,80:$Vj},{46:75,48:54,49:55,50:$Vl,51:$Vm,52:$Vn,53:$Vo,54:$Vp,55:$Vq},o($Vk,[2,41]),{49:76,54:$Vp,55:$Vq},o($Vu,[2,51],{48:77,50:$Vl,51:$Vm,52:$Vn,53:$Vo}),o($Vv,[2,52]),o($Vv,[2,53]),o($Vv,[2,54]),o($Vv,[2,55]),o($Vw,[2,56]),o($Vw,[2,57]),o($Vk,[2,33],{38:[1,78],39:[1,79]}),{43:[1,80]},{47:[1,81]},{47:[1,82]},{60:[1,83],62:[1,84]},{27:85,77:$Vg,78:$Vh,79:$Vi},o($Vr,[2,21]),o($Vr,[2,22]),o($Vr,[2,23]),{15:[1,86]},{24:[2,18]},o($Vx,[2,44]),{26:87,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},{26:88,27:39,28:40,47:[1,89],77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vu,[2,50],{48:90,50:$Vl,51:$Vm,52:$Vn,53:$Vo}),o($Vu,[2,49]),{27:91,77:$Vg,78:$Vh,79:$Vi},{40:92,44:$Vy},{26:94,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vk,[2,58],{47:[1,95]}),o($Vk,[2,60],{47:[1,97],58:[1,96]}),o($Vk,[2,64],{47:[1,98],61:[1,99]}),o($Vk,[2,68],{47:[1,101],58:[1,100]}),o($Vk,[2,72]),o($Vt,[2,10]),o($Vx,[2,46]),o($Vx,[2,45]),{26:102,27:39,28:40,77:$Vg,78:$Vh,79:$Vi,80:$Vj},o($Vu,[2,48]),o($Vk,[2,34],{39:[1,103]}),{41:[1,104]},{40:105,41:[2,38],44:$Vy},o($Vk,[2,37]),o($Vk,[2,59]),o($Vk,[2,61]),o($Vk,[2,62],{58:[1,106]}),o($Vk,[2,65]),o($Vk,[2,66],{47:[1,107]}),o($Vk,[2,69]),o($Vk,[2,70],{58:[1,108]}),o($Vx,[2,47]),{40:109,44:$Vy},o($Vk,[2,35]),{41:[2,39]},o($Vk,[2,63]),o($Vk,[2,67]),o($Vk,[2,71]),{41:[1,110]},o($Vk,[2,36])],\ndefaultActions: {2:[2,1],3:[2,2],5:[2,8],12:[2,11],13:[2,3],19:[2,14],47:[2,13],48:[2,15],72:[2,18],105:[2,39]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 18; \nbreak;\ncase 1:return 7;\nbreak;\ncase 2:return 8;\nbreak;\ncase 3:return 9;\nbreak;\ncase 4:return 10;\nbreak;\ncase 5: this.begin('type_directive'); return 19; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 16; \nbreak;\ncase 7: this.popState(); this.popState(); return 21; \nbreak;\ncase 8:return 20;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:return 15;\nbreak;\ncase 12:/* skip whitespace */\nbreak;\ncase 13:return 22;\nbreak;\ncase 14:return 22;\nbreak;\ncase 15: this.begin(\"struct\"); /*console.log('Starting struct');*/ return 39;\nbreak;\ncase 16:return \"EOF_IN_STRUCT\";\nbreak;\ncase 17:return \"OPEN_IN_STRUCT\";\nbreak;\ncase 18: /*console.log('Ending struct');*/this.popState(); return 41;\nbreak;\ncase 19:/* nothing */\nbreak;\ncase 20: /*console.log('lex-member: ' + yy_.yytext);*/ return \"MEMBER\";\nbreak;\ncase 21:return 37;\nbreak;\ncase 22:return 63;\nbreak;\ncase 23:return 56;\nbreak;\ncase 24:return 57;\nbreak;\ncase 25:return 59;\nbreak;\ncase 26:return 42;\nbreak;\ncase 27:return 43;\nbreak;\ncase 28:this.begin(\"generic\");\nbreak;\ncase 29:this.popState();\nbreak;\ncase 30:return \"GENERICTYPE\";\nbreak;\ncase 31:this.begin(\"string\");\nbreak;\ncase 32:this.popState();\nbreak;\ncase 33:return \"STR\";\nbreak;\ncase 34:this.begin(\"bqstring\");\nbreak;\ncase 35:this.popState();\nbreak;\ncase 36:return \"BQUOTE_STR\";\nbreak;\ncase 37:this.begin(\"href\");\nbreak;\ncase 38:this.popState();\nbreak;\ncase 39:return 62;\nbreak;\ncase 40:this.begin(\"callback_name\");\nbreak;\ncase 41:this.popState();\nbreak;\ncase 42:this.popState(); this.begin(\"callback_args\");\nbreak;\ncase 43:return 60;\nbreak;\ncase 44:this.popState();\nbreak;\ncase 45:return 61;\nbreak;\ncase 46:return 58;\nbreak;\ncase 47:return 58;\nbreak;\ncase 48:return 58;\nbreak;\ncase 49:return 58;\nbreak;\ncase 50:return 51;\nbreak;\ncase 51:return 51;\nbreak;\ncase 52:return 53;\nbreak;\ncase 53:return 53;\nbreak;\ncase 54:return 52;\nbreak;\ncase 55:return 50;\nbreak;\ncase 56:return 54;\nbreak;\ncase 57:return 55;\nbreak;\ncase 58:return 31;\nbreak;\ncase 59:return 38;\nbreak;\ncase 60:return 75;\nbreak;\ncase 61:return 'DOT';\nbreak;\ncase 62:return 'PLUS';\nbreak;\ncase 63:return 72;\nbreak;\ncase 64:return 'EQUALS';\nbreak;\ncase 65:return 'EQUALS';\nbreak;\ncase 66:return 79;\nbreak;\ncase 67:return 'PUNCTUATION';\nbreak;\ncase 68:return 78;\nbreak;\ncase 69:return 77;\nbreak;\ncase 70:return 74;\nbreak;\ncase 71:return 24;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:classDiagram-v2\\b)/,/^(?:classDiagram\\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\\n])/,/^(?:[^{}\\n]*)/,/^(?:class\\b)/,/^(?:cssClass\\b)/,/^(?:callback\\b)/,/^(?:link\\b)/,/^(?:click\\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::{1}[^:\\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\\w+)/,/^(?:[!\"#$%&'*+,-.`?\\\\/])/,/^(?:[0-9]+)/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"callback_args\":{\"rules\":[44,45],\"inclusive\":false},\"callback_name\":{\"rules\":[41,42,43],\"inclusive\":false},\"href\":{\"rules\":[38,39],\"inclusive\":false},\"struct\":{\"rules\":[16,17,18,19,20],\"inclusive\":false},\"generic\":{\"rules\":[29,30],\"inclusive\":false},\"bqstring\":{\"rules\":[35,36],\"inclusive\":false},\"string\":{\"rules\":[32,33],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,31,34,37,40,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,23,41],$V3=[1,17],$V4=[1,20],$V5=[1,25],$V6=[1,26],$V7=[1,27],$V8=[1,28],$V9=[1,37],$Va=[23,38,39],$Vb=[4,6,9,11,23,41],$Vc=[34,35,36,37],$Vd=[22,29],$Ve=[1,55];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"ER_DIAGRAM\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"entityName\":17,\"relSpec\":18,\"role\":19,\"BLOCK_START\":20,\"attributes\":21,\"BLOCK_STOP\":22,\"ALPHANUM\":23,\"attribute\":24,\"attributeType\":25,\"attributeName\":26,\"attributeKeyType\":27,\"attributeComment\":28,\"ATTRIBUTE_WORD\":29,\"ATTRIBUTE_KEY\":30,\"COMMENT\":31,\"cardinality\":32,\"relType\":33,\"ZERO_OR_ONE\":34,\"ZERO_OR_MORE\":35,\"ONE_OR_MORE\":36,\"ONLY_ONE\":37,\"NON_IDENTIFYING\":38,\"IDENTIFYING\":39,\"WORD\":40,\"open_directive\":41,\"type_directive\":42,\"arg_directive\":43,\"close_directive\":44,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"ER_DIAGRAM\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",20:\"BLOCK_START\",22:\"BLOCK_STOP\",23:\"ALPHANUM\",29:\"ATTRIBUTE_WORD\",30:\"ATTRIBUTE_KEY\",31:\"COMMENT\",34:\"ZERO_OR_ONE\",35:\"ZERO_OR_MORE\",36:\"ONE_OR_MORE\",37:\"ONLY_ONE\",38:\"NON_IDENTIFYING\",39:\"IDENTIFYING\",40:\"WORD\",41:\"open_directive\",42:\"type_directive\",43:\"arg_directive\",44:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[17,1],[21,1],[21,2],[24,2],[24,3],[24,3],[24,4],[25,1],[26,1],[27,1],[28,1],[18,3],[32,1],[32,1],[32,1],[32,1],[33,1],[33,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n /*console.log('finished parsing');*/ \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 12:\n\n yy.addEntity($$[$0-4]);\n yy.addEntity($$[$0-2]);\n yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);\n /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/\n \nbreak;\ncase 13:\n\n /* console.log('detected block'); */\n yy.addEntity($$[$0-3]);\n yy.addAttributes($$[$0-3], $$[$0-1]);\n /* console.log('handled block'); */\n \nbreak;\ncase 14:\n yy.addEntity($$[$0-2]); \nbreak;\ncase 15:\n yy.addEntity($$[$0]); \nbreak;\ncase 16:\n this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/ \nbreak;\ncase 17:\n this.$ = [$$[$0]]; \nbreak;\ncase 18:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 19:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 20:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 21:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 22:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 23: case 24: case 25:\n this.$=$$[$0]; \nbreak;\ncase 26:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 27:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 28:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 29:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 30:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 31:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 32:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 33:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 34:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 35:\n this.$ = $$[$0]; \nbreak;\ncase 36:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 37:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 38:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 39:\n yy.parseDirective('}%%', 'close_directive', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,41:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,41:$V1},{13:8,42:[1,9]},{42:[2,36]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:$V3,41:$V1},{1:[2,2]},{14:18,15:[1,19],44:$V4},o([15,44],[2,37]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:15,10:21,12:4,17:16,23:$V3,41:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:22,32:24,20:[1,23],34:$V5,35:$V6,36:$V7,37:$V8}),o([6,9,11,15,20,23,34,35,36,37,41],[2,16]),{11:[1,29]},{16:30,43:[1,31]},{11:[2,39]},o($V2,[2,5]),{17:32,23:$V3},{21:33,22:[1,34],24:35,25:36,29:$V9},{33:38,38:[1,39],39:[1,40]},o($Va,[2,28]),o($Va,[2,29]),o($Va,[2,30]),o($Va,[2,31]),o($Vb,[2,9]),{14:41,44:$V4},{44:[2,38]},{15:[1,42]},{22:[1,43]},o($V2,[2,14]),{21:44,22:[2,17],24:35,25:36,29:$V9},{26:45,29:[1,46]},{29:[2,23]},{32:47,34:$V5,35:$V6,36:$V7,37:$V8},o($Vc,[2,32]),o($Vc,[2,33]),{11:[1,48]},{19:49,23:[1,51],40:[1,50]},o($V2,[2,13]),{22:[2,18]},o($Vd,[2,19],{27:52,28:53,30:[1,54],31:$Ve}),o([22,29,30,31],[2,24]),{23:[2,27]},o($Vb,[2,10]),o($V2,[2,12]),o($V2,[2,34]),o($V2,[2,35]),o($Vd,[2,20],{28:56,31:$Ve}),o($Vd,[2,21]),o([22,29,31],[2,25]),o($Vd,[2,26]),o($Vd,[2,22])],\ndefaultActions: {5:[2,36],7:[2,2],20:[2,39],31:[2,38],37:[2,23],44:[2,18],47:[2,27]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 41; \nbreak;\ncase 1: this.begin('type_directive'); return 42; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 3: this.popState(); this.popState(); return 44; \nbreak;\ncase 4:return 43;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:return 11;\nbreak;\ncase 8:/* skip whitespace */\nbreak;\ncase 9:return 9;\nbreak;\ncase 10:return 40;\nbreak;\ncase 11:return 4;\nbreak;\ncase 12: this.begin(\"block\"); return 20; \nbreak;\ncase 13:/* skip whitespace in block */\nbreak;\ncase 14:return 30\nbreak;\ncase 15:return 29\nbreak;\ncase 16:return 31;\nbreak;\ncase 17:/* nothing */\nbreak;\ncase 18: this.popState(); return 22; \nbreak;\ncase 19:return yy_.yytext[0];\nbreak;\ncase 20:return 34;\nbreak;\ncase 21:return 35;\nbreak;\ncase 22:return 36;\nbreak;\ncase 23:return 37;\nbreak;\ncase 24:return 34;\nbreak;\ncase 25:return 35;\nbreak;\ncase 26:return 36;\nbreak;\ncase 27:return 38;\nbreak;\ncase 28:return 39;\nbreak;\ncase 29:return 38;\nbreak;\ncase 30:return 38;\nbreak;\ncase 31:return 23;\nbreak;\ncase 32:return yy_.yytext[0];\nbreak;\ncase 33:return 6;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:[\\s]+)/i,/^(?:\"[^\"]*\")/i,/^(?:erDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\s+)/i,/^(?:(?:PK)|(?:FK))/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:\"[^\"]*\")/i,/^(?:[\\n]+)/i,/^(?:\\})/i,/^(?:.)/i,/^(?:\\|o\\b)/i,/^(?:\\}o\\b)/i,/^(?:\\}\\|)/i,/^(?:\\|\\|)/i,/^(?:o\\|)/i,/^(?:o\\{)/i,/^(?:\\|\\{)/i,/^(?:\\.\\.)/i,/^(?:--)/i,/^(?:\\.-)/i,/^(?:-\\.)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:.)/i,/^(?:$)/i],\nconditions: {\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"block\":{\"rules\":[13,14,15,16,17,18,19],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,20,21,22,23,24,25,26,27,28,29,30,31,32,33],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,9],$V1=[1,7],$V2=[1,6],$V3=[1,8],$V4=[1,20,21,22,23,38,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],$V5=[2,10],$V6=[1,20],$V7=[1,21],$V8=[1,22],$V9=[1,23],$Va=[1,30],$Vb=[1,59],$Vc=[1,45],$Vd=[1,49],$Ve=[1,33],$Vf=[1,34],$Vg=[1,35],$Vh=[1,36],$Vi=[1,37],$Vj=[1,53],$Vk=[1,60],$Vl=[1,48],$Vm=[1,50],$Vn=[1,52],$Vo=[1,56],$Vp=[1,57],$Vq=[1,38],$Vr=[1,39],$Vs=[1,40],$Vt=[1,41],$Vu=[1,58],$Vv=[1,47],$Vw=[1,51],$Vx=[1,54],$Vy=[1,55],$Vz=[1,46],$VA=[1,63],$VB=[1,68],$VC=[1,20,21,22,23,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],$VD=[1,72],$VE=[1,71],$VF=[1,73],$VG=[20,21,23,74,75],$VH=[1,94],$VI=[1,99],$VJ=[1,102],$VK=[1,103],$VL=[1,96],$VM=[1,101],$VN=[1,104],$VO=[1,97],$VP=[1,109],$VQ=[1,108],$VR=[1,98],$VS=[1,100],$VT=[1,105],$VU=[1,106],$VV=[1,107],$VW=[1,110],$VX=[20,21,22,23,74,75],$VY=[20,21,22,23,48,74,75],$VZ=[20,21,22,23,40,47,48,50,52,54,56,58,59,60,62,64,66,67,69,74,75,84,88,98,99,102,104,105,115,116,117,118,119,120],$V_=[20,21,23],$V$=[20,21,23,47,59,60,74,75,84,88,98,99,102,104,105,115,116,117,118,119,120],$V01=[1,12,20,21,22,23,24,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],$V11=[47,59,60,84,88,98,99,102,104,105,115,116,117,118,119,120],$V21=[1,143],$V31=[1,151],$V41=[1,152],$V51=[1,153],$V61=[1,154],$V71=[1,138],$V81=[1,139],$V91=[1,135],$Va1=[1,146],$Vb1=[1,147],$Vc1=[1,148],$Vd1=[1,149],$Ve1=[1,150],$Vf1=[1,155],$Vg1=[1,156],$Vh1=[1,141],$Vi1=[1,144],$Vj1=[1,140],$Vk1=[1,137],$Vl1=[20,21,22,23,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],$Vm1=[1,159],$Vn1=[20,21,22,23,26,47,59,60,84,98,99,102,104,105,115,116,117,118,119,120],$Vo1=[20,21,22,23,24,26,38,40,41,42,47,51,53,55,57,59,60,61,63,65,66,68,70,74,75,79,80,81,82,83,84,85,88,98,99,102,104,105,106,107,115,116,117,118,119,120],$Vp1=[12,21,22,24],$Vq1=[22,99],$Vr1=[1,242],$Vs1=[1,237],$Vt1=[1,238],$Vu1=[1,246],$Vv1=[1,243],$Vw1=[1,240],$Vx1=[1,239],$Vy1=[1,241],$Vz1=[1,244],$VA1=[1,245],$VB1=[1,247],$VC1=[1,265],$VD1=[20,21,23,99],$VE1=[20,21,22,23,59,60,79,95,98,99,102,103,104,105,106];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"directive\":5,\"openDirective\":6,\"typeDirective\":7,\"closeDirective\":8,\"separator\":9,\":\":10,\"argDirective\":11,\"open_directive\":12,\"type_directive\":13,\"arg_directive\":14,\"close_directive\":15,\"graphConfig\":16,\"document\":17,\"line\":18,\"statement\":19,\"SEMI\":20,\"NEWLINE\":21,\"SPACE\":22,\"EOF\":23,\"GRAPH\":24,\"NODIR\":25,\"DIR\":26,\"FirstStmtSeperator\":27,\"ending\":28,\"endToken\":29,\"spaceList\":30,\"spaceListNewline\":31,\"verticeStatement\":32,\"styleStatement\":33,\"linkStyleStatement\":34,\"classDefStatement\":35,\"classStatement\":36,\"clickStatement\":37,\"subgraph\":38,\"text\":39,\"SQS\":40,\"SQE\":41,\"end\":42,\"direction\":43,\"link\":44,\"node\":45,\"vertex\":46,\"AMP\":47,\"STYLE_SEPARATOR\":48,\"idString\":49,\"PS\":50,\"PE\":51,\"(-\":52,\"-)\":53,\"STADIUMSTART\":54,\"STADIUMEND\":55,\"SUBROUTINESTART\":56,\"SUBROUTINEEND\":57,\"VERTEX_WITH_PROPS_START\":58,\"ALPHA\":59,\"COLON\":60,\"PIPE\":61,\"CYLINDERSTART\":62,\"CYLINDEREND\":63,\"DIAMOND_START\":64,\"DIAMOND_STOP\":65,\"TAGEND\":66,\"TRAPSTART\":67,\"TRAPEND\":68,\"INVTRAPSTART\":69,\"INVTRAPEND\":70,\"linkStatement\":71,\"arrowText\":72,\"TESTSTR\":73,\"START_LINK\":74,\"LINK\":75,\"textToken\":76,\"STR\":77,\"keywords\":78,\"STYLE\":79,\"LINKSTYLE\":80,\"CLASSDEF\":81,\"CLASS\":82,\"CLICK\":83,\"DOWN\":84,\"UP\":85,\"textNoTags\":86,\"textNoTagsToken\":87,\"DEFAULT\":88,\"stylesOpt\":89,\"alphaNum\":90,\"CALLBACKNAME\":91,\"CALLBACKARGS\":92,\"HREF\":93,\"LINK_TARGET\":94,\"HEX\":95,\"numList\":96,\"INTERPOLATE\":97,\"NUM\":98,\"COMMA\":99,\"style\":100,\"styleComponent\":101,\"MINUS\":102,\"UNIT\":103,\"BRKT\":104,\"DOT\":105,\"PCT\":106,\"TAGSTART\":107,\"alphaNumToken\":108,\"idStringToken\":109,\"alphaNumStatement\":110,\"direction_tb\":111,\"direction_bt\":112,\"direction_rl\":113,\"direction_lr\":114,\"PUNCTUATION\":115,\"UNICODE_TEXT\":116,\"PLUS\":117,\"EQUALS\":118,\"MULT\":119,\"UNDERSCORE\":120,\"graphCodeTokens\":121,\"ARROW_CROSS\":122,\"ARROW_POINT\":123,\"ARROW_CIRCLE\":124,\"ARROW_OPEN\":125,\"QUOTE\":126,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",10:\":\",12:\"open_directive\",13:\"type_directive\",14:\"arg_directive\",15:\"close_directive\",20:\"SEMI\",21:\"NEWLINE\",22:\"SPACE\",23:\"EOF\",24:\"GRAPH\",25:\"NODIR\",26:\"DIR\",38:\"subgraph\",40:\"SQS\",41:\"SQE\",42:\"end\",47:\"AMP\",48:\"STYLE_SEPARATOR\",50:\"PS\",51:\"PE\",52:\"(-\",53:\"-)\",54:\"STADIUMSTART\",55:\"STADIUMEND\",56:\"SUBROUTINESTART\",57:\"SUBROUTINEEND\",58:\"VERTEX_WITH_PROPS_START\",59:\"ALPHA\",60:\"COLON\",61:\"PIPE\",62:\"CYLINDERSTART\",63:\"CYLINDEREND\",64:\"DIAMOND_START\",65:\"DIAMOND_STOP\",66:\"TAGEND\",67:\"TRAPSTART\",68:\"TRAPEND\",69:\"INVTRAPSTART\",70:\"INVTRAPEND\",73:\"TESTSTR\",74:\"START_LINK\",75:\"LINK\",77:\"STR\",79:\"STYLE\",80:\"LINKSTYLE\",81:\"CLASSDEF\",82:\"CLASS\",83:\"CLICK\",84:\"DOWN\",85:\"UP\",88:\"DEFAULT\",91:\"CALLBACKNAME\",92:\"CALLBACKARGS\",93:\"HREF\",94:\"LINK_TARGET\",95:\"HEX\",97:\"INTERPOLATE\",98:\"NUM\",99:\"COMMA\",102:\"MINUS\",103:\"UNIT\",104:\"BRKT\",105:\"DOT\",106:\"PCT\",107:\"TAGSTART\",111:\"direction_tb\",112:\"direction_bt\",113:\"direction_rl\",114:\"direction_lr\",115:\"PUNCTUATION\",116:\"UNICODE_TEXT\",117:\"PLUS\",118:\"EQUALS\",119:\"MULT\",120:\"UNDERSCORE\",122:\"ARROW_CROSS\",123:\"ARROW_POINT\",124:\"ARROW_CIRCLE\",125:\"ARROW_OPEN\",126:\"QUOTE\"},\nproductions_: [0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[45,1],[45,5],[45,3],[46,4],[46,6],[46,4],[46,4],[46,4],[46,8],[46,4],[46,4],[46,4],[46,6],[46,4],[46,4],[46,4],[46,4],[46,4],[46,1],[44,2],[44,3],[44,3],[44,1],[44,3],[71,1],[72,3],[39,1],[39,2],[39,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[86,1],[86,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[96,1],[96,3],[89,1],[89,3],[100,1],[100,2],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[87,1],[87,1],[87,1],[87,1],[49,1],[49,2],[90,1],[90,2],[110,1],[110,1],[110,1],[110,1],[43,1],[43,1],[43,1],[43,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 5:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 6:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 7:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 8:\n yy.parseDirective('}%%', 'close_directive', 'flowchart'); \nbreak;\ncase 10:\n this.$ = [];\nbreak;\ncase 11:\n\n\t if($$[$0] !== []){\n\t $$[$0-1].push($$[$0]);\n\t }\n\t this.$=$$[$0-1];\nbreak;\ncase 12: case 78: case 80: case 92: case 148: case 150: case 151:\nthis.$=$$[$0];\nbreak;\ncase 19:\n yy.setDirection('TB');this.$ = 'TB';\nbreak;\ncase 20:\n yy.setDirection($$[$0-1]);this.$ = $$[$0-1];\nbreak;\ncase 35:\n /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes\nbreak;\ncase 36: case 37: case 38: case 39: case 40:\nthis.$=[];\nbreak;\ncase 41:\nthis.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);\nbreak;\ncase 42:\nthis.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);\nbreak;\ncase 43:\nthis.$=yy.addSubGraph(undefined,$$[$0-1],undefined);\nbreak;\ncase 48:\n /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) } \nbreak;\ncase 49:\n /* console.warn('vs',$$[$0-3].stmt,$$[$0-1]); */ yy.addLink($$[$0-3].stmt,$$[$0-1],$$[$0-2]); this.$ = { stmt: $$[$0-1], nodes: $$[$0-1].concat($$[$0-3].nodes) } \nbreak;\ncase 50:\n/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }\nbreak;\ncase 51:\n /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }\nbreak;\ncase 52:\n /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];\nbreak;\ncase 53:\n this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */ \nbreak;\ncase 54:\nthis.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])\nbreak;\ncase 55:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');\nbreak;\ncase 56:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');\nbreak;\ncase 57:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');\nbreak;\ncase 58:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');\nbreak;\ncase 59:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');\nbreak;\ncase 60:\nthis.$ = $$[$0-7];yy.addVertex($$[$0-7],$$[$0-1],'rect',undefined,undefined,undefined, Object.fromEntries([[$$[$0-5], $$[$0-3]]]));\nbreak;\ncase 61:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');\nbreak;\ncase 62:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');\nbreak;\ncase 63:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');\nbreak;\ncase 64:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');\nbreak;\ncase 65:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');\nbreak;\ncase 66:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');\nbreak;\ncase 67:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');\nbreak;\ncase 68:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');\nbreak;\ncase 69:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');\nbreak;\ncase 70:\n /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);\nbreak;\ncase 71:\n$$[$0-1].text = $$[$0];this.$ = $$[$0-1];\nbreak;\ncase 72: case 73:\n$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];\nbreak;\ncase 74:\nthis.$ = $$[$0];\nbreak;\ncase 75:\nvar inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length,\"text\":$$[$0-1]};\nbreak;\ncase 76:\nvar inf = yy.destructLink($$[$0]);this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length};\nbreak;\ncase 77:\nthis.$ = $$[$0-1];\nbreak;\ncase 79: case 93: case 149:\nthis.$=$$[$0-1]+''+$$[$0];\nbreak;\ncase 94: case 95:\nthis.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);\nbreak;\ncase 96:\nthis.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);\nbreak;\ncase 97: case 105:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 98: case 106:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 99:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 100:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-4], $$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-4], $$[$0]);\nbreak;\ncase 101: case 107:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 102: case 108:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 103: case 109:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);\nbreak;\ncase 104: case 110:\nthis.$ = $$[$0-5];yy.setLink($$[$0-5], $$[$0-4], $$[$0]);yy.setTooltip($$[$0-5], $$[$0-2]);\nbreak;\ncase 111:\nthis.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);\nbreak;\ncase 112: case 114:\nthis.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);\nbreak;\ncase 113:\nthis.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);\nbreak;\ncase 115:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);\nbreak;\ncase 116:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);\nbreak;\ncase 117:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);\nbreak;\ncase 118:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);\nbreak;\ncase 119: case 121:\nthis.$ = [$$[$0]]\nbreak;\ncase 120: case 122:\n$$[$0-2].push($$[$0]);this.$ = $$[$0-2];\nbreak;\ncase 124:\nthis.$ = $$[$0-1] + $$[$0];\nbreak;\ncase 146:\nthis.$=$$[$0]\nbreak;\ncase 147:\nthis.$=$$[$0-1]+''+$$[$0]\nbreak;\ncase 152:\nthis.$='v';\nbreak;\ncase 153:\nthis.$='-';\nbreak;\ncase 154:\n this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 155:\n this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 156:\n this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 157:\n this.$={stmt:'dir', value:'LR'};\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},o($V4,$V5,{17:11}),{7:12,13:[1,13]},{16:14,21:$V1,22:$V2,24:$V3},{16:15,21:$V1,22:$V2,24:$V3},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,43:31,45:32,46:42,47:$Vb,49:43,59:$Vc,60:$Vd,79:$Ve,80:$Vf,81:$Vg,82:$Vh,83:$Vi,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,111:$Vq,112:$Vr,113:$Vs,114:$Vt,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},{8:61,10:[1,62],15:$VA},o([10,15],[2,6]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{20:[1,65],21:[1,66],22:$VB,27:64,30:67},o($VC,[2,11]),o($VC,[2,12]),o($VC,[2,13]),o($VC,[2,14]),o($VC,[2,15]),o($VC,[2,16]),{9:69,20:$VD,21:$VE,23:$VF,44:70,71:74,74:[1,75],75:[1,76]},{9:77,20:$VD,21:$VE,23:$VF},{9:78,20:$VD,21:$VE,23:$VF},{9:79,20:$VD,21:$VE,23:$VF},{9:80,20:$VD,21:$VE,23:$VF},{9:81,20:$VD,21:$VE,23:$VF},{9:83,20:$VD,21:$VE,22:[1,82],23:$VF},o($VC,[2,44]),o($VG,[2,51],{30:84,22:$VB}),{22:[1,85]},{22:[1,86]},{22:[1,87]},{22:[1,88]},{26:$VH,47:$VI,59:$VJ,60:$VK,77:[1,92],84:$VL,90:91,91:[1,89],93:[1,90],98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($VC,[2,154]),o($VC,[2,155]),o($VC,[2,156]),o($VC,[2,157]),o($VX,[2,52],{48:[1,111]}),o($VY,[2,70],{109:123,40:[1,112],47:$Vb,50:[1,113],52:[1,114],54:[1,115],56:[1,116],58:[1,117],59:$Vc,60:$Vd,62:[1,118],64:[1,119],66:[1,120],67:[1,121],69:[1,122],84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz}),o($VZ,[2,146]),o($VZ,[2,171]),o($VZ,[2,172]),o($VZ,[2,173]),o($VZ,[2,174]),o($VZ,[2,175]),o($VZ,[2,176]),o($VZ,[2,177]),o($VZ,[2,178]),o($VZ,[2,179]),o($VZ,[2,180]),o($VZ,[2,181]),o($VZ,[2,182]),o($VZ,[2,183]),o($VZ,[2,184]),o($VZ,[2,185]),o($VZ,[2,186]),{9:124,20:$VD,21:$VE,23:$VF},{11:125,14:[1,126]},o($V_,[2,8]),o($V4,[2,20]),o($V4,[2,26]),o($V4,[2,27]),{21:[1,127]},o($V$,[2,34],{30:128,22:$VB}),o($VC,[2,35]),{45:129,46:42,47:$Vb,49:43,59:$Vc,60:$Vd,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},o($V01,[2,45]),o($V01,[2,46]),o($V01,[2,47]),o($V11,[2,74],{72:130,61:[1,132],73:[1,131]}),{22:$V21,24:$V31,26:$V41,38:$V51,39:133,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o([47,59,60,61,73,84,88,98,99,102,104,105,115,116,117,118,119,120],[2,76]),o($VC,[2,36]),o($VC,[2,37]),o($VC,[2,38]),o($VC,[2,39]),o($VC,[2,40]),{22:$V21,24:$V31,26:$V41,38:$V51,39:157,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($Vl1,$V5,{17:158}),o($VG,[2,50],{47:$Vm1}),{26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,90:160,95:[1,161],98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{88:[1,162],96:163,98:[1,164]},{26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,88:[1,165],90:166,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,90:167,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($V_,[2,97],{22:[1,168],92:[1,169]}),o($V_,[2,101],{22:[1,170]}),o($V_,[2,105],{108:95,110:172,22:[1,171],26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW}),o($V_,[2,107],{22:[1,173]}),o($Vn1,[2,148]),o($Vn1,[2,150]),o($Vn1,[2,151]),o($Vn1,[2,152]),o($Vn1,[2,153]),o($Vo1,[2,158]),o($Vo1,[2,159]),o($Vo1,[2,160]),o($Vo1,[2,161]),o($Vo1,[2,162]),o($Vo1,[2,163]),o($Vo1,[2,164]),o($Vo1,[2,165]),o($Vo1,[2,166]),o($Vo1,[2,167]),o($Vo1,[2,168]),o($Vo1,[2,169]),o($Vo1,[2,170]),{47:$Vb,49:174,59:$Vc,60:$Vd,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},{22:$V21,24:$V31,26:$V41,38:$V51,39:175,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:177,42:$V61,47:$VI,50:[1,176],59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:178,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:179,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:180,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{59:[1,181]},{22:$V21,24:$V31,26:$V41,38:$V51,39:182,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:183,42:$V61,47:$VI,59:$VJ,60:$VK,64:[1,184],66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:185,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:186,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:187,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($VZ,[2,147]),o($Vp1,[2,3]),{8:188,15:$VA},{15:[2,7]},o($V4,[2,28]),o($V$,[2,33]),o($VG,[2,48],{30:189,22:$VB}),o($V11,[2,71],{22:[1,190]}),{22:[1,191]},{22:$V21,24:$V31,26:$V41,38:$V51,39:192,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,75:[1,193],76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($Vo1,[2,78]),o($Vo1,[2,80]),o($Vo1,[2,136]),o($Vo1,[2,137]),o($Vo1,[2,138]),o($Vo1,[2,139]),o($Vo1,[2,140]),o($Vo1,[2,141]),o($Vo1,[2,142]),o($Vo1,[2,143]),o($Vo1,[2,144]),o($Vo1,[2,145]),o($Vo1,[2,81]),o($Vo1,[2,82]),o($Vo1,[2,83]),o($Vo1,[2,84]),o($Vo1,[2,85]),o($Vo1,[2,86]),o($Vo1,[2,87]),o($Vo1,[2,88]),o($Vo1,[2,89]),o($Vo1,[2,90]),o($Vo1,[2,91]),{9:196,20:$VD,21:$VE,22:$V21,23:$VF,24:$V31,26:$V41,38:$V51,40:[1,195],42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,197],43:31,45:32,46:42,47:$Vb,49:43,59:$Vc,60:$Vd,79:$Ve,80:$Vf,81:$Vg,82:$Vh,83:$Vi,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,111:$Vq,112:$Vr,113:$Vs,114:$Vt,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},{22:$VB,30:198},{22:[1,199],26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:172,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:[1,200]},{22:[1,201]},{22:[1,202],99:[1,203]},o($Vq1,[2,119]),{22:[1,204]},{22:[1,205],26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:172,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:[1,206],26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:172,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{77:[1,207]},o($V_,[2,99],{22:[1,208]}),{77:[1,209],94:[1,210]},{77:[1,211]},o($Vn1,[2,149]),{77:[1,212],94:[1,213]},o($VX,[2,54],{109:123,47:$Vb,59:$Vc,60:$Vd,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz}),{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,214],42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:215,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,51:[1,216],59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,53:[1,217],59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,55:[1,218],59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,57:[1,219],59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{60:[1,220]},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,63:[1,221],66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,65:[1,222],66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,39:223,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,224],42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,68:[1,225],70:[1,226],74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,68:[1,228],70:[1,227],74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{9:229,20:$VD,21:$VE,23:$VF},o($VG,[2,49],{47:$Vm1}),o($V11,[2,73]),o($V11,[2,72]),{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,61:[1,230],66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($V11,[2,75]),o($Vo1,[2,79]),{22:$V21,24:$V31,26:$V41,38:$V51,39:231,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($Vl1,$V5,{17:232}),o($VC,[2,43]),{46:233,47:$Vb,49:43,59:$Vc,60:$Vd,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:234,95:$Vv1,98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:248,95:$Vv1,98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:249,95:$Vv1,97:[1,250],98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:251,95:$Vv1,97:[1,252],98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{98:[1,253]},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:254,95:$Vv1,98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:255,95:$Vv1,98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,90:256,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($V_,[2,98]),{77:[1,257]},o($V_,[2,102],{22:[1,258]}),o($V_,[2,103]),o($V_,[2,106]),o($V_,[2,108],{22:[1,259]}),o($V_,[2,109]),o($VY,[2,55]),{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,51:[1,260],59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($VY,[2,62]),o($VY,[2,57]),o($VY,[2,58]),o($VY,[2,59]),{59:[1,261]},o($VY,[2,61]),o($VY,[2,63]),{22:$V21,24:$V31,26:$V41,38:$V51,42:$V61,47:$VI,59:$VJ,60:$VK,65:[1,262],66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($VY,[2,65]),o($VY,[2,66]),o($VY,[2,68]),o($VY,[2,67]),o($VY,[2,69]),o($Vp1,[2,4]),o([22,47,59,60,84,88,98,99,102,104,105,115,116,117,118,119,120],[2,77]),{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,263],42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,264],43:31,45:32,46:42,47:$Vb,49:43,59:$Vc,60:$Vd,79:$Ve,80:$Vf,81:$Vg,82:$Vh,83:$Vi,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,111:$Vq,112:$Vr,113:$Vs,114:$Vt,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},o($VX,[2,53]),o($V_,[2,111],{99:$VC1}),o($VD1,[2,121],{101:266,22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,95:$Vv1,98:$Vw1,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1}),o($VE1,[2,123]),o($VE1,[2,125]),o($VE1,[2,126]),o($VE1,[2,127]),o($VE1,[2,128]),o($VE1,[2,129]),o($VE1,[2,130]),o($VE1,[2,131]),o($VE1,[2,132]),o($VE1,[2,133]),o($VE1,[2,134]),o($VE1,[2,135]),o($V_,[2,112],{99:$VC1}),o($V_,[2,113],{99:$VC1}),{22:[1,267]},o($V_,[2,114],{99:$VC1}),{22:[1,268]},o($Vq1,[2,120]),o($V_,[2,94],{99:$VC1}),o($V_,[2,95],{99:$VC1}),o($V_,[2,96],{108:95,110:172,26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW}),o($V_,[2,100]),{94:[1,269]},{94:[1,270]},{51:[1,271]},{61:[1,272]},{65:[1,273]},{9:274,20:$VD,21:$VE,23:$VF},o($VC,[2,42]),{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,95:$Vv1,98:$Vw1,100:275,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},o($VE1,[2,124]),{26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,90:276,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,90:277,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,108:95,110:93,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($V_,[2,104]),o($V_,[2,110]),o($VY,[2,56]),{22:$V21,24:$V31,26:$V41,38:$V51,39:278,42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:134,77:$V91,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},o($VY,[2,64]),o($Vl1,$V5,{17:279}),o($VD1,[2,122],{101:266,22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,95:$Vv1,98:$Vw1,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1}),o($V_,[2,117],{108:95,110:172,22:[1,280],26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW}),o($V_,[2,118],{108:95,110:172,22:[1,281],26:$VH,47:$VI,59:$VJ,60:$VK,84:$VL,98:$VM,99:$VN,102:$VO,104:$VP,105:$VQ,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW}),{22:$V21,24:$V31,26:$V41,38:$V51,41:[1,282],42:$V61,47:$VI,59:$VJ,60:$VK,66:$V71,74:$V81,76:194,78:145,79:$Va1,80:$Vb1,81:$Vc1,82:$Vd1,83:$Ve1,84:$Vf1,85:$Vg1,87:136,88:$Vh1,98:$VM,99:$VN,102:$Vi1,104:$VP,105:$VQ,106:$Vj1,107:$Vk1,108:142,115:$VR,116:$VS,117:$VT,118:$VU,119:$VV,120:$VW},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,283],43:31,45:32,46:42,47:$Vb,49:43,59:$Vc,60:$Vd,79:$Ve,80:$Vf,81:$Vg,82:$Vh,83:$Vi,84:$Vj,88:$Vk,98:$Vl,99:$Vm,102:$Vn,104:$Vo,105:$Vp,109:44,111:$Vq,112:$Vr,113:$Vs,114:$Vt,115:$Vu,116:$Vv,117:$Vw,118:$Vx,119:$Vy,120:$Vz},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:284,95:$Vv1,98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},{22:$Vr1,59:$Vs1,60:$Vt1,79:$Vu1,89:285,95:$Vv1,98:$Vw1,100:235,101:236,102:$Vx1,103:$Vy1,104:$Vz1,105:$VA1,106:$VB1},o($VY,[2,60]),o($VC,[2,41]),o($V_,[2,115],{99:$VC1}),o($V_,[2,116],{99:$VC1})],\ndefaultActions: {2:[2,1],9:[2,5],10:[2,2],126:[2,7]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 12; \nbreak;\ncase 1: this.begin('type_directive'); return 13; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 10; \nbreak;\ncase 3: this.popState(); this.popState(); return 15; \nbreak;\ncase 4:return 14;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:this.begin(\"string\");\nbreak;\ncase 8:this.popState();\nbreak;\ncase 9:return \"STR\";\nbreak;\ncase 10:return 79;\nbreak;\ncase 11:return 88;\nbreak;\ncase 12:return 80;\nbreak;\ncase 13:return 97;\nbreak;\ncase 14:return 81;\nbreak;\ncase 15:return 82;\nbreak;\ncase 16:this.begin(\"href\");\nbreak;\ncase 17:this.popState();\nbreak;\ncase 18:return 93;\nbreak;\ncase 19:this.begin(\"callbackname\");\nbreak;\ncase 20:this.popState();\nbreak;\ncase 21:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 22:return 91;\nbreak;\ncase 23:this.popState();\nbreak;\ncase 24:return 92;\nbreak;\ncase 25:this.begin(\"click\");\nbreak;\ncase 26:this.popState();\nbreak;\ncase 27:return 83;\nbreak;\ncase 28:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 29:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 30:return 38;\nbreak;\ncase 31:return 42;\nbreak;\ncase 32:return 94;\nbreak;\ncase 33:return 94;\nbreak;\ncase 34:return 94;\nbreak;\ncase 35:return 94;\nbreak;\ncase 36: this.popState(); return 25; \nbreak;\ncase 37: this.popState(); return 26; \nbreak;\ncase 38: this.popState(); return 26; \nbreak;\ncase 39: this.popState(); return 26; \nbreak;\ncase 40: this.popState(); return 26; \nbreak;\ncase 41: this.popState(); return 26; \nbreak;\ncase 42: this.popState(); return 26; \nbreak;\ncase 43: this.popState(); return 26; \nbreak;\ncase 44: this.popState(); return 26; \nbreak;\ncase 45: this.popState(); return 26; \nbreak;\ncase 46: this.popState(); return 26; \nbreak;\ncase 47:return 111;\nbreak;\ncase 48:return 112;\nbreak;\ncase 49:return 113;\nbreak;\ncase 50:return 114;\nbreak;\ncase 51: return 98;\nbreak;\ncase 52:return 104;\nbreak;\ncase 53:return 48;\nbreak;\ncase 54:return 60;\nbreak;\ncase 55:return 47;\nbreak;\ncase 56:return 20;\nbreak;\ncase 57:return 99;\nbreak;\ncase 58:return 119;\nbreak;\ncase 59:return 75;\nbreak;\ncase 60:return 75;\nbreak;\ncase 61:return 75;\nbreak;\ncase 62:return 74;\nbreak;\ncase 63:return 74;\nbreak;\ncase 64:return 74;\nbreak;\ncase 65:return 52;\nbreak;\ncase 66:return 53;\nbreak;\ncase 67:return 54;\nbreak;\ncase 68:return 55;\nbreak;\ncase 69:return 56;\nbreak;\ncase 70:return 57;\nbreak;\ncase 71:return 58;\nbreak;\ncase 72:return 62;\nbreak;\ncase 73:return 63;\nbreak;\ncase 74:return 102;\nbreak;\ncase 75:return 105;\nbreak;\ncase 76:return 120;\nbreak;\ncase 77:return 117;\nbreak;\ncase 78:return 106;\nbreak;\ncase 79:return 118;\nbreak;\ncase 80:return 118;\nbreak;\ncase 81:return 107;\nbreak;\ncase 82:return 66;\nbreak;\ncase 83:return 85;\nbreak;\ncase 84:return 'SEP';\nbreak;\ncase 85:return 84;\nbreak;\ncase 86:return 59;\nbreak;\ncase 87:return 68;\nbreak;\ncase 88:return 67;\nbreak;\ncase 89:return 70;\nbreak;\ncase 90:return 69;\nbreak;\ncase 91:return 115;\nbreak;\ncase 92:return 116;\nbreak;\ncase 93:return 61;\nbreak;\ncase 94:return 50;\nbreak;\ncase 95:return 51;\nbreak;\ncase 96:return 40;\nbreak;\ncase 97:return 41;\nbreak;\ncase 98:return 64\nbreak;\ncase 99:return 65\nbreak;\ncase 100:return 126;\nbreak;\ncase 101:return 21;\nbreak;\ncase 102:return 22;\nbreak;\ncase 103:return 23;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)[^\\n]*)/,/^(?:[^\\}]%%[^\\n]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:style\\b)/,/^(?:default\\b)/,/^(?:linkStyle\\b)/,/^(?:interpolate\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:click[\\s]+)/,/^(?:[\\s\\n])/,/^(?:[^\\s\\n]*)/,/^(?:graph\\b)/,/^(?:flowchart\\b)/,/^(?:subgraph\\b)/,/^(?:end\\b\\s*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:(\\r?\\n)*\\s*\\n)/,/^(?:\\s*LR\\b)/,/^(?:\\s*RL\\b)/,/^(?:\\s*TB\\b)/,/^(?:\\s*BT\\b)/,/^(?:\\s*TD\\b)/,/^(?:\\s*BR\\b)/,/^(?:\\s*<)/,/^(?:\\s*>)/,/^(?:\\s*\\^)/,/^(?:\\s*v\\b)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\\*)/,/^(?:\\s*[xo<]?--+[-xo>]\\s*)/,/^(?:\\s*[xo<]?==+[=xo>]\\s*)/,/^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,/^(?:\\s*[xo<]?--\\s*)/,/^(?:\\s*[xo<]?==\\s*)/,/^(?:\\s*[xo<]?-\\.\\s*)/,/^(?:\\(-)/,/^(?:-\\))/,/^(?:\\(\\[)/,/^(?:\\]\\))/,/^(?:\\[\\[)/,/^(?:\\]\\])/,/^(?:\\[\\|)/,/^(?:\\[\\()/,/^(?:\\)\\])/,/^(?:-)/,/^(?:\\.)/,/^(?:[\\_])/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\\^)/,/^(?:\\\\\\|)/,/^(?:v\\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\\\\])/,/^(?:\\[\\/)/,/^(?:\\/\\])/,/^(?:\\[\\\\)/,/^(?:[!\"#$%&'*+,-.`?\\\\_/])/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\|)/,/^(?:\\()/,/^(?:\\))/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\{)/,/^(?:\\})/,/^(?:\")/,/^(?:(\\r?\\n)+)/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[23,24],\"inclusive\":false},\"callbackname\":{\"rules\":[20,21,22],\"inclusive\":false},\"href\":{\"rules\":[17,18],\"inclusive\":false},\"click\":{\"rules\":[26,27],\"inclusive\":false},\"vertex\":{\"rules\":[],\"inclusive\":false},\"dir\":{\"rules\":[36,37,38,39,40,41,42,43,44,45,46],\"inclusive\":false},\"string\":{\"rules\":[8,9],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,10,11,12,13,14,15,16,19,25,28,29,30,31,32,33,34,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[7,9,11,12,13,14,15,16,17,18,19,20,22,29,34],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,25],$Vd=[1,27],$Ve=[1,30],$Vf=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,29,34];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"gantt\":5,\"document\":6,\"EOF\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NL\":11,\"dateFormat\":12,\"inclusiveEndDates\":13,\"topAxis\":14,\"axisFormat\":15,\"excludes\":16,\"includes\":17,\"todayMarker\":18,\"title\":19,\"section\":20,\"clickStatement\":21,\"taskTxt\":22,\"taskData\":23,\"openDirective\":24,\"typeDirective\":25,\"closeDirective\":26,\":\":27,\"argDirective\":28,\"click\":29,\"callbackname\":30,\"callbackargs\":31,\"href\":32,\"clickStatementDebug\":33,\"open_directive\":34,\"type_directive\":35,\"arg_directive\":36,\"close_directive\":37,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"gantt\",7:\"EOF\",9:\"SPACE\",11:\"NL\",12:\"dateFormat\",13:\"inclusiveEndDates\",14:\"topAxis\",15:\"axisFormat\",16:\"excludes\",17:\"includes\",18:\"todayMarker\",19:\"title\",20:\"section\",22:\"taskTxt\",23:\"taskData\",27:\":\",29:\"click\",30:\"callbackname\",31:\"callbackargs\",32:\"href\",34:\"open_directive\",35:\"type_directive\",36:\"arg_directive\",37:\"close_directive\"},\nproductions_: [0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[21,2],[21,3],[21,3],[21,4],[21,3],[21,4],[21,2],[33,2],[33,3],[33,3],[33,4],[33,3],[33,4],[33,2],[24,1],[25,1],[28,1],[26,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 2:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 9:\nyy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 10:\nyy.enableInclusiveEndDates();this.$=$$[$0].substr(18);\nbreak;\ncase 11:\nyy.TopAxis();this.$=$$[$0].substr(8);\nbreak;\ncase 12:\nyy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 13:\nyy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 14:\nyy.setIncludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 15:\nyy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);\nbreak;\ncase 16:\nyy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 19:\nyy.addTask($$[$0-1],$$[$0]);this.$='task';\nbreak;\ncase 23:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);\nbreak;\ncase 24:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 25:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);\nbreak;\ncase 26:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);\nbreak;\ncase 27:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);\nbreak;\ncase 28:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);\nbreak;\ncase 29:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 30: case 36:\nthis.$=$$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 31: case 32: case 34:\nthis.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 33: case 35:\nthis.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 37:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 38:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 39:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 40:\n yy.parseDirective('}%%', 'close_directive', 'gantt'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:$V0,24:4,34:$V1},{1:[3]},{3:6,4:2,5:$V0,24:4,34:$V1},o($V2,[2,3],{6:7}),{25:8,35:[1,9]},{35:[2,37]},{1:[2,1]},{4:26,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,21:24,22:$Vc,24:4,29:$Vd,34:$V1},{26:28,27:[1,29],37:$Ve},o([27,37],[2,38]),o($V2,[2,8],{1:[2,2]}),o($V2,[2,4]),{4:26,10:31,12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,21:24,22:$Vc,24:4,29:$Vd,34:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),{23:[1,32]},o($V2,[2,20]),{30:[1,33],32:[1,34]},{11:[1,35]},{28:36,36:[1,37]},{11:[2,40]},o($V2,[2,5]),o($V2,[2,19]),o($V2,[2,23],{31:[1,38],32:[1,39]}),o($V2,[2,29],{30:[1,40]}),o($Vf,[2,21]),{26:41,37:$Ve},{37:[2,39]},o($V2,[2,24],{32:[1,42]}),o($V2,[2,25]),o($V2,[2,27],{31:[1,43]}),{11:[1,44]},o($V2,[2,26]),o($V2,[2,28]),o($Vf,[2,22])],\ndefaultActions: {5:[2,37],6:[2,1],30:[2,40],37:[2,39]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 34; \nbreak;\ncase 1: this.begin('type_directive'); return 35; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 27; \nbreak;\ncase 3: this.popState(); this.popState(); return 37; \nbreak;\ncase 4:return 36;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:/* do nothing */\nbreak;\ncase 8:return 11;\nbreak;\ncase 9:/* skip whitespace */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:/* skip comments */\nbreak;\ncase 12:this.begin(\"href\");\nbreak;\ncase 13:this.popState();\nbreak;\ncase 14:return 32;\nbreak;\ncase 15:this.begin(\"callbackname\");\nbreak;\ncase 16:this.popState();\nbreak;\ncase 17:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 18:return 30;\nbreak;\ncase 19:this.popState();\nbreak;\ncase 20:return 31;\nbreak;\ncase 21:this.begin(\"click\");\nbreak;\ncase 22:this.popState();\nbreak;\ncase 23:return 29;\nbreak;\ncase 24:return 5;\nbreak;\ncase 25:return 12;\nbreak;\ncase 26:return 13;\nbreak;\ncase 27:return 14;\nbreak;\ncase 28:return 15;\nbreak;\ncase 29:return 17;\nbreak;\ncase 30:return 16;\nbreak;\ncase 31:return 18;\nbreak;\ncase 32:return 'date';\nbreak;\ncase 33:return 19;\nbreak;\ncase 34:return 20;\nbreak;\ncase 35:return 22;\nbreak;\ncase 36:return 23;\nbreak;\ncase 37:return 27;\nbreak;\ncase 38:return 7;\nbreak;\ncase 39:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)*[^\\n]*)/i,/^(?:[^\\}]%%*[^\\n]*)/i,/^(?:%%*[^\\n]*[\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:href[\\s]+[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:call[\\s]+)/i,/^(?:\\([\\s]*\\))/i,/^(?:\\()/i,/^(?:[^(]*)/i,/^(?:\\))/i,/^(?:[^)]*)/i,/^(?:click[\\s]+)/i,/^(?:[\\s\\n])/i,/^(?:[^\\s\\n]*)/i,/^(?:gantt\\b)/i,/^(?:dateFormat\\s[^#\\n;]+)/i,/^(?:inclusiveEndDates\\b)/i,/^(?:topAxis\\b)/i,/^(?:axisFormat\\s[^#\\n;]+)/i,/^(?:includes\\s[^#\\n;]+)/i,/^(?:excludes\\s[^#\\n;]+)/i,/^(?:todayMarker\\s[^\\n;]+)/i,/^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[19,20],\"inclusive\":false},\"callbackname\":{\"rules\":[16,17,18],\"inclusive\":false},\"href\":{\"rules\":[13,14],\"inclusive\":false},\"click\":{\"rules\":[22,23],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,15,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,3],$V1=[1,7],$V2=[7,12,15,17,19,20,21],$V3=[7,11,12,15,17,19,20,21],$V4=[2,20],$V5=[1,32];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"GG\":4,\":\":5,\"document\":6,\"EOF\":7,\"DIR\":8,\"options\":9,\"body\":10,\"OPT\":11,\"NL\":12,\"line\":13,\"statement\":14,\"COMMIT\":15,\"commit_arg\":16,\"BRANCH\":17,\"ID\":18,\"CHECKOUT\":19,\"MERGE\":20,\"RESET\":21,\"reset_arg\":22,\"STR\":23,\"HEAD\":24,\"reset_parents\":25,\"CARET\":26,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"GG\",5:\":\",7:\"EOF\",8:\"DIR\",11:\"OPT\",12:\"NL\",15:\"COMMIT\",17:\"BRANCH\",18:\"ID\",19:\"CHECKOUT\",20:\"MERGE\",21:\"RESET\",23:\"STR\",24:\"HEAD\",26:\"CARET\"},\nproductions_: [0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return $$[$0-1]; \nbreak;\ncase 2:\nyy.setDirection($$[$0-3]); return $$[$0-1];\nbreak;\ncase 4:\n yy.setOptions($$[$0-1]); this.$ = $$[$0]\nbreak;\ncase 5:\n$$[$0-1] +=$$[$0]; this.$=$$[$0-1]\nbreak;\ncase 7:\nthis.$ = []\nbreak;\ncase 8:\n$$[$0-1].push($$[$0]); this.$=$$[$0-1];\nbreak;\ncase 9:\nthis.$ =$$[$0-1]\nbreak;\ncase 11:\nyy.commit($$[$0])\nbreak;\ncase 12:\nyy.branch($$[$0])\nbreak;\ncase 13:\nyy.checkout($$[$0])\nbreak;\ncase 14:\nyy.merge($$[$0])\nbreak;\ncase 15:\nyy.reset($$[$0])\nbreak;\ncase 16:\nthis.$ = \"\"\nbreak;\ncase 17:\nthis.$=$$[$0]\nbreak;\ncase 18:\nthis.$ = $$[$0-1]+ \":\" + $$[$0] \nbreak;\ncase 19:\nthis.$ = $$[$0-1]+ \":\" + yy.count; yy.count = 0\nbreak;\ncase 20:\nyy.count = 0\nbreak;\ncase 21:\n yy.count += 1 \nbreak;\n}\n},\ntable: [{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:$V0,9:6,12:$V1},{5:[1,8]},{7:[1,9]},o($V2,[2,7],{10:10,11:[1,11]}),o($V3,[2,6]),{6:12,7:$V0,9:6,12:$V1},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},o($V3,[2,5]),{7:[1,21]},o($V2,[2,8]),{12:[1,22]},o($V2,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},o($V2,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:$V4,25:31,26:$V5},{12:$V4,25:33,26:$V5},{12:[2,18]},{12:$V4,25:34,26:$V5},{12:[2,19]},{12:[2,21]}],\ndefaultActions: {9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 12;\nbreak;\ncase 1:/* skip all whitespace */\nbreak;\ncase 2:/* skip comments */\nbreak;\ncase 3:/* skip comments */\nbreak;\ncase 4:return 4;\nbreak;\ncase 5:return 15;\nbreak;\ncase 6:return 17;\nbreak;\ncase 7:return 20;\nbreak;\ncase 8:return 21;\nbreak;\ncase 9:return 19;\nbreak;\ncase 10:return 8;\nbreak;\ncase 11:return 8;\nbreak;\ncase 12:return 5;\nbreak;\ncase 13:return 26\nbreak;\ncase 14:this.begin(\"options\");\nbreak;\ncase 15:this.popState();\nbreak;\ncase 16:return 11;\nbreak;\ncase 17:this.begin(\"string\");\nbreak;\ncase 18:this.popState();\nbreak;\ncase 19:return 23;\nbreak;\ncase 20:return 18;\nbreak;\ncase 21:return 7;\nbreak;\n}\n},\nrules: [/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gitGraph\\b)/i,/^(?:commit\\b)/i,/^(?:branch\\b)/i,/^(?:merge\\b)/i,/^(?:reset\\b)/i,/^(?:checkout\\b)/i,/^(?:LR\\b)/i,/^(?:BT\\b)/i,/^(?::)/i,/^(?:\\^)/i,/^(?:options\\r?\\n)/i,/^(?:end\\r?\\n)/i,/^(?:[^\\n]+\\r?\\n)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[a-zA-Z][-_\\.a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],\nconditions: {\"options\":{\"rules\":[15,16],\"inclusive\":false},\"string\":{\"rules\":[18,19],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"info\":4,\"document\":5,\"EOF\":6,\"line\":7,\"statement\":8,\"NL\":9,\"showInfo\":10,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"info\",6:\"EOF\",9:\"NL\",10:\"showInfo\"},\nproductions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return yy; \nbreak;\ncase 4:\n \nbreak;\ncase 6:\n yy.setInfo(true); \nbreak;\n}\n},\ntable: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6])],\ndefaultActions: {4:[2,1]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\r\n\t// Pre-lexer code can go here\r\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 4 ;\nbreak;\ncase 1:return 9 ;\nbreak;\ncase 2:return 'space';\nbreak;\ncase 3:return 10;\nbreak;\ncase 4:return 6 ;\nbreak;\ncase 5:return 'TXT' ;\nbreak;\n}\n},\nrules: [/^(?:info\\b)/i,/^(?:[\\s\\n\\r]+)/i,/^(?:[\\s]+)/i,/^(?:showInfo\\b)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,9],$V5=[1,11,13,20,21,22,23],$V6=[2,5],$V7=[1,6,11,13,20,21,22,23],$V8=[20,21,22],$V9=[2,8],$Va=[1,18],$Vb=[1,19],$Vc=[1,24],$Vd=[6,20,21,22,23];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"PIE\":6,\"document\":7,\"showData\":8,\"line\":9,\"statement\":10,\"txt\":11,\"value\":12,\"title\":13,\"title_value\":14,\"openDirective\":15,\"typeDirective\":16,\"closeDirective\":17,\":\":18,\"argDirective\":19,\"NEWLINE\":20,\";\":21,\"EOF\":22,\"open_directive\":23,\"type_directive\":24,\"arg_directive\":25,\"close_directive\":26,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"PIE\",8:\"showData\",11:\"txt\",12:\"value\",13:\"title\",14:\"title_value\",18:\":\",20:\"NEWLINE\",21:\";\",22:\"EOF\",23:\"open_directive\",24:\"type_directive\",25:\"arg_directive\",26:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[15,1],[16,1],[19,1],[17,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\nyy.setShowData(true);\nbreak;\ncase 7:\n this.$ = $$[$0-1] \nbreak;\ncase 9:\n yy.addSection($$[$0-1],yy.cleanupValue($$[$0])); \nbreak;\ncase 10:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 17:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 18:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 19:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 20:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,15:8,20:$V1,21:$V2,22:$V3,23:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,15:8,20:$V1,21:$V2,22:$V3,23:$V4},{3:11,4:2,5:3,6:$V0,15:8,20:$V1,21:$V2,22:$V3,23:$V4},o($V5,$V6,{7:12,8:[1,13]}),o($V7,[2,14]),o($V7,[2,15]),o($V7,[2,16]),{16:14,24:[1,15]},{24:[2,17]},{1:[2,1]},{1:[2,2]},o($V8,$V9,{15:8,9:16,10:17,5:20,1:[2,3],11:$Va,13:$Vb,23:$V4}),o($V5,$V6,{7:21}),{17:22,18:[1,23],26:$Vc},o([18,26],[2,18]),o($V5,[2,6]),{4:25,20:$V1,21:$V2,22:$V3},{12:[1,26]},{14:[1,27]},o($V8,[2,11]),o($V8,$V9,{15:8,9:16,10:17,5:20,1:[2,4],11:$Va,13:$Vb,23:$V4}),o($Vd,[2,12]),{19:28,25:[1,29]},o($Vd,[2,20]),o($V5,[2,7]),o($V8,[2,9]),o($V8,[2,10]),{17:30,26:$Vc},{26:[2,19]},o($Vd,[2,13])],\ndefaultActions: {9:[2,17],10:[2,1],11:[2,2],29:[2,19]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 23; \nbreak;\ncase 1: this.begin('type_directive'); return 24; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 18; \nbreak;\ncase 3: this.popState(); this.popState(); return 26; \nbreak;\ncase 4:return 25;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */{ /*console.log('');*/ }\nbreak;\ncase 7:return 20;\nbreak;\ncase 8:/* do nothing */\nbreak;\ncase 9:/* ignore */\nbreak;\ncase 10: this.begin(\"title\");return 13; \nbreak;\ncase 11: this.popState(); return \"title_value\"; \nbreak;\ncase 12: this.begin(\"string\"); \nbreak;\ncase 13: this.popState(); \nbreak;\ncase 14: return \"txt\"; \nbreak;\ncase 15:return 6;\nbreak;\ncase 16:return 8;\nbreak;\ncase 17:return \"value\";\nbreak;\ncase 18:return 22;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n\\r]+)/i,/^(?:%%[^\\n]*)/i,/^(?:[\\s]+)/i,/^(?:title\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:pie\\b)/i,/^(?:showData\\b)/i,/^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i,/^(?:$)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"title\":{\"rules\":[11],\"inclusive\":false},\"string\":{\"rules\":[13,14],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,12,15,16,17,18],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[1,17],$V3=[2,10],$V4=[1,21],$V5=[1,22],$V6=[1,23],$V7=[1,24],$V8=[1,25],$V9=[1,26],$Va=[1,19],$Vb=[1,27],$Vc=[1,28],$Vd=[1,31],$Ve=[66,67],$Vf=[5,8,14,35,36,37,38,39,40,48,55,57,66,67],$Vg=[5,6,8,14,35,36,37,38,39,40,48,66,67],$Vh=[1,51],$Vi=[1,52],$Vj=[1,53],$Vk=[1,54],$Vl=[1,55],$Vm=[1,56],$Vn=[1,57],$Vo=[57,58],$Vp=[1,69],$Vq=[1,65],$Vr=[1,66],$Vs=[1,67],$Vt=[1,68],$Vu=[1,70],$Vv=[1,74],$Vw=[1,75],$Vx=[1,72],$Vy=[1,73],$Vz=[5,8,14,35,36,37,38,39,40,48,66,67];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"NEWLINE\":5,\"RD\":6,\"diagram\":7,\"EOF\":8,\"openDirective\":9,\"typeDirective\":10,\"closeDirective\":11,\":\":12,\"argDirective\":13,\"open_directive\":14,\"type_directive\":15,\"arg_directive\":16,\"close_directive\":17,\"requirementDef\":18,\"elementDef\":19,\"relationshipDef\":20,\"requirementType\":21,\"requirementName\":22,\"STRUCT_START\":23,\"requirementBody\":24,\"ID\":25,\"COLONSEP\":26,\"id\":27,\"TEXT\":28,\"text\":29,\"RISK\":30,\"riskLevel\":31,\"VERIFYMTHD\":32,\"verifyType\":33,\"STRUCT_STOP\":34,\"REQUIREMENT\":35,\"FUNCTIONAL_REQUIREMENT\":36,\"INTERFACE_REQUIREMENT\":37,\"PERFORMANCE_REQUIREMENT\":38,\"PHYSICAL_REQUIREMENT\":39,\"DESIGN_CONSTRAINT\":40,\"LOW_RISK\":41,\"MED_RISK\":42,\"HIGH_RISK\":43,\"VERIFY_ANALYSIS\":44,\"VERIFY_DEMONSTRATION\":45,\"VERIFY_INSPECTION\":46,\"VERIFY_TEST\":47,\"ELEMENT\":48,\"elementName\":49,\"elementBody\":50,\"TYPE\":51,\"type\":52,\"DOCREF\":53,\"ref\":54,\"END_ARROW_L\":55,\"relationship\":56,\"LINE\":57,\"END_ARROW_R\":58,\"CONTAINS\":59,\"COPIES\":60,\"DERIVES\":61,\"SATISFIES\":62,\"VERIFIES\":63,\"REFINES\":64,\"TRACES\":65,\"unqString\":66,\"qString\":67,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"NEWLINE\",6:\"RD\",8:\"EOF\",12:\":\",14:\"open_directive\",15:\"type_directive\",16:\"arg_directive\",17:\"close_directive\",23:\"STRUCT_START\",25:\"ID\",26:\"COLONSEP\",28:\"TEXT\",30:\"RISK\",32:\"VERIFYMTHD\",34:\"STRUCT_STOP\",35:\"REQUIREMENT\",36:\"FUNCTIONAL_REQUIREMENT\",37:\"INTERFACE_REQUIREMENT\",38:\"PERFORMANCE_REQUIREMENT\",39:\"PHYSICAL_REQUIREMENT\",40:\"DESIGN_CONSTRAINT\",41:\"LOW_RISK\",42:\"MED_RISK\",43:\"HIGH_RISK\",44:\"VERIFY_ANALYSIS\",45:\"VERIFY_DEMONSTRATION\",46:\"VERIFY_INSPECTION\",47:\"VERIFY_TEST\",48:\"ELEMENT\",51:\"TYPE\",53:\"DOCREF\",55:\"END_ARROW_L\",57:\"LINE\",58:\"END_ARROW_R\",59:\"CONTAINS\",60:\"COPIES\",61:\"DERIVES\",62:\"SATISFIES\",63:\"VERIFIES\",64:\"REFINES\",65:\"TRACES\",66:\"unqString\",67:\"qString\"},\nproductions_: [0,[3,3],[3,2],[3,4],[4,3],[4,5],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[18,5],[24,5],[24,5],[24,5],[24,5],[24,2],[24,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[31,1],[31,1],[31,1],[33,1],[33,1],[33,1],[33,1],[19,5],[50,5],[50,5],[50,2],[50,1],[20,5],[20,5],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[22,1],[22,1],[27,1],[27,1],[29,1],[29,1],[49,1],[49,1],[52,1],[52,1],[54,1],[54,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 6:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 7:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 8:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 9:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\ncase 10:\n this.$ = [] \nbreak;\ncase 16:\n yy.addRequirement($$[$0-3], $$[$0-4]) \nbreak;\ncase 17:\n yy.setNewReqId($$[$0-2]); \nbreak;\ncase 18:\n yy.setNewReqText($$[$0-2]); \nbreak;\ncase 19:\n yy.setNewReqRisk($$[$0-2]); \nbreak;\ncase 20:\n yy.setNewReqVerifyMethod($$[$0-2]); \nbreak;\ncase 23:\n this.$=yy.RequirementType.REQUIREMENT;\nbreak;\ncase 24:\n this.$=yy.RequirementType.FUNCTIONAL_REQUIREMENT;\nbreak;\ncase 25:\n this.$=yy.RequirementType.INTERFACE_REQUIREMENT;\nbreak;\ncase 26:\n this.$=yy.RequirementType.PERFORMANCE_REQUIREMENT;\nbreak;\ncase 27:\n this.$=yy.RequirementType.PHYSICAL_REQUIREMENT;\nbreak;\ncase 28:\n this.$=yy.RequirementType.DESIGN_CONSTRAINT;\nbreak;\ncase 29:\n this.$=yy.RiskLevel.LOW_RISK;\nbreak;\ncase 30:\n this.$=yy.RiskLevel.MED_RISK;\nbreak;\ncase 31:\n this.$=yy.RiskLevel.HIGH_RISK;\nbreak;\ncase 32:\n this.$=yy.VerifyType.VERIFY_ANALYSIS;\nbreak;\ncase 33:\n this.$=yy.VerifyType.VERIFY_DEMONSTRATION;\nbreak;\ncase 34:\n this.$=yy.VerifyType.VERIFY_INSPECTION;\nbreak;\ncase 35:\n this.$=yy.VerifyType.VERIFY_TEST;\nbreak;\ncase 36:\n yy.addElement($$[$0-3]) \nbreak;\ncase 37:\n yy.setNewElementType($$[$0-2]); \nbreak;\ncase 38:\n yy.setNewElementDocRef($$[$0-2]); \nbreak;\ncase 41:\n yy.addRelationship($$[$0-2], $$[$0], $$[$0-4]) \nbreak;\ncase 42:\n yy.addRelationship($$[$0-2], $$[$0-4], $$[$0]) \nbreak;\ncase 43:\n this.$=yy.Relationships.CONTAINS;\nbreak;\ncase 44:\n this.$=yy.Relationships.COPIES;\nbreak;\ncase 45:\n this.$=yy.Relationships.DERIVES;\nbreak;\ncase 46:\n this.$=yy.Relationships.SATISFIES;\nbreak;\ncase 47:\n this.$=yy.Relationships.VERIFIES;\nbreak;\ncase 48:\n this.$=yy.Relationships.REFINES;\nbreak;\ncase 49:\n this.$=yy.Relationships.TRACES;\nbreak;\n}\n},\ntable: [{3:1,4:2,6:$V0,9:4,14:$V1},{1:[3]},{3:7,4:2,5:[1,6],6:$V0,9:4,14:$V1},{5:[1,8]},{10:9,15:[1,10]},{15:[2,6]},{3:11,4:2,6:$V0,9:4,14:$V1},{1:[2,2]},{4:16,5:$V2,7:12,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{11:29,12:[1,30],17:$Vd},o([12,17],[2,7]),{1:[2,1]},{8:[1,32]},{4:16,5:$V2,7:33,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:34,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:35,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:36,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{4:16,5:$V2,7:37,8:$V3,9:4,14:$V1,18:13,19:14,20:15,21:18,27:20,35:$V4,36:$V5,37:$V6,38:$V7,39:$V8,40:$V9,48:$Va,66:$Vb,67:$Vc},{22:38,66:[1,39],67:[1,40]},{49:41,66:[1,42],67:[1,43]},{55:[1,44],57:[1,45]},o($Ve,[2,23]),o($Ve,[2,24]),o($Ve,[2,25]),o($Ve,[2,26]),o($Ve,[2,27]),o($Ve,[2,28]),o($Vf,[2,52]),o($Vf,[2,53]),o($Vg,[2,4]),{13:46,16:[1,47]},o($Vg,[2,9]),{1:[2,3]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{23:[1,48]},{23:[2,50]},{23:[2,51]},{23:[1,49]},{23:[2,56]},{23:[2,57]},{56:50,59:$Vh,60:$Vi,61:$Vj,62:$Vk,63:$Vl,64:$Vm,65:$Vn},{56:58,59:$Vh,60:$Vi,61:$Vj,62:$Vk,63:$Vl,64:$Vm,65:$Vn},{11:59,17:$Vd},{17:[2,8]},{5:[1,60]},{5:[1,61]},{57:[1,62]},o($Vo,[2,43]),o($Vo,[2,44]),o($Vo,[2,45]),o($Vo,[2,46]),o($Vo,[2,47]),o($Vo,[2,48]),o($Vo,[2,49]),{58:[1,63]},o($Vg,[2,5]),{5:$Vp,24:64,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vv,34:$Vw,50:71,51:$Vx,53:$Vy},{27:76,66:$Vb,67:$Vc},{27:77,66:$Vb,67:$Vc},o($Vz,[2,16]),{26:[1,78]},{26:[1,79]},{26:[1,80]},{26:[1,81]},{5:$Vp,24:82,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},o($Vz,[2,22]),o($Vz,[2,36]),{26:[1,83]},{26:[1,84]},{5:$Vv,34:$Vw,50:85,51:$Vx,53:$Vy},o($Vz,[2,40]),o($Vz,[2,41]),o($Vz,[2,42]),{27:86,66:$Vb,67:$Vc},{29:87,66:[1,88],67:[1,89]},{31:90,41:[1,91],42:[1,92],43:[1,93]},{33:94,44:[1,95],45:[1,96],46:[1,97],47:[1,98]},o($Vz,[2,21]),{52:99,66:[1,100],67:[1,101]},{54:102,66:[1,103],67:[1,104]},o($Vz,[2,39]),{5:[1,105]},{5:[1,106]},{5:[2,54]},{5:[2,55]},{5:[1,107]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[1,108]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[2,35]},{5:[1,109]},{5:[2,58]},{5:[2,59]},{5:[1,110]},{5:[2,60]},{5:[2,61]},{5:$Vp,24:111,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vp,24:112,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vp,24:113,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vp,24:114,25:$Vq,28:$Vr,30:$Vs,32:$Vt,34:$Vu},{5:$Vv,34:$Vw,50:115,51:$Vx,53:$Vy},{5:$Vv,34:$Vw,50:116,51:$Vx,53:$Vy},o($Vz,[2,17]),o($Vz,[2,18]),o($Vz,[2,19]),o($Vz,[2,20]),o($Vz,[2,37]),o($Vz,[2,38])],\ndefaultActions: {5:[2,6],7:[2,2],11:[2,1],32:[2,3],33:[2,11],34:[2,12],35:[2,13],36:[2,14],37:[2,15],39:[2,50],40:[2,51],42:[2,56],43:[2,57],47:[2,8],88:[2,54],89:[2,55],91:[2,29],92:[2,30],93:[2,31],95:[2,32],96:[2,33],97:[2,34],98:[2,35],100:[2,58],101:[2,59],103:[2,60],104:[2,61]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 14; \nbreak;\ncase 1: this.begin('type_directive'); return 15; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 12; \nbreak;\ncase 3: this.popState(); this.popState(); return 17; \nbreak;\ncase 4:return 16;\nbreak;\ncase 5:return 5;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip comments */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:return 8;\nbreak;\ncase 10:return 6;\nbreak;\ncase 11:return 23;\nbreak;\ncase 12:return 34;\nbreak;\ncase 13:return 26;\nbreak;\ncase 14:return 25;\nbreak;\ncase 15:return 28;\nbreak;\ncase 16:return 30;\nbreak;\ncase 17:return 32;\nbreak;\ncase 18:return 35;\nbreak;\ncase 19:return 36;\nbreak;\ncase 20:return 37;\nbreak;\ncase 21:return 38;\nbreak;\ncase 22:return 39;\nbreak;\ncase 23:return 40;\nbreak;\ncase 24:return 41;\nbreak;\ncase 25:return 42;\nbreak;\ncase 26:return 43;\nbreak;\ncase 27:return 44;\nbreak;\ncase 28:return 45;\nbreak;\ncase 29:return 46;\nbreak;\ncase 30:return 47;\nbreak;\ncase 31:return 48;\nbreak;\ncase 32:return 59;\nbreak;\ncase 33:return 60;\nbreak;\ncase 34:return 61;\nbreak;\ncase 35:return 62;\nbreak;\ncase 36:return 63;\nbreak;\ncase 37:return 64;\nbreak;\ncase 38:return 65;\nbreak;\ncase 39:return 51;\nbreak;\ncase 40:return 53;\nbreak;\ncase 41:return 55;\nbreak;\ncase 42:return 58;\nbreak;\ncase 43:return 57;\nbreak;\ncase 44: this.begin(\"string\"); \nbreak;\ncase 45: this.popState(); \nbreak;\ncase 46: return \"qString\"; \nbreak;\ncase 47: yy_.yytext = yy_.yytext.trim(); return 66;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?::)/i,/^(?:id\\b)/i,/^(?:text\\b)/i,/^(?:risk\\b)/i,/^(?:verifyMethod\\b)/i,/^(?:requirement\\b)/i,/^(?:functionalRequirement\\b)/i,/^(?:interfaceRequirement\\b)/i,/^(?:performanceRequirement\\b)/i,/^(?:physicalRequirement\\b)/i,/^(?:designConstraint\\b)/i,/^(?:low\\b)/i,/^(?:medium\\b)/i,/^(?:high\\b)/i,/^(?:analysis\\b)/i,/^(?:demonstration\\b)/i,/^(?:inspection\\b)/i,/^(?:test\\b)/i,/^(?:element\\b)/i,/^(?:contains\\b)/i,/^(?:copies\\b)/i,/^(?:derives\\b)/i,/^(?:satisfies\\b)/i,/^(?:verifies\\b)/i,/^(?:refines\\b)/i,/^(?:traces\\b)/i,/^(?:type\\b)/i,/^(?:docref\\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"unqString\":{\"rules\":[],\"inclusive\":false},\"token\":{\"rules\":[],\"inclusive\":false},\"string\":{\"rules\":[45,46],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,47],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,18],$V8=[1,19],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,29],$Vd=[1,30],$Ve=[1,31],$Vf=[1,32],$Vg=[1,33],$Vh=[1,34],$Vi=[1,37],$Vj=[1,38],$Vk=[1,39],$Vl=[1,40],$Vm=[1,41],$Vn=[1,42],$Vo=[1,45],$Vp=[1,4,5,16,20,22,23,24,30,32,33,34,35,36,38,40,41,42,46,47,48,49,57,67],$Vq=[1,58],$Vr=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,42,46,47,48,49,57,67],$Vs=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,41,42,46,47,48,49,57,67],$Vt=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,40,42,46,47,48,49,57,67],$Vu=[55,56,57],$Vv=[1,4,5,7,16,20,22,23,24,30,32,33,34,35,36,38,40,41,42,46,47,48,49,57,67];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NEWLINE\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"openDirective\":11,\"typeDirective\":12,\"closeDirective\":13,\":\":14,\"argDirective\":15,\"participant\":16,\"actor\":17,\"AS\":18,\"restOfLine\":19,\"participant_actor\":20,\"signal\":21,\"autonumber\":22,\"activate\":23,\"deactivate\":24,\"note_statement\":25,\"links_statement\":26,\"link_statement\":27,\"properties_statement\":28,\"details_statement\":29,\"title\":30,\"text2\":31,\"loop\":32,\"end\":33,\"rect\":34,\"opt\":35,\"alt\":36,\"else_sections\":37,\"par\":38,\"par_sections\":39,\"and\":40,\"else\":41,\"note\":42,\"placement\":43,\"over\":44,\"actor_pair\":45,\"links\":46,\"link\":47,\"properties\":48,\"details\":49,\"spaceList\":50,\",\":51,\"left_of\":52,\"right_of\":53,\"signaltype\":54,\"+\":55,\"-\":56,\"ACTOR\":57,\"SOLID_OPEN_ARROW\":58,\"DOTTED_OPEN_ARROW\":59,\"SOLID_ARROW\":60,\"DOTTED_ARROW\":61,\"SOLID_CROSS\":62,\"DOTTED_CROSS\":63,\"SOLID_POINT\":64,\"DOTTED_POINT\":65,\"TXT\":66,\"open_directive\":67,\"type_directive\":68,\"arg_directive\":69,\"close_directive\":70,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NEWLINE\",7:\"SD\",14:\":\",16:\"participant\",18:\"AS\",19:\"restOfLine\",20:\"participant_actor\",22:\"autonumber\",23:\"activate\",24:\"deactivate\",30:\"title\",32:\"loop\",33:\"end\",34:\"rect\",35:\"opt\",36:\"alt\",38:\"par\",40:\"and\",41:\"else\",42:\"note\",44:\"over\",46:\"links\",47:\"link\",48:\"properties\",49:\"details\",51:\",\",52:\"left_of\",53:\"right_of\",55:\"+\",56:\"-\",57:\"ACTOR\",58:\"SOLID_OPEN_ARROW\",59:\"DOTTED_OPEN_ARROW\",60:\"SOLID_ARROW\",61:\"DOTTED_ARROW\",62:\"SOLID_CROSS\",63:\"DOTTED_CROSS\",64:\"SOLID_POINT\",65:\"DOTTED_POINT\",66:\"TXT\",67:\"open_directive\",68:\"type_directive\",69:\"arg_directive\",70:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,1],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,3],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[39,1],[39,4],[37,1],[37,4],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[50,2],[50,1],[45,3],[45,1],[43,1],[43,1],[21,5],[21,5],[21,4],[17,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[31,1],[11,1],[12,1],[15,1],[13,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.apply($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$=[]; \nbreak;\ncase 12:\n$$[$0-3].type='addParticipant';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 13:\n$$[$0-1].type='addParticipant';this.$=$$[$0-1];\nbreak;\ncase 14:\n$$[$0-3].type='addActor';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 15:\n$$[$0-1].type='addActor'; this.$=$$[$0-1];\nbreak;\ncase 17:\nyy.enableSequenceNumbers()\nbreak;\ncase 18:\nthis.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};\nbreak;\ncase 19:\nthis.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};\nbreak;\ncase 25:\nthis.$=[{type:'setTitle', text:$$[$0-1]}]\nbreak;\ncase 26:\n\n\t\t$$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});\n\t\t$$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 27:\n\n\t\t$$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });\n\t\t$$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 28:\n\n\t\t$$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});\n\t\t$$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 29:\n\n\t\t// Alt start\n\t\t$$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});\n\t\t// Content in alt is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 30:\n\n\t\t// Parallel start\n\t\t$$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});\n\t\t// Content in par is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 33:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 35:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 36:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 37:\n\n\t\t// Coerce actor_pair into a [to, from, ...] array\n\t\t$$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);\n\t\t$$[$0-2][0] = $$[$0-2][0].actor;\n\t\t$$[$0-2][1] = $$[$0-2][1].actor;\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];\nbreak;\ncase 38:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 39:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 40:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 41:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 44:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 45:\n this.$ = $$[$0]; \nbreak;\ncase 46:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 47:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 48:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}\n\t ]\nbreak;\ncase 49:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}\n\t ]\nbreak;\ncase 50:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 51:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 52:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 53:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 54:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 55:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 56:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 57:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 58:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 59:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 60:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 61:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 62:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 63:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 64:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,67:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,67:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,67:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,67:$V3},o([1,4,5,16,20,22,23,24,30,32,34,35,36,38,42,46,47,48,49,57,67],$V4,{8:11}),{12:12,68:[1,13]},{68:[2,61]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:35,9:14,10:16,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,34:$Ve,35:$Vf,36:$Vg,38:$Vh,42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},{13:43,14:[1,44],70:$Vo},o([14,70],[2,62]),o($Vp,[2,6]),{6:35,10:46,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,34:$Ve,35:$Vf,36:$Vg,38:$Vh,42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},o($Vp,[2,8]),o($Vp,[2,9]),{17:47,57:$Vn},{17:48,57:$Vn},{5:[1,49]},o($Vp,[2,17]),{17:50,57:$Vn},{17:51,57:$Vn},{5:[1,52]},{5:[1,53]},{5:[1,54]},{5:[1,55]},{5:[1,56]},{31:57,66:$Vq},{19:[1,59]},{19:[1,60]},{19:[1,61]},{19:[1,62]},{19:[1,63]},o($Vp,[2,31]),{54:64,58:[1,65],59:[1,66],60:[1,67],61:[1,68],62:[1,69],63:[1,70],64:[1,71],65:[1,72]},{43:73,44:[1,74],52:[1,75],53:[1,76]},{17:77,57:$Vn},{17:78,57:$Vn},{17:79,57:$Vn},{17:80,57:$Vn},o([5,18,51,58,59,60,61,62,63,64,65,66],[2,51]),{5:[1,81]},{15:82,69:[1,83]},{5:[2,64]},o($Vp,[2,7]),{5:[1,85],18:[1,84]},{5:[1,87],18:[1,86]},o($Vp,[2,16]),{5:[1,88]},{5:[1,89]},o($Vp,[2,20]),o($Vp,[2,21]),o($Vp,[2,22]),o($Vp,[2,23]),o($Vp,[2,24]),{5:[1,90]},{5:[2,60]},o($Vr,$V4,{8:91}),o($Vr,$V4,{8:92}),o($Vr,$V4,{8:93}),o($Vs,$V4,{37:94,8:95}),o($Vt,$V4,{39:96,8:97}),{17:100,55:[1,98],56:[1,99],57:$Vn},o($Vu,[2,52]),o($Vu,[2,53]),o($Vu,[2,54]),o($Vu,[2,55]),o($Vu,[2,56]),o($Vu,[2,57]),o($Vu,[2,58]),o($Vu,[2,59]),{17:101,57:$Vn},{17:103,45:102,57:$Vn},{57:[2,46]},{57:[2,47]},{31:104,66:$Vq},{31:105,66:$Vq},{31:106,66:$Vq},{31:107,66:$Vq},o($Vv,[2,10]),{13:108,70:$Vo},{70:[2,63]},{19:[1,109]},o($Vp,[2,13]),{19:[1,110]},o($Vp,[2,15]),o($Vp,[2,18]),o($Vp,[2,19]),o($Vp,[2,25]),{4:$V5,5:$V6,6:35,9:14,10:16,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,33:[1,111],34:$Ve,35:$Vf,36:$Vg,38:$Vh,42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},{4:$V5,5:$V6,6:35,9:14,10:16,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,33:[1,112],34:$Ve,35:$Vf,36:$Vg,38:$Vh,42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},{4:$V5,5:$V6,6:35,9:14,10:16,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,33:[1,113],34:$Ve,35:$Vf,36:$Vg,38:$Vh,42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},{33:[1,114]},{4:$V5,5:$V6,6:35,9:14,10:16,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,33:[2,34],34:$Ve,35:$Vf,36:$Vg,38:$Vh,41:[1,115],42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},{33:[1,116]},{4:$V5,5:$V6,6:35,9:14,10:16,11:6,16:$V7,17:36,20:$V8,21:20,22:$V9,23:$Va,24:$Vb,25:24,26:25,27:26,28:27,29:28,30:$Vc,32:$Vd,33:[2,32],34:$Ve,35:$Vf,36:$Vg,38:$Vh,40:[1,117],42:$Vi,46:$Vj,47:$Vk,48:$Vl,49:$Vm,57:$Vn,67:$V3},{17:118,57:$Vn},{17:119,57:$Vn},{31:120,66:$Vq},{31:121,66:$Vq},{31:122,66:$Vq},{51:[1,123],66:[2,45]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},{5:[1,124]},{5:[1,125]},{5:[1,126]},o($Vp,[2,26]),o($Vp,[2,27]),o($Vp,[2,28]),o($Vp,[2,29]),{19:[1,127]},o($Vp,[2,30]),{19:[1,128]},{31:129,66:$Vq},{31:130,66:$Vq},{5:[2,50]},{5:[2,36]},{5:[2,37]},{17:131,57:$Vn},o($Vv,[2,11]),o($Vp,[2,12]),o($Vp,[2,14]),o($Vs,$V4,{8:95,37:132}),o($Vt,$V4,{8:97,39:133}),{5:[2,48]},{5:[2,49]},{66:[2,44]},{33:[2,35]},{33:[2,33]}],\ndefaultActions: {7:[2,61],8:[2,1],9:[2,2],10:[2,3],45:[2,64],58:[2,60],75:[2,46],76:[2,47],83:[2,63],104:[2,38],105:[2,39],106:[2,40],107:[2,41],120:[2,50],121:[2,36],122:[2,37],129:[2,48],130:[2,49],131:[2,44],132:[2,35],133:[2,33]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 67; \nbreak;\ncase 1: this.begin('type_directive'); return 68; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 70; \nbreak;\ncase 4:return 69;\nbreak;\ncase 5:return 5;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip same-line whitespace */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11: this.begin('ID'); return 16; \nbreak;\ncase 12: this.begin('ID'); return 20; \nbreak;\ncase 13: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 57; \nbreak;\ncase 14: this.popState(); this.popState(); this.begin('LINE'); return 18; \nbreak;\ncase 15: this.popState(); this.popState(); return 5; \nbreak;\ncase 16: this.begin('LINE'); return 32; \nbreak;\ncase 17: this.begin('LINE'); return 34; \nbreak;\ncase 18: this.begin('LINE'); return 35; \nbreak;\ncase 19: this.begin('LINE'); return 36; \nbreak;\ncase 20: this.begin('LINE'); return 41; \nbreak;\ncase 21: this.begin('LINE'); return 38; \nbreak;\ncase 22: this.begin('LINE'); return 40; \nbreak;\ncase 23: this.popState(); return 19; \nbreak;\ncase 24:return 33;\nbreak;\ncase 25:return 52;\nbreak;\ncase 26:return 53;\nbreak;\ncase 27:return 46;\nbreak;\ncase 28:return 47;\nbreak;\ncase 29:return 48;\nbreak;\ncase 30:return 49;\nbreak;\ncase 31:return 44;\nbreak;\ncase 32:return 42;\nbreak;\ncase 33: this.begin('ID'); return 23; \nbreak;\ncase 34: this.begin('ID'); return 24; \nbreak;\ncase 35:return 30;\nbreak;\ncase 36:return 7;\nbreak;\ncase 37:return 22;\nbreak;\ncase 38:return 51;\nbreak;\ncase 39:return 5;\nbreak;\ncase 40: yy_.yytext = yy_.yytext.trim(); return 57; \nbreak;\ncase 41:return 60;\nbreak;\ncase 42:return 61;\nbreak;\ncase 43:return 58;\nbreak;\ncase 44:return 59;\nbreak;\ncase 45:return 62;\nbreak;\ncase 46:return 63;\nbreak;\ncase 47:return 64;\nbreak;\ncase 48:return 65;\nbreak;\ncase 49:return 66;\nbreak;\ncase 50:return 55;\nbreak;\ncase 51:return 56;\nbreak;\ncase 52:return 5;\nbreak;\ncase 53:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:participant\\b)/i,/^(?:actor\\b)/i,/^(?:[^\\->:\\n,;]+?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i,/^(?:as\\b)/i,/^(?:(?:))/i,/^(?:loop\\b)/i,/^(?:rect\\b)/i,/^(?:opt\\b)/i,/^(?:alt\\b)/i,/^(?:else\\b)/i,/^(?:par\\b)/i,/^(?:and\\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i,/^(?:end\\b)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:links\\b)/i,/^(?:link\\b)/i,/^(?:properties\\b)/i,/^(?:details\\b)/i,/^(?:over\\b)/i,/^(?:note\\b)/i,/^(?:activate\\b)/i,/^(?:deactivate\\b)/i,/^(?:title\\b)/i,/^(?:sequenceDiagram\\b)/i,/^(?:autonumber\\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\\)])/i,/^(?:--[\\)])/i,/^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"open_directive\":{\"rules\":[1,8],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3,8],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4,8],\"inclusive\":false},\"ID\":{\"rules\":[7,8,13],\"inclusive\":false},\"ALIAS\":{\"rules\":[7,8,14,15],\"inclusive\":false},\"LINE\":{\"rules\":[7,8,23],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,30],$Vc=[1,23],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,32],$Vi=[1,33],$Vj=[1,34],$Vk=[1,35],$Vl=[1,31],$Vm=[1,38],$Vn=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],$Vo=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],$Vp=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],$Vq=[4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NL\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"idStatement\":11,\"DESCR\":12,\"-->\":13,\"HIDE_EMPTY\":14,\"scale\":15,\"WIDTH\":16,\"COMPOSIT_STATE\":17,\"STRUCT_START\":18,\"STRUCT_STOP\":19,\"STATE_DESCR\":20,\"AS\":21,\"ID\":22,\"FORK\":23,\"JOIN\":24,\"CHOICE\":25,\"CONCURRENT\":26,\"note\":27,\"notePosition\":28,\"NOTE_TEXT\":29,\"direction\":30,\"openDirective\":31,\"typeDirective\":32,\"closeDirective\":33,\":\":34,\"argDirective\":35,\"direction_tb\":36,\"direction_bt\":37,\"direction_rl\":38,\"direction_lr\":39,\"eol\":40,\";\":41,\"EDGE_STATE\":42,\"left_of\":43,\"right_of\":44,\"open_directive\":45,\"type_directive\":46,\"arg_directive\":47,\"close_directive\":48,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NL\",7:\"SD\",12:\"DESCR\",13:\"-->\",14:\"HIDE_EMPTY\",15:\"scale\",16:\"WIDTH\",17:\"COMPOSIT_STATE\",18:\"STRUCT_START\",19:\"STRUCT_STOP\",20:\"STATE_DESCR\",21:\"AS\",22:\"ID\",23:\"FORK\",24:\"JOIN\",25:\"CHOICE\",26:\"CONCURRENT\",27:\"note\",29:\"NOTE_TEXT\",34:\":\",36:\"direction_tb\",37:\"direction_bt\",38:\"direction_rl\",39:\"direction_lr\",41:\";\",42:\"EDGE_STATE\",43:\"left_of\",44:\"right_of\",45:\"open_directive\",46:\"type_directive\",47:\"arg_directive\",48:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[40,1],[40,1],[11,1],[11,1],[28,1],[28,1],[31,1],[32,1],[35,1],[33,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n\r\n if($$[$0]!='nl'){\r\n $$[$0-1].push($$[$0]);this.$ = $$[$0-1]\r\n }\r\n // console.warn('Got document',$$[$0-1], $$[$0]);\r\n \nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$='nl';\nbreak;\ncase 10:\n /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};\nbreak;\ncase 11:\n /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};\nbreak;\ncase 12:\n\r\n /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/\r\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};\r\n \nbreak;\ncase 13:\n\r\n /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/\r\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-3], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0-1] ,type: 'default', description: ''}, description: $$[$0].substr(1).trim()};\r\n \nbreak;\ncase 17:\n\r\n /* console.warn('Adding document for state without id ', $$[$0-3]);*/\r\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }\r\n \nbreak;\ncase 18:\n\r\n var id=$$[$0];\r\n var description = $$[$0-2].trim();\r\n if($$[$0].match(':')){\r\n var parts = $$[$0].split(':');\r\n id=parts[0];\r\n description = [description, parts[1]];\r\n }\r\n this.$={stmt: 'state', id: id, type: 'default', description: description};\r\n\r\n \nbreak;\ncase 19:\n\r\n // console.warn('Adding document for state with id zxzx', $$[$0-3], $$[$0-2], yy.getDirection()); yy.addDocument($$[$0-3]);\r\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }\r\n \nbreak;\ncase 20:\n\r\n this.$={ stmt: 'state', id: $$[$0], type: 'fork' }\r\n \nbreak;\ncase 21:\n\r\n this.$={ stmt: 'state', id: $$[$0], type: 'join' }\r\n \nbreak;\ncase 22:\n\r\n this.$={ stmt: 'state', id: $$[$0], type: 'choice' }\r\n \nbreak;\ncase 23:\n\r\n this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }\r\n \nbreak;\ncase 24:\n\r\n /* console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/\r\n this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};\r\n \nbreak;\ncase 30:\n yy.setDirection('TB');this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 31:\n yy.setDirection('BT');this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 32:\n yy.setDirection('RL'); this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 33:\n yy.setDirection('LR');this.$={stmt:'dir', value:'LR'};\nbreak;\ncase 36: case 37:\nthis.$=$$[$0];\nbreak;\ncase 40:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 41:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 42:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 43:\n yy.parseDirective('}%%', 'close_directive', 'state'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,31:6,45:$V3},o([1,4,5,14,15,17,20,22,23,24,25,26,27,36,37,38,39,42,45],$V4,{8:11}),{32:12,46:[1,13]},{46:[2,40]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},{33:36,34:[1,37],48:$Vm},o([34,48],[2,41]),o($Vn,[2,6]),{6:28,10:39,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},o($Vn,[2,8]),o($Vn,[2,9]),o($Vn,[2,10],{12:[1,40],13:[1,41]}),o($Vn,[2,14]),{16:[1,42]},o($Vn,[2,16],{18:[1,43]}),{21:[1,44]},o($Vn,[2,20]),o($Vn,[2,21]),o($Vn,[2,22]),o($Vn,[2,23]),{28:45,29:[1,46],43:[1,47],44:[1,48]},o($Vn,[2,26]),o($Vn,[2,27]),o($Vo,[2,36]),o($Vo,[2,37]),o($Vn,[2,30]),o($Vn,[2,31]),o($Vn,[2,32]),o($Vn,[2,33]),o($Vp,[2,28]),{35:49,47:[1,50]},o($Vp,[2,43]),o($Vn,[2,7]),o($Vn,[2,11]),{11:51,22:$Vb,42:$Vl},o($Vn,[2,15]),o($Vq,$V4,{8:52}),{22:[1,53]},{22:[1,54]},{21:[1,55]},{22:[2,38]},{22:[2,39]},{33:56,48:$Vm},{48:[2,42]},o($Vn,[2,12],{12:[1,57]}),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,58],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},o($Vn,[2,18],{18:[1,59]}),{29:[1,60]},{22:[1,61]},o($Vp,[2,29]),o($Vn,[2,13]),o($Vn,[2,17]),o($Vq,$V4,{8:62}),o($Vn,[2,24]),o($Vn,[2,25]),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,63],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:6,36:$Vh,37:$Vi,38:$Vj,39:$Vk,42:$Vl,45:$V3},o($Vn,[2,19])],\ndefaultActions: {7:[2,40],8:[2,1],9:[2,2],10:[2,3],47:[2,38],48:[2,39],50:[2,42]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 36;\nbreak;\ncase 1:return 37;\nbreak;\ncase 2:return 38;\nbreak;\ncase 3:return 39;\nbreak;\ncase 4: this.begin('open_directive'); return 45; \nbreak;\ncase 5: this.begin('type_directive'); return 46; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 34; \nbreak;\ncase 7: this.popState(); this.popState(); return 48; \nbreak;\ncase 8:return 47;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */{ /*console.log('Crap after close');*/ }\nbreak;\ncase 11:return 5;\nbreak;\ncase 12:/* skip all whitespace */\nbreak;\ncase 13:/* skip same-line whitespace */\nbreak;\ncase 14:/* skip comments */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15; \nbreak;\ncase 17:return 16;\nbreak;\ncase 18:this.popState();\nbreak;\ncase 19: /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE'); \nbreak;\ncase 20:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 21:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 22:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 23:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 24:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 25:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 26: return 36;\nbreak;\ncase 27: return 37;\nbreak;\ncase 28: return 38;\nbreak;\ncase 29: return 39;\nbreak;\ncase 30: /*console.log('Starting STATE_STRING zxzx');*/this.begin(\"STATE_STRING\");\nbreak;\ncase 31:this.popState();this.pushState('STATE_ID');return \"AS\";\nbreak;\ncase 32:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 33:this.popState();\nbreak;\ncase 34: /*console.log('Long description:', yy_.yytext);*/return \"STATE_DESCR\";\nbreak;\ncase 35:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;\nbreak;\ncase 36:this.popState();\nbreak;\ncase 37:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;\nbreak;\ncase 38: /*console.log('Ending struct');*/ this.popState(); return 19;\nbreak;\ncase 39:/* nothing */\nbreak;\ncase 40: this.begin('NOTE'); return 27; \nbreak;\ncase 41: this.popState();this.pushState('NOTE_ID');return 43;\nbreak;\ncase 42: this.popState();this.pushState('NOTE_ID');return 44;\nbreak;\ncase 43: this.popState();this.pushState('FLOATING_NOTE');\nbreak;\ncase 44:this.popState();this.pushState('FLOATING_NOTE_ID');return \"AS\";\nbreak;\ncase 45:/**/\nbreak;\ncase 46: /*console.log('Floating note text: ', yy_.yytext);*/return \"NOTE_TEXT\";\nbreak;\ncase 47:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 48: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;\nbreak;\ncase 49: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 29;\nbreak;\ncase 50: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 29;\nbreak;\ncase 51: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 52: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 53: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14; \nbreak;\ncase 54: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 42;\nbreak;\ncase 55: /*console.log('=>ID=',yy_.yytext);*/ return 22;\nbreak;\ncase 56: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12; \nbreak;\ncase 57:return 13;\nbreak;\ncase 58:return 26;\nbreak;\ncase 59:return 5;\nbreak;\ncase 60:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:[\\s]+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:scale\\s+)/i,/^(?:\\d+)/i,/^(?:\\s+width\\b)/i,/^(?:state\\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\\[\\[fork\\]\\])/i,/^(?:.*\\[\\[join\\]\\])/i,/^(?:.*\\[\\[choice\\]\\])/i,/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:[\"])/i,/^(?:\\s*as\\s+)/i,/^(?:[^\\n\\{]*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n\\s\\{]+)/i,/^(?:\\n)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?:[\\n])/i,/^(?:note\\s+)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:\")/i,/^(?:\\s*as\\s*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n]*)/i,/^(?:\\s*[^:\\n\\s\\-]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:[\\s\\S]*?end note\\b)/i,/^(?:stateDiagram\\s+)/i,/^(?:stateDiagram-v2\\s+)/i,/^(?:hide empty description\\b)/i,/^(?:\\[\\*\\])/i,/^(?:[^:\\n\\s\\-\\{]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"LINE\":{\"rules\":[13,14],\"inclusive\":false},\"close_directive\":{\"rules\":[13,14],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8,13,14],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7,13,14],\"inclusive\":false},\"open_directive\":{\"rules\":[5,13,14],\"inclusive\":false},\"struct\":{\"rules\":[13,14,19,26,27,28,29,38,39,40,54,55,56,57,58],\"inclusive\":false},\"FLOATING_NOTE_ID\":{\"rules\":[47],\"inclusive\":false},\"FLOATING_NOTE\":{\"rules\":[44,45,46],\"inclusive\":false},\"NOTE_TEXT\":{\"rules\":[49,50],\"inclusive\":false},\"NOTE_ID\":{\"rules\":[48],\"inclusive\":false},\"NOTE\":{\"rules\":[41,42,43],\"inclusive\":false},\"SCALE\":{\"rules\":[17,18],\"inclusive\":false},\"ALIAS\":{\"rules\":[],\"inclusive\":false},\"STATE_ID\":{\"rules\":[32],\"inclusive\":false},\"STATE_STRING\":{\"rules\":[33,34],\"inclusive\":false},\"FORK_STATE\":{\"rules\":[],\"inclusive\":false},\"STATE\":{\"rules\":[13,14,20,21,22,23,24,25,30,31,35,36,37],\"inclusive\":false},\"ID\":{\"rules\":[13,14],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,12,14,15,16,19,37,40,51,52,53,54,55,56,57,59,60],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,17,18,19,21],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,21],$V7=[4,6,9,11,17,18,19,21];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"journey\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"title\":17,\"section\":18,\"taskName\":19,\"taskData\":20,\"open_directive\":21,\"type_directive\":22,\"arg_directive\":23,\"close_directive\":24,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"journey\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",17:\"title\",18:\"section\",19:\"taskName\",20:\"taskData\",21:\"open_directive\",22:\"type_directive\",23:\"arg_directive\",24:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 11:\nyy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 12:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 13:\nyy.addTask($$[$0-1], $$[$0]);this.$='task';\nbreak;\ncase 15:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 16:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 17:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 18:\n yy.parseDirective('}%%', 'close_directive', 'journey'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,21:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,21:$V1},{13:8,22:[1,9]},{22:[2,15]},{6:[1,10],7:18,8:11,9:[1,12],10:13,11:[1,14],12:4,17:$V3,18:$V4,19:$V5,21:$V1},{1:[2,2]},{14:19,15:[1,20],24:$V6},o([15,24],[2,16]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:18,10:22,12:4,17:$V3,18:$V4,19:$V5,21:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,12]),{20:[1,23]},o($V2,[2,14]),{11:[1,24]},{16:25,23:[1,26]},{11:[2,18]},o($V2,[2,5]),o($V2,[2,13]),o($V7,[2,9]),{14:27,24:$V6},{24:[2,17]},{11:[1,28]},o($V7,[2,10])],\ndefaultActions: {5:[2,15],7:[2,2],21:[2,18],26:[2,17]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 21; \nbreak;\ncase 1: this.begin('type_directive'); return 22; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 3: this.popState(); this.popState(); return 24; \nbreak;\ncase 4:return 23;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:return 11;\nbreak;\ncase 8:/* skip whitespace */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:return 4;\nbreak;\ncase 11:return 17;\nbreak;\ncase 12:return 18;\nbreak;\ncase 13:return 19;\nbreak;\ncase 14:return 20;\nbreak;\ncase 15:return 15;\nbreak;\ncase 16:return 6;\nbreak;\ncase 17:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:journey\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,13,14,15,16,17],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","import { assignWithDepth } from './utils';\nimport { log } from './logger';\nimport theme from './themes';\nimport config from './defaultConfig';\n\n// debugger;\n\nexport const defaultConfig = Object.freeze(config);\n\nlet siteConfig = assignWithDepth({}, defaultConfig);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n // start with config beeing the siteConfig\n let cfg = assignWithDepth({}, siteCfg);\n // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);\n\n // Join directives\n let sumOfDirectives = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n\n // Apply the data from the directive where the the overrides the themeVaraibles\n sumOfDirectives = assignWithDepth(sumOfDirectives, d);\n }\n\n cfg = assignWithDepth(cfg, sumOfDirectives);\n\n if (sumOfDirectives.theme) {\n const tmpConfigFromInitialize = assignWithDepth({}, configFromInitialize);\n const themeVariables = assignWithDepth(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n\n currentConfig = cfg;\n return cfg;\n};\n\n/**\n * ## setSiteConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |\n * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |\n *\n * **Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls\n * to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig)\n * will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this\n * function *Default value: At default, will mirror Global Config**\n *\n * @param conf - The base currentConfig to use as siteConfig\n * @returns {object} - The siteConfig\n */\nexport const setSiteConfig = (conf) => {\n siteConfig = assignWithDepth({}, defaultConfig);\n siteConfig = assignWithDepth(siteConfig, conf);\n\n if (conf.theme) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n\n currentConfig = updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\n\nexport const saveConfigFromInitilize = (conf) => {\n configFromInitialize = assignWithDepth({}, conf);\n};\n\nexport const updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n\n return siteConfig;\n};\n/**\n * ## getSiteConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------------------- | ----------- | -------------------------------- |\n * | setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig |\n *\n * **Notes**: Returns **any** values in siteConfig.\n *\n * @returns {object} - The siteConfig\n */\nexport const getSiteConfig = () => {\n return assignWithDepth({}, siteConfig);\n};\n/**\n * ## setConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |\n * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |\n *\n * **Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure\n * keys. Any values found in conf with key found in siteConfig.secure will be replaced with the\n * corresponding siteConfig value.\n *\n * @param {any} conf - The potential currentConfig\n * @returns {any} - The currentConfig merged with the sanitized conf\n */\nexport const setConfig = (conf) => {\n // sanitize(conf);\n // Object.keys(conf).forEach(key => {\n // const manipulator = manipulators[key];\n // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];\n // });\n\n assignWithDepth(currentConfig, conf);\n\n return getConfig();\n};\n\n/**\n * ## getConfig\n *\n * | Function | Description | Type | Return Values |\n * | --------- | ------------------------- | ----------- | ------------------------------ |\n * | getConfig | Obtains the currentConfig | Get Request | Any Values from current Config |\n *\n * **Notes**: Returns **any** the currentConfig\n *\n * @returns {any} - The currentConfig\n */\nexport const getConfig = () => {\n return assignWithDepth({}, currentConfig);\n};\n/**\n * ## sanitize\n *\n * | Function | Description | Type | Values |\n * | -------- | -------------------------------------- | ----------- | ------ |\n * | sanitize | Sets the siteConfig to desired values. | Put Request | None |\n *\n * Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies\n * options in-place\n *\n * @param {any} options - The potential setConfig parameter\n */\nexport const sanitize = (options) => {\n // Checking that options are not in the list of excluded options\n Object.keys(siteConfig.secure).forEach((key) => {\n if (typeof options[siteConfig.secure[key]] !== 'undefined') {\n // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script\n // can exploit the logger's attempt to stringify the value and execute arbitrary code\n log.debug(\n `Denied attempt to modify a secure key ${siteConfig.secure[key]}`,\n options[siteConfig.secure[key]]\n );\n delete options[siteConfig.secure[key]];\n }\n });\n\n // Check that there no attempts of prototype pollution\n Object.keys(options).forEach((key) => {\n if (key.indexOf('__') === 0) {\n delete options[key];\n }\n });\n // Check that there no attempts of xss, there should be no tags at all in the directive\n // blocking data urls as base64 urls can contain svgs with inline script tags\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'string') {\n if (\n options[key].indexOf('<') > -1 ||\n options[key].indexOf('>') > -1 ||\n options[key].indexOf('url(data:') > -1\n ) {\n delete options[key];\n }\n }\n if (typeof options[key] === 'object') {\n sanitize(options[key]);\n }\n });\n};\n\n/**\n * Pushes in a directive to the configuration\n *\n * @param {object} directive The directive to push in\n */\nexport const addDirective = (directive) => {\n if (directive.fontFamily) {\n if (!directive.themeVariables) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n } else {\n if (!directive.themeVariables.fontFamily) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n }\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\n\n/**\n * ## reset\n *\n * | Function | Description | Type | Required | Values |\n * | -------- | ---------------------------- | ----------- | -------- | ------ |\n * | reset | Resets currentConfig to conf | Put Request | Required | None |\n *\n * ## conf\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- |\n * | conf | base set of values, which currentConfig coul be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array |\n *\n * **Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`)\n */\nexport const reset = () => {\n // Replace current config with siteConfig\n directives = [];\n updateCurrentConfig(siteConfig, directives);\n};\n","import intersectRect from './intersect/intersect-rect';\nimport { log } from '../logger';\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\nimport { evaluate } from '../diagrams/common/common';\n\nconst rect = (parent, node) => {\n log.trace('Creating subgraph rect for ', node.id, node);\n\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'cluster' + (node.class ? ' ' + node.class : ''))\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n log.trace('Data ', node, JSON.stringify(node));\n // center the rect around its coordinate\n rect\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - width / 2)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width)\n .attr('height', node.height + padding);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 + node.padding / 3) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * Non visiable cluster where the note is group with its\n *\n * @param {any} parent\n * @param {any} node\n * @returns {any} ShapeSvg\n */\nconst noteGroup = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding)\n .attr('fill', 'none');\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n const innerRect = shapeSvg.append('rect');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n // center the rect around its coordinate\n rect\n .attr('class', 'outer')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width + padding)\n .attr('height', node.height + padding);\n innerRect\n .attr('class', 'inner')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', width + padding)\n .attr('height', node.height + padding - bbox.height - 3);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y -\n node.height / 2 -\n node.padding / 3 +\n (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'divider')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\n\nlet clusterElems = {};\n\nexport const insertCluster = (elem, node) => {\n log.trace('Inserting cluster');\n const shape = node.shape || 'rect';\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nexport const getClusterTitleWidth = (elem, node) => {\n const label = createLabel(node.labelText, node.labelStyle, undefined, true);\n elem.node().appendChild(label);\n const width = label.getBBox().width;\n elem.node().removeChild(label);\n return width;\n};\n\nexport const clear = () => {\n clusterElems = {};\n};\n\nexport const positionCluster = (node) => {\n log.info('Position cluster (' + node.id + ', ' + node.x + ', ' + node.y + ')');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { getConfig } from '../config';\nimport { sanitizeText, evaluate } from '../diagrams/common/common';\n\nconst sanitizeTxt = (txt) => sanitizeText(txt, getConfig());\n\n/**\n * @param dom\n * @param styleFn\n */\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\n/**\n * @param {any} node\n * @returns {SVGForeignObjectElement} Node\n */\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));\n const div = fo.append('xhtml:div');\n\n const label = node.label;\n const labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';\n div.html(\n '' +\n label +\n ''\n );\n\n applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n return fo.node();\n}\n\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || '';\n if (typeof vertexText === 'object') vertexText = vertexText[0];\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n log.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace('fill:', 'color:'),\n };\n let vertexNode = addHtmlLabel(node);\n // vertexNode.parentNode.removeChild(vertexNode);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n svgLabel.setAttribute('style', style.replace('color:', 'fill:'));\n let rows = [];\n if (typeof vertexText === 'string') {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n\n for (let j = 0; j < rows.length; j++) {\n const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n tspan.setAttribute('dy', '1em');\n tspan.setAttribute('x', '0');\n if (isTitle) {\n tspan.setAttribute('class', 'title-row');\n } else {\n tspan.setAttribute('class', 'row');\n }\n tspan.textContent = rows[j].trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\n\nexport default createLabel;\n","import { log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\nimport { evaluate } from '../diagrams/common/common';\n\nlet edgeLabels = {};\nlet terminalLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\n\nexport const insertEdgeLabel = (elem, edge) => {\n // Create the actual text element\n const labelElement = createLabel(edge.label, edge.labelStyle);\n\n // Create outer g, edgeLabel, this will be positioned after graph layout\n const edgeLabel = elem.insert('g').attr('class', 'edgeLabel');\n\n // Create inner g, label, this will be positioned now for centering the text\n const label = edgeLabel.insert('g').attr('class', 'label');\n label.node().appendChild(labelElement);\n\n // Center the label\n let bbox = labelElement.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n // Make element accessible by id for positioning\n edgeLabels[edge.id] = edgeLabel;\n\n // Update the abstract data of the edge with the new information about its width and height\n edge.width = bbox.width;\n edge.height = bbox.height;\n\n let fo;\n if (edge.startLabelLeft) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelRight.insert('g').attr('class', 'inner');\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelRight.insert('g').attr('class', 'inner');\n\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n};\n\n/**\n * @param {any} fo\n * @param {any} value\n */\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + 'px';\n fo.style.height = '12px';\n }\n}\n\nexport const positionEdgeLabel = (edge, paths) => {\n log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // // debugger;\n const pos = utils.calcLabelPosition(path);\n log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');\n // x = pos.x;\n // y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n\n //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n 'start_right',\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n};\n\n// const getRelationType = function(type) {\n// switch (type) {\n// case stateDb.relationType.AGGREGATION:\n// return 'aggregation';\n// case stateDb.relationType.EXTENSION:\n// return 'extension';\n// case stateDb.relationType.COMPOSITION:\n// return 'composition';\n// case stateDb.relationType.DEPENDENCY:\n// return 'dependency';\n// }\n// };\n\nconst outsideNode = (node, point) => {\n // log.warn('Checking bounds ', node, point);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point.x - x);\n const dy = Math.abs(point.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\n\nexport const intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\n // const dy = Math.abs(y - insidePoint.y);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n\n // const edges = {\n // x1: x - w,\n // x2: x + w,\n // y1: y - h,\n // y2: y + h\n // };\n\n // if (\n // outsidePoint.x === edges.x1 ||\n // outsidePoint.x === edges.x2 ||\n // outsidePoint.y === edges.y1 ||\n // outsidePoint.y === edges.y2\n // ) {\n // log.warn('abc89 calc equals on edge', outsidePoint, edges);\n // return outsidePoint;\n // }\n\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n // log.warn();\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { // eslint-disable-line\n // Intersection is top or bottom of rect.\n // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = (R * q) / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q,\n };\n\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n\n return res;\n } else {\n // Intersection onn sides of rect\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n // r = outsidePoint.x - w - x;\n r = x - w - outsidePoint.x;\n }\n let q = (Q * r) / R;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n\n return { x: _x, y: _y };\n }\n};\n/**\n * This function will page a path and node where the last point(s) in the path is inside the node\n * and return an update path ending by the border of the node.\n *\n * @param {Array} _points\n * @param {any} boundryNode\n * @returns {Array} Points\n */\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn('abc88 cutPathAtIntersect', _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point) => {\n // const node = clusterDb[edge.toCluster].node;\n log.info('abc88 checking point', point, boundryNode);\n\n // check if point is inside the boundry rect\n if (!outsideNode(boundryNode, point) && !isInside) {\n // First point inside the rect found\n // Calc the intersection coord between the point anf the last opint ouside the rect\n const inter = intersection(boundryNode, lastPointOutside, point);\n log.warn('abc88 inside', point, lastPointOutside, inter);\n log.warn('abc88 intersection', inter);\n\n // // Check case where the intersection is the same as the last point\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n });\n // // if (!pointPresent) {\n if (!points.find((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn('abc88 no intersect', inter, points);\n }\n // points.push(inter);\n isInside = true;\n } else {\n // Outside\n log.warn('abc88 outside', point, lastPointOutside);\n lastPointOutside = point;\n // points.push(point);\n if (!isInside) points.push(point);\n }\n });\n log.warn('abc88 returning points', points);\n return points;\n};\n\n//(edgePaths, e, edge, clusterDb, diagramtype, graph)\nexport const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n\n log.info('abc88 InsertEdge: ', edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n 'Last point',\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info('to cluster abc88', clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n // log.trace('edge', edge);\n // points = [];\n // let lastPointOutside; // = edge.points[0];\n // let isInside = false;\n // edge.points.forEach(point => {\n // const node = clusterDb[edge.toCluster].node;\n // log.warn('checking from', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.trace('inside', edge.toCluster, point, lastPointOutside);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // points.push(inter);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // isInside = true;\n // } else {\n // // outtside\n // lastPointOutside = point;\n // if (!isInside) points.push(point);\n // }\n // });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n log.info('from cluster abc88', clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n // log.warn('edge', edge);\n // log.warn('from cluster', clusterDb[edge.fromCluster], points);\n // const updatedPoints = [];\n // let lastPointOutside = edge.points[edge.points.length - 1];\n // let isInside = false;\n // for (let i = points.length - 1; i >= 0; i--) {\n // const point = points[i];\n // const node = clusterDb[edge.fromCluster].node;\n // log.warn('checking to', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.warn('inside', edge.fromCluster, point, node);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n // log.warn('intersect', intersection(node, lastPointOutside, point));\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // updatedPoints.unshift(inter);\n // log.warn('Adding point -updated = ', updatedPoints);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // // points.push(insterection);\n // isInside = true;\n // } else {\n // // at the outside\n // // if (!isInside) updatedPoints.unshift(point);\n // updatedPoints.unshift(point);\n // log.warn('Outside point', point, updatedPoints);\n // }\n // lastPointOutside = point;\n // }\n // points = updatedPoints;\n // points = edge.points;\n pointsHasChanged = true;\n }\n\n // The data for our line\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n\n // This is the accessor function we talked about above\n let curve;\n // Currently only flowcharts get the curve from the settings, perhaps this should\n // be expanded to a common setting? Restricting it for now in order not to cause side-effects that\n // have not been thought through\n if (diagramType === 'graph' || diagramType === 'flowchart') {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n // curve = curveLinear;\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curve);\n\n // Contruct stroke classes based on properties\n let strokeClasses;\n switch (edge.thickness) {\n case 'normal':\n strokeClasses = 'edge-thickness-normal';\n break;\n case 'thick':\n strokeClasses = 'edge-thickness-thick';\n break;\n default:\n strokeClasses = '';\n }\n switch (edge.pattern) {\n case 'solid':\n strokeClasses += ' edge-pattern-solid';\n break;\n case 'dotted':\n strokeClasses += ' edge-pattern-dotted';\n break;\n case 'dashed':\n strokeClasses += ' edge-pattern-dashed';\n break;\n }\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', edge.id)\n .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))\n .attr('style', edge.style);\n\n // DEBUG code, adds a red circle at each edge coordinate\n // edge.points.forEach(point => {\n // elem\n // .append('circle')\n // .style('stroke', 'red')\n // .style('fill', 'red')\n // .attr('r', 1)\n // .attr('cx', point.x)\n // .attr('cy', point.y);\n // });\n\n let url = '';\n if (getConfig().state.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n log.info('arrowTypeStart', edge.arrowTypeStart);\n log.info('arrowTypeEnd', edge.arrowTypeEnd);\n\n switch (edge.arrowTypeStart) {\n case 'arrow_cross':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');\n break;\n default:\n }\n switch (edge.arrowTypeEnd) {\n case 'arrow_cross':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');\n break;\n default:\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\n","import dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport insertMarkers from './markers';\nimport { updateNodeBounds } from './shapes/util';\nimport {\n clear as clearGraphlib,\n clusterDb,\n adjustClustersAndEdges,\n findNonClusterChild,\n sortNodesByHierarchy,\n} from './mermaid-graphlib';\nimport { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes';\nimport { insertCluster, clear as clearClusters } from './clusters';\nimport { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges';\nimport { log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace('Dir in recursive render - dir:', dir);\n\n const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line\n if (!graph.nodes()) {\n log.info('No nodes found for', graph);\n } else {\n log.info('Recursive render XXX', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace('Recursive edges', graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line\n const edgePaths = elem.insert('g').attr('class', 'edgePaths');\n const edgeLabels = elem.insert('g').attr('class', 'edgeLabels');\n const nodes = elem.insert('g').attr('class', 'nodes');\n\n // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated\n // to the abstract node and is later used by dagre for the layout\n graph.nodes().forEach(function (v) {\n const node = graph.node(v);\n if (typeof parentCluster !== 'undefined') {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n // data.clusterPositioning = true;\n log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace('Setting parent', v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node.width, graph.node(v));\n const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n\n log.warn('Recursive render complete ', newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n // This is a cluster but not to be rendered recusively\n // Render as before\n log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n // insertCluster(clusters, graph.node(v));\n } else {\n log.info('Node - the non recursive path', v, node.id, node);\n insertNode(nodes, graph.node(v), dir);\n }\n }\n });\n\n // Insert labels, this will insert them into the dom so that the width can be calculated\n // Also figure out which edges point to/from clusters and adjust them accordingly\n // Edges from/to clusters really points to the first child in the cluster.\n // TODO: pick optimal child in the cluster to us as link anchor\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e)));\n\n // Check if link is either from or to a cluster\n log.info('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n\n graph.edges().forEach(function (e) {\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n });\n log.info('#############################################');\n log.info('### Layout ###');\n log.info('#############################################');\n log.info(graph);\n dagre.layout(graph);\n log.info('Graph after layout:', graphlib.json.write(graph));\n // Move the nodes to the correct place\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function (v) {\n const node = graph.node(v);\n log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));\n log.info(\n 'Position ' + v + ': (' + node.x,\n ',' + node.y,\n ') width: ',\n node.width,\n ' height: ',\n node.height\n );\n if (node && node.clusterNode) {\n // clusterDb[node.id].node = node;\n\n positionNode(node);\n } else {\n // Non cluster node\n if (graph.children(v).length > 0) {\n // A cluster in the non-recurive way\n // positionCluster(node);\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n\n // Move the edge labels to the correct place after layout\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);\n\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n\n graph.nodes().forEach(function (v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === 'group') {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\n\nexport const render = (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clearNodes();\n clearEdges();\n clearClusters();\n clearGraphlib();\n\n log.warn('Graph at first:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));\n recursiveRender(elem, graph, diagramtype);\n};\n\n// const shapeDefinitions = {};\n// export const addShape = ({ shapeType: fun }) => {\n// shapeDefinitions[shapeType] = fun;\n// };\n\n// const arrowDefinitions = {};\n// export const addArrow = ({ arrowType: fun }) => {\n// arrowDefinitions[arrowType] = fun;\n// };\n","/*\n * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!\n */\n\nimport node from './intersect-node.js';\nimport circle from './intersect-circle.js';\nimport ellipse from './intersect-ellipse.js';\nimport polygon from './intersect-polygon.js';\nimport rect from './intersect-rect.js';\n\nexport default {\n node,\n circle,\n ellipse,\n polygon,\n rect,\n};\n","import intersectEllipse from './intersect-ellipse';\n\n/**\n * @param node\n * @param rx\n * @param point\n */\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n\nexport default intersectCircle;\n","/**\n * @param node\n * @param rx\n * @param ry\n * @param point\n */\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n\nexport default intersectEllipse;\n","/**\n * Returns the point at which two lines, p and q, intersect or returns undefined if they do not intersect.\n *\n * @param p1\n * @param p2\n * @param q1\n * @param q2\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\n/**\n * @param r1\n * @param r2\n */\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n\nexport default intersectLine;\n","module.exports = intersectNode;\n\n/**\n * @param node\n * @param point\n */\nfunction intersectNode(node, point) {\n // console.info('Intersect Node');\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nimport intersectLine from './intersect-line';\n\nexport default intersectPolygon;\n\n/**\n * Returns the point ({x, y}) at which the point argument intersects with the node argument assuming\n * that it has the shape specified by polygon.\n *\n * @param node\n * @param polyPoints\n * @param point\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === 'function') {\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","const intersectRect = (node, point) => {\r\n var x = node.x;\r\n var y = node.y;\r\n\r\n // Rectangle intersection algorithm from:\r\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\r\n var dx = point.x - x;\r\n var dy = point.y - y;\r\n var w = node.width / 2;\r\n var h = node.height / 2;\r\n\r\n var sx, sy;\r\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\r\n // Intersection is top or bottom of rect.\r\n if (dy < 0) {\r\n h = -h;\r\n }\r\n sx = dy === 0 ? 0 : (h * dx) / dy;\r\n sy = h;\r\n } else {\r\n // Intersection is left or right of rect.\r\n if (dx < 0) {\r\n w = -w;\r\n }\r\n sx = w;\r\n sy = dx === 0 ? 0 : (w * dy) / dx;\r\n }\r\n\r\n return { x: x + sx, y: y + sy };\r\n};\r\n\r\nexport default intersectRect;\r\n","/** Setup arrow head and define the marker. The result is appended to the svg. */\n\nimport { log } from '../logger';\n\n// Only add the number of markers that the diagram needs\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\n\nconst extension = (elem, type, id) => {\n log.trace('Making markers for ', id);\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionStart')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionEnd')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n};\n\nconst composition = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionStart')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionEnd')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst aggregation = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationStart')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationEnd')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst dependency = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyStart')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyEnd')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\nconst point = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-pointEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n elem\n .append('marker')\n .attr('id', type + '-pointStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 0)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 5 L 10 10 L 10 0 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst circle = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-circleEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 11)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-circleStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', -1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst cross = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-crossEnd')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', 12)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-crossStart')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', -1)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n};\nconst barb = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-barbEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 14)\n .attr('markerUnits', 'strokeWidth')\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');\n};\n\n// TODO rename the class diagram markers to something shape descriptive and semanitc free\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n point,\n circle,\n cross,\n barb,\n};\nexport default insertMarkers;\n","/** Decorates with functions required by mermaids dagre-wrapper. */\nimport { log } from '../logger';\nimport graphlib from 'graphlib';\n\nexport let clusterDb = {};\nlet decendants = {};\nlet parents = {};\n\nexport const clear = () => {\n decendants = {};\n parents = {};\n clusterDb = {};\n};\n\nconst isDecendant = (id, ancenstorId) => {\n // if (id === ancenstorId) return true;\n\n log.trace(\n 'In isDecendant',\n ancenstorId,\n ' ',\n id,\n ' = ',\n decendants[ancenstorId].indexOf(id) >= 0\n );\n if (decendants[ancenstorId].indexOf(id) >= 0) return true;\n\n return false;\n};\n\nconst edgeInCluster = (edge, clusterId) => {\n log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);\n log.info('Edge is ', edge);\n // Edges to/from the cluster is not in the cluster, they are in the parent\n if (edge.v === clusterId) return false;\n if (edge.w === clusterId) return false;\n\n if (!decendants[clusterId]) {\n log.debug('Tilt, ', clusterId, ',not in decendants');\n return false;\n }\n log.info('Here ');\n\n if (decendants[clusterId].indexOf(edge.v) >= 0) return true;\n if (isDecendant(edge.v, clusterId)) return true;\n if (isDecendant(edge.w, clusterId)) return true;\n if (decendants[clusterId].indexOf(edge.w) >= 0) return true;\n\n return false;\n};\n\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n 'Copying children of ',\n clusterId,\n 'root',\n rootId,\n 'data',\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n\n // Include cluster node if it is not the root\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n\n log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);\n\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn('Setting parent', node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n\n if (clusterId !== rootId && node !== clusterId) {\n log.debug('Setting parent', node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);\n log.debug(\n 'Not Setting parent for node=',\n node,\n 'cluster!==rootId',\n clusterId !== rootId,\n 'node!==clusterId',\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug('Copying Edges', edges);\n edges.forEach((edge) => {\n log.info('Edge', edge);\n const data = graph.edge(edge.v, edge.w, edge.name);\n log.info('Edge data', data, rootId);\n try {\n // Do not copy edges in and out of the root cluster, they belong to the parent graph\n if (edgeInCluster(edge, rootId)) {\n log.info('Copying as ', edge.v, edge.w, data, edge.name);\n newGraph.setEdge(edge.v, edge.w, data, edge.name);\n log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n 'Skipping copy of edge ',\n edge.v,\n '-->',\n edge.w,\n ' rootId: ',\n rootId,\n ' clusterId:',\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug('Removing node', node);\n graph.removeNode(node);\n });\n};\nexport const extractDecendants = (id, graph) => {\n // log.debug('Extracting ', id);\n const children = graph.children(id);\n let res = [].concat(children);\n\n for (let i = 0; i < children.length; i++) {\n parents[children[i]] = id;\n res = res.concat(extractDecendants(children[i], graph));\n }\n\n return res;\n};\n\n/**\n * Validates the graph, checking that all parent child relation points to existing nodes and that\n * edges between nodes also ia correct. When not correct the function logs the discrepancies.\n *\n * @param graph\n */\nexport const validate = (graph) => {\n const edges = graph.edges();\n log.trace('Edges: ', edges);\n for (let i = 0; i < edges.length; i++) {\n if (graph.children(edges[i].v).length > 0) {\n log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');\n return false;\n }\n if (graph.children(edges[i].w).length > 0) {\n log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');\n return false;\n }\n }\n return true;\n};\n\n/**\n * Finds a child that is not a cluster. When faking a edge between a node and a cluster.\n *\n * @param {Finds a} id\n * @param {any} graph\n */\nexport const findNonClusterChild = (id, graph) => {\n // const node = graph.node(id);\n log.trace('Searching', id);\n // const children = graph.children(id).reverse();\n const children = graph.children(id); //.reverse();\n log.trace('Searching children of id ', id, children);\n if (children.length < 1) {\n log.trace('This is a valid node', id);\n return id;\n }\n for (let i = 0; i < children.length; i++) {\n const _id = findNonClusterChild(children[i], graph);\n if (_id) {\n log.trace('Found replacement for', id, ' => ', _id);\n return _id;\n }\n }\n};\n\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n // If the cluster has no external connections\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n\n // Return the replacement node\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\n\nexport const adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug('Opting out, no graph ');\n return;\n } else {\n log.debug('Opting in, graph ');\n }\n // Go through the nodes and for each cluster found, save a replacment node, this can be used when\n // faking a link to a cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n 'Cluster identified',\n id,\n ' Replacement id in edges: ',\n findNonClusterChild(id, graph)\n );\n decendants[id] = extractDecendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n\n // Check incoming and outgoing edges for each cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug('Cluster identified', id, decendants);\n edges.forEach((edge) => {\n // log.debug('Edge, decendants: ', edge, decendants[id]);\n\n // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)\n if (edge.v !== id && edge.w !== id) {\n // Any edge where either the one of the nodes is decending to the cluster but not the other\n // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {\n\n const d1 = isDecendant(edge.v, id);\n const d2 = isDecendant(edge.w, id);\n\n // d1 xor d2 - if either d1 is true and d2 is false or the other way around\n if (d1 ^ d2) {\n log.warn('Edge: ', edge, ' leaves cluster ', id);\n log.warn('Decendants of XXX ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug('Not a cluster ', id, decendants);\n }\n });\n\n // For clusters with incoming and/or outgoing edges translate those edges to a real node\n // in the cluster inorder to fake the edge\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));\n\n let v = e.v;\n let w = e.w;\n // Check if link is either from or to a cluster\n log.warn(\n 'Fix XXX',\n clusterDb,\n 'ids:',\n e.v,\n e.w,\n 'Translateing: ',\n clusterDb[e.v],\n ' --- ',\n clusterDb[e.w]\n );\n if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) edge.fromCluster = e.v;\n if (w !== e.w) edge.toCluster = e.w;\n log.warn('Fix Replacing with XXX', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\n extractor(graph, 0);\n\n log.trace(clusterDb);\n\n // Remove references to extracted cluster\n // graph.edges().forEach(edge => {\n // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {\n // graph.removeEdge(edge);\n // }\n // });\n};\n\nexport const extractor = (graph, depth) => {\n log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D'));\n if (depth > 10) {\n log.error('Bailing out');\n return;\n }\n // For clusters without incoming and/or outgoing edges, create a new cluster-node\n // containing the nodes and edges in the custer in a new graph\n // for (let i = 0;)\n let nodes = graph.nodes();\n let hasChildren = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n\n if (!hasChildren) {\n log.debug('Done, no node has children', graph.nodes());\n return;\n }\n // const clusters = Object.keys(clusterDb);\n // clusters.forEach(clusterId => {\n log.debug('Nodes = ', nodes, depth);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n log.debug(\n 'Extracting node',\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children('D'),\n ' Depth ',\n depth\n );\n // Note that the node might have been removed after the Object.keys call so better check\n // that it still is in the game\n if (!clusterDb[node]) {\n // Skip if the node is not a cluster\n log.debug('Not a cluster', node, depth);\n // break;\n } else if (\n !clusterDb[node].externalConnections &&\n // !graph.parent(node) &&\n graph.children(node) &&\n graph.children(node).length > 0\n ) {\n log.warn(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';\n if (clusterDb[node]) {\n if (clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn('Fixing dir', clusterDb[node].clusterData.dir, dir);\n }\n }\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir, // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n log.warn('Old graph before copy', graphlib.json.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph,\n });\n log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.warn(\n 'Cluster ** ',\n node,\n ' **not meeting the criteria !externalConnections:',\n !clusterDb[node].externalConnections,\n ' no parent: ',\n !graph.parent(node),\n ' children ',\n graph.children(node) && graph.children(node).length > 0,\n graph.children('D'),\n depth\n );\n log.debug(clusterDb);\n }\n }\n\n nodes = graph.nodes();\n log.warn('New list of nodes', nodes);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const data = graph.node(node);\n log.warn(' Now next level', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) return [];\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = result.concat(sorted);\n });\n\n return result;\n};\n\nexport const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util';\nimport { getConfig } from '../config';\nimport intersect from './intersect/index.js';\nimport createLabel from './createLabel';\nimport note from './shapes/note';\nimport { parseMember } from '../diagrams/class/svgDraw';\nimport { evaluate, sanitizeText as sanitize } from '../diagrams/common/common';\n\nconst sanitizeText = (txt) => sanitize(txt, getConfig());\n\nconst question = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 },\n ];\n\n log.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr('style', node.style);\n updateNodeBounds(node, questionElem);\n\n node.intersect = function (point) {\n log.warn('Intersect called');\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst choice = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 },\n ];\n\n const choice = shapeSvg.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n );\n // center the circle around its coordinate\n choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);\n node.width = 28;\n node.height = 28;\n\n node.intersect = function (point) {\n return intersect.circle(node, 14, point);\n };\n\n return shapeSvg;\n};\n\nconst hexagon = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr('style', node.style);\n updateNodeBounds(node, hex);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_left_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n\n node.width = w + h;\n node.height = h;\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_right = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_left = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (2 * h) / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - (2 * h) / 6, y: -h },\n { x: -h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w + (2 * h) / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst inv_trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: (-2 * h) / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_right_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst cylinder = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n\n const shape =\n 'M 0,' +\n ry +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n -w +\n ' 0 l 0,' +\n h +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 l 0,' +\n -h;\n\n const el = shapeSvg\n .attr('label-offset-y', ry)\n .insert('path', ':first-child')\n .attr('style', node.style)\n .attr('d', shape)\n .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');\n\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n const pos = intersect.rect(node, point);\n const x = pos.x - node.x;\n\n if (\n rx != 0 &&\n (Math.abs(x) < node.width / 2 ||\n (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry))\n ) {\n // ellipsis equation: x*x / a*a + y*y / b*b = 1\n // solve for y to get adjustion value for pos.y\n let y = ry * ry * (1 - (x * x) / (rx * rx));\n if (y != 0) y = Math.sqrt(y);\n y = ry - y;\n if (point.y - node.y > 0) y = -y;\n\n pos.y += y;\n }\n\n return pos;\n };\n\n return shapeSvg;\n};\n\nconst rect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect\n .attr('class', 'basic label-container')\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', totalWidth)\n .attr('height', totalHeight);\n\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);\n propKeys.delete('borders');\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * @param rect\n * @param borders\n * @param totalWidth\n * @param totalHeight\n */\nfunction applyNodePropertyBorders(rect, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length);\n strokeDashArray.push(0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0);\n strokeDashArray.push(length);\n };\n if (borders.includes('t')) {\n log.debug('add top border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('r')) {\n log.debug('add right border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes('b')) {\n log.debug('add bottom border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('l')) {\n log.debug('add left border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect.attr('stroke-dasharray', strokeDashArray.join(' '));\n}\n\nconst rectWithTitle = (parent, node) => {\n // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n // const innerRect = shapeSvg.insert('rect');\n const innerLine = shapeSvg.insert('line');\n\n const label = shapeSvg.insert('g').attr('class', 'label');\n\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;\n\n let title = '';\n if (typeof text2 === 'object') {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info('Label text abc79', title, text2, typeof text2 === 'object');\n\n const text = label.node().appendChild(createLabel(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n log.info('Text 2', text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label\n .node()\n .appendChild(\n createLabel(textRows.join ? textRows.join('
') : textRows, node.labelStyle, true, true)\n );\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n // bbox = label.getBBox();\n // log.info(descr);\n const halfPadding = node.padding / 2;\n select(descr).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n ', ' +\n (titleBox.height + halfPadding + 5) +\n ')'\n );\n select(text).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n ', ' +\n 0 +\n ')'\n );\n // Get the size of the label\n\n // Bounding box for title and text\n bbox = label.node().getBBox();\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n innerLine\n .attr('class', 'divider')\n .attr('x1', -bbox.width / 2 - halfPadding)\n .attr('x2', bbox.width / 2 + halfPadding)\n .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst stadium = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n\n // add the rect\n const rect = shapeSvg\n .insert('rect', ':first-child')\n .attr('style', node.style)\n .attr('rx', h / 2)\n .attr('ry', h / 2)\n .attr('x', -w / 2)\n .attr('y', -h / 2)\n .attr('width', w)\n .attr('height', h);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst circle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point);\n };\n\n return shapeSvg;\n};\n\nconst subroutine = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst start = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n let width = 70;\n let height = 10;\n\n if (dir === 'LR') {\n width = 10;\n height = 70;\n }\n\n const shape = shapeSvg\n .append('rect')\n .attr('x', (-1 * width) / 2)\n .attr('y', (-1 * height) / 2)\n .attr('width', width)\n .attr('height', height)\n .attr('class', 'fork-join');\n\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst end = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n const topLine = shapeSvg.insert('line');\n const bottomLine = shapeSvg.insert('line');\n let maxWidth = 0;\n let maxHeight = rowPadding;\n\n const labelContainer = shapeSvg.insert('g').attr('class', 'label');\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n\n // 1. Create the labels\n const interfaceLabelText = node.classData.annotations[0]\n ? '«' + node.classData.annotations[0] + '»'\n : '';\n const interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr('width', interfaceBBox.width);\n dv.attr('height', interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n let classTitleString = node.classData.id;\n\n if (node.classData.type !== undefined && node.classData.type !== '') {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += '<' + node.classData.type + '>';\n } else {\n classTitleString += '<' + node.classData.type + '>';\n }\n }\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr('class', 'classTitle');\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr('width', classTitleBBox.width);\n dv.attr('height', classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedInfo = parseMember(str);\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedInfo = parseMember(str);\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n\n classMethods.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n // 2. Position the labels\n\n // position the interface label\n if (hasInterface) {\n let diffX = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n 'transform',\n 'translate( ' + ((-1 * maxWidth) / 2 + diffX) + ', ' + (-1 * maxHeight) / 2 + ')'\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n // Positin the class title label\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n 'transform',\n 'translate( ' +\n ((-1 * maxWidth) / 2 + diffX) +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n\n topLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' +\n -maxWidth / 2 +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos + lineHeight / 2) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n\n verticalPos += lineHeight;\n bottomLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' + -maxWidth / 2 + ', ' + ((-1 * maxHeight) / 2 + verticalPos) + ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n //\n // let bbox;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = interfaceLabel.children[0];\n // const dv = select(interfaceLabel);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // bbox = labelContainer.getBBox();\n\n // log.info('Text 2', text2);\n // const textRows = text2.slice(1, text2.length);\n // let titleBox = text.getBBox();\n // const descr = label\n // .node()\n // .appendChild(createLabel(textRows.join('
'), node.labelStyle, true, true));\n\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = descr.children[0];\n // const dv = select(descr);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // // bbox = label.getBBox();\n // // log.info(descr);\n // select(descr).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n // ', ' +\n // (titleBox.height + halfPadding + 5) +\n // ')'\n // );\n // select(text).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n // ', ' +\n // 0 +\n // ')'\n // );\n // // Get the size of the label\n\n // // Bounding box for title and text\n // bbox = label.node().getBBox();\n\n // // Center the label\n // label.attr(\n // 'transform',\n // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n // );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -maxWidth / 2 - halfPadding)\n .attr('y', -(maxHeight / 2) - halfPadding)\n .attr('width', maxWidth + node.padding)\n .attr('height', maxHeight + node.padding);\n\n // innerLine\n // .attr('class', 'divider')\n // .attr('x1', -bbox.width / 2 - halfPadding)\n // .attr('x2', bbox.width / 2 + halfPadding)\n // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = {\n question,\n rect,\n rectWithTitle,\n choice,\n circle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box,\n};\n\nlet nodeElems = {};\n\nexport const insertNode = (elem, node, dir) => {\n let newEl;\n let el;\n\n // Add link when appropriate\n if (node.link) {\n let target;\n if (getConfig().securityLevel === 'sandbox') {\n target = '_top';\n } else if (node.linkTarget) {\n target = node.linkTarget || '_blank';\n }\n newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', target);\n el = shapes[node.shape](newEl, node, dir);\n } else {\n el = shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr('title', node.tooltip);\n }\n if (node.class) {\n el.attr('class', 'node default ' + node.class);\n }\n\n nodeElems[node.id] = newEl;\n\n if (node.haveCallback) {\n nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');\n }\n};\nexport const setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nexport const clear = () => {\n nodeElems = {};\n};\n\nexport const positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n 'Transforming node',\n node.diff,\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')'\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x + diff - node.width / 2) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n return diff;\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { log } from '../../logger'; // eslint-disable-line\nimport intersect from '../intersect/index.js';\n\nconst note = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.info('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nexport default note;\n","import createLabel from '../createLabel';\nimport { getConfig } from '../../config';\nimport { decodeEntities } from '../../mermaidAPI';\nimport { select } from 'd3';\nimport { evaluate, sanitizeText } from '../../diagrams/common/common';\nexport const labelHelper = (parent, node, _classes, isNode) => {\n let classes;\n if (!_classes) {\n classes = 'node default';\n } else {\n classes = _classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);\n\n const labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0];\n\n const text = label\n .node()\n .appendChild(\n createLabel(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const halfPadding = node.padding / 2;\n\n // Center the label\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n return { shapeSvg, bbox, halfPadding, label };\n};\n\nexport const updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\n\n/**\n * @param parent\n * @param w\n * @param h\n * @param points\n */\nexport function insertPolygonShape(parent, w, h, points) {\n return parent\n .insert('polygon', ':first-child')\n .attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n )\n .attr('class', 'label-container')\n .attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');\n}\n","import theme from './themes';\n/**\n * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click\n * here](8.6.0_docs.md)].**\n *\n * ## **What follows are config instructions for older versions**\n *\n * These are the default options which can be overridden with the initialization call like so:\n *\n * **Example 1:**
 mermaid.initialize({ flowchart:{ htmlLabels: false } }); 
\n *\n * **Example 2:**
  
\n *\n * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).\n * A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /**\n * Theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\".
 \"theme\": \"forest\",\n   * \"themeCSS\": \".node rect { fill: red; }\" 
\n */\n theme: 'default',\n themeVariables: theme['default'].getThemeVariables(),\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diagram */\n maxTextSize: 50000,\n darkMode: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |\n * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- |\n * | logLevel | This option decides the amount of logging to be used. | string \\| number | Required | 1, 2, 3, 4, 5 |\n *\n * **Notes:**\n *\n * - Debug: 1\n * - Info: 2\n * - Warn: 3\n * - Error: 4\n * - Fatal: 5 (default)\n */\n logLevel: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- |\n * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) tags in text are encoded, click functionality is disabled\n * - **loose**: tags in text are allowed, click functionality is enabled\n * - **antiscript**: html tags in text are allowed, (only script element is removed), click\n * functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |\n * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n\n /**\n * This option controls which currentConfig keys are considered *secure* and can only be changed\n * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the\n * `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n *\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based\n * on a seed. If set to false, the IDs are generated based on the current date and thus are not\n * deterministic. This is the default behaviour.\n *\n * **Notes**:\n *\n * This matters if your files are checked into sourcecontrol e.g. git and should not change unless\n * content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but\n * deterministicIds is true, a simple number iterator is used. You can set this attribute to base\n * the seed on a static string.\n */\n deterministicIDSeed: undefined,\n\n /** The object containing configurations specific for flowcharts */\n flowchart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the\n * vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal\n * spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |\n *\n * **Notes:**\n *\n * Default Value: 'basis'\n */\n curve: 'basis',\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n\n /** The object containing configurations specific for sequence diagrams */\n sequence: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------- | ------- | -------- | ------------------ |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n actorMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 65,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ---------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------ | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------- | -------- | ----------- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n mirrorActors: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |\n *\n * **Notes:**\n *\n * Default value: false.\n */\n forceMenus: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ------------------------------------ | ------- | -------- | ----------- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n *\n * Default value: false\n */\n rightAngles: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ------------------------------- | ------- | -------- | ----------- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:** Default value: false\n */\n showSequenceNumbers: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n * **Notes:** **Default value 14**..\n */\n actorFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |\n * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: \"'Open-Sans\", \"sans-serif\"'\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:** Default value: 400.\n */\n actorFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 14\n */\n noteFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |\n * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:** Default value: 400\n */\n noteFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n noteAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:** Default value: 16\n */\n messageFontSize: 16,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:** Default value: 400.\n */\n messageFontWeight: 400,\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: false.\n */\n wrap: false,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 50.\n */\n labelBoxWidth: 50,\n\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 20.\n */\n labelBoxHeight: 20,\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n noteFont: function () {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight,\n };\n },\n actorFont: function () {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight,\n };\n },\n },\n\n /** The object containing configurations specific for gantt diagrams */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n barHeight: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n barGap: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n topPadding: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n rightPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n leftPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n gridLineStartPadding: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ------------------ |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n fontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------- | ------- | -------- | ------------------ |\n * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n sectionFontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n numberSectionStyles: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | --------------------------- | ---- | -------- | ---------------- |\n * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: '%Y-%m-%d',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ----------- |\n * | topAxis | See notes | Boolean | 4 | True, False |\n *\n * **Notes:** when this flag is set date labels will be added to the top of the chart\n *\n * **Default value false**.\n */\n topAxis: false,\n\n useWidth: undefined,\n },\n\n /** The object containing configurations specific for journey diagrams */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n leftMargin: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ---- | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------- | ---- | -------- | ----------- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open-Sans\", \"sans-serif\"',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n\n // text placement as: tspan | fo | old only text as before\n textPlacement: 'fo',\n actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],\n\n sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],\n sectionColours: ['#fff'],\n },\n class: {\n arrowMarkerAbsolute: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes**:\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n git: {\n arrowMarkerAbsolute: false,\n\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n\n /** The object containing configurations specific for entity relationship diagrams */\n er: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: 'TB',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |\n * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:** Expressed in pixels. Default value: 100\n */\n minEntityWidth: 100,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Expressed in pixels Default value: 75\n */\n minEntityHeight: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------------------------------------------- | ------- | -------- | ------------------ |\n * | entityPadding | Minimum internal padding betweentext in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding betweentext in an entity box and the enclosing box borders,\n * expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------ | -------- | -------------------- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'gray'\n */\n stroke: 'gray',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------- | ------ | -------- | -------------------- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'honeydew'\n */\n fill: 'honeydew',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels) Default value: 12\n */\n fontSize: 12,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for pie diagrams */\n pie: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for req diagrams */\n requirement: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n rect_fill: '#f9f9f9',\n text_color: '#333',\n rect_border_size: '0.5px',\n rect_border_color: '#bbb',\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20,\n },\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nconst keyify = (obj, prefix = '') =>\n Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === 'object' && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], '')];\n }\n return [...res, prefix + el];\n }, []);\n\nexport const configKeys = keyify(config, '');\nexport default config;\n","import { select } from 'd3';\nimport { log } from '../../logger';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport utils from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\n\nconst MERMAID_DOM_ID_PREFIX = 'classid-';\n\nlet relations = [];\nlet classes = {};\nlet classCounter = 0;\n\nlet funs = [];\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, configApi.getConfig());\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst splitClassNameAndType = function (id) {\n let genericType = '';\n let className = id;\n\n if (id.indexOf('~') > 0) {\n let split = id.split('~');\n className = split[0];\n\n genericType = common.sanitizeText(split[1], configApi.getConfig());\n }\n\n return { className: className, type: genericType };\n};\n\n/**\n * Function called by parser when a node definition has been found.\n *\n * @param id\n * @public\n */\nexport const addClass = function (id) {\n let classId = splitClassNameAndType(id);\n // Only add class if not exists\n if (typeof classes[classId.className] !== 'undefined') return;\n\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter,\n };\n\n classCounter++;\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const classKeys = Object.keys(classes);\n for (let i = 0; i < classKeys.length; i++) {\n if (classes[classKeys[i]].id === id) {\n return classes[classKeys[i]].domId;\n }\n }\n};\n\nexport const clear = function () {\n relations = [];\n classes = {};\n funs = [];\n funs.push(setupToolTips);\n};\n\nexport const getClass = function (id) {\n return classes[id];\n};\nexport const getClasses = function () {\n return classes;\n};\n\nexport const getRelations = function () {\n return relations;\n};\n\nexport const addRelation = function (relation) {\n log.debug('Adding relation: ' + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n\n relation.relationTitle1 = common.sanitizeText(\n relation.relationTitle1.trim(),\n configApi.getConfig()\n );\n\n relation.relationTitle2 = common.sanitizeText(\n relation.relationTitle2.trim(),\n configApi.getConfig()\n );\n\n relations.push(relation);\n};\n\n/**\n * Adds an annotation to the specified class Annotations mark special properties of the given type\n * (like 'interface' or 'service')\n *\n * @param className The class name\n * @param annotation The name of the annotation without any brackets\n * @public\n */\nexport const addAnnotation = function (className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\n\n/**\n * Adds a member to the specified class\n *\n * @param className The class name\n * @param member The full name of the member. If the member is enclosed in <> it is\n * treated as an annotation If the member is ending with a closing bracket ) it is treated as a\n * method Otherwise the member will be treated as a normal property\n * @public\n */\nexport const addMember = function (className, member) {\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes[validatedClassName];\n\n if (typeof member === 'string') {\n // Member can contain white spaces, we trim them out\n const memberString = member.trim();\n\n if (memberString.startsWith('<<') && memberString.endsWith('>>')) {\n // Remove leading and trailing brackets\n // theClass.annotations.push(memberString.substring(2, memberString.length - 2));\n theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(')') > 0) {\n theClass.methods.push(sanitizeText(memberString));\n } else if (memberString) {\n theClass.members.push(sanitizeText(memberString));\n }\n }\n};\n\nexport const addMembers = function (className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n};\n\nexport const cleanupLabel = function (label) {\n if (label.substring(0, 1) === ':') {\n return common.sanitizeText(label.substr(1).trim(), configApi.getConfig());\n } else {\n return sanitizeText(label.trim());\n }\n};\n\n/**\n * Called by parser when a special node is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param className Class to add\n */\nexport const setCssClass = function (ids, className) {\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].cssClasses.push(className);\n }\n });\n};\n\n/**\n * Called by parser when a tooltip is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param tooltip Tooltip to add\n */\nconst setTooltip = function (ids, tooltip) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (id) {\n if (typeof tooltip !== 'undefined') {\n classes[id].tooltip = common.sanitizeText(tooltip, config);\n }\n });\n};\n\n/**\n * Called by parser when a link is found. Adds the URL to the vertex data.\n *\n * @param ids Comma separated list of ids\n * @param linkStr URL to create a link for\n * @param target Target of the link, _blank by default as originally defined in the svgDraw.js file\n */\nexport const setLink = function (ids, linkStr, target) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].link = utils.formatUrl(linkStr, config);\n if (config.securityLevel === 'sandbox') {\n classes[id].linkTarget = '_top';\n } else if (typeof target === 'string') {\n classes[id].linkTarget = sanitizeText(target);\n } else {\n classes[id].linkTarget = '_blank';\n }\n }\n });\n setCssClass(ids, 'clickable');\n};\n\n/**\n * Called by parser when a click definition is found. Registers an event handler.\n *\n * @param ids Comma separated list of ids\n * @param functionName Function to be called on click\n * @param functionArgs Function args the function should be called with\n */\nexport const setClickEvent = function (ids, functionName, functionArgs) {\n ids.split(',').forEach(function (id) {\n setClickFunc(id, functionName, functionArgs);\n classes[id].haveCallback = true;\n });\n setCssClass(ids, 'clickable');\n};\n\nconst setClickFunc = function (domId, functionName, functionArgs) {\n const config = configApi.getConfig();\n let id = domId;\n let elemId = lookUpDomId(id);\n\n if (config.securityLevel !== 'loose') {\n return;\n }\n if (typeof functionName === 'undefined') {\n return;\n }\n if (typeof classes[id] !== 'undefined') {\n let argList = [];\n if (typeof functionArgs === 'string') {\n /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n /* Removes all double quotes at the start and end of an argument */\n /* This preserves all starting and ending whitespace inside */\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n\n /* if no arguments passed into callback, default to passing in id */\n if (argList.length === 0) {\n argList.push(elemId);\n }\n\n funs.push(function () {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n 'click',\n function () {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\n\nexport const bindFunctions = function (element) {\n funs.forEach(function (fun) {\n fun(element);\n });\n};\n\nexport const lineType = {\n LINE: 0,\n DOTTED_LINE: 1,\n};\n\nexport const relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n};\n\nconst setupToolTips = function (element) {\n let tooltipElem = select('.mermaidTooltip');\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);\n }\n\n const svg = select(element).select('svg');\n\n const nodes = svg.selectAll('g.node');\n nodes\n .on('mouseover', function () {\n const el = select(this);\n const title = el.attr('title');\n // Dont try to draw a tooltip if no data is provided\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n\n tooltipElem.transition().duration(200).style('opacity', '.9');\n tooltipElem\n .html(el.attr('title'))\n .style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px')\n .style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');\n el.classed('hover', true);\n })\n .on('mouseout', function () {\n tooltipElem.transition().duration(500).style('opacity', 0);\n const el = select(this);\n el.classed('hover', false);\n });\n};\nfuns.push(setupToolTips);\n\nlet direction = 'TB';\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\n\nexport default {\n parseDirective,\n getConfig: () => configApi.getConfig().class,\n addClass,\n bindFunctions,\n clear,\n getClass,\n getClasses,\n addAnnotation,\n getRelations,\n addRelation,\n getDirection,\n setDirection,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n setLink,\n setTooltip,\n lookUpDomId,\n};\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport classDb, { lookUpDomId } from './classDb';\nimport { parser } from './parser/classDiagram';\nimport svgDraw from './svgDraw';\nimport { getConfig } from '../../config';\nimport { render } from '../../dagre-wrapper/index.js';\n// import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';\nimport { curveLinear } from 'd3';\nimport { interpolateToCurve, getStylesFromArray, configureSvgSize } from '../../utils';\nimport common from '../common/common';\n\nparser.yy = classDb;\n\nlet idCache = {};\nconst padding = 20;\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\n\nconst conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Function that adds the vertices found during parsing to the graph to be rendered.\n *\n * @param {Object<\n * string,\n * { cssClasses: string[]; text: string; id: string; type: string; domId: string }\n * >} classes\n * Object containing the vertices.\n * @param {SVGGElement} g The graph that is to be drawn.\n */\nexport const addClasses = function (classes, g) {\n // const svg = select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(classes);\n log.info('keys:', keys);\n log.info(classes);\n\n // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition\n keys.forEach(function (id) {\n const vertex = classes[id];\n\n /**\n * Variable for storing the classes for the vertex\n *\n * @type {string}\n */\n let cssClassStr = '';\n if (vertex.cssClasses.length > 0) {\n cssClassStr = cssClassStr + ' ' + vertex.cssClasses.join(' ');\n }\n // if (vertex.classes.length > 0) {\n // classStr = vertex.classes.join(' ');\n // }\n\n const styles = { labelStyle: '' }; //getStylesFromArray(vertex.styles);\n\n // Use vertex id as text in the box if no text is provided by the graph definition\n let vertexText = vertex.text !== undefined ? vertex.text : vertex.id;\n\n // We create a SVG label, either by delegating to addHtmlLabel or manually\n // let vertexNode;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const node = {\n // label: vertexText.replace(\n // /fa[lrsb]?:fa-[\\w-]+/g,\n // s => ``\n // )\n // };\n // vertexNode = addHtmlLabel(svg, node).node();\n // vertexNode.parentNode.removeChild(vertexNode);\n // } else {\n // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n // const rows = vertexText.split(common.lineBreakRegex);\n\n // for (let j = 0; j < rows.length; j++) {\n // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n // tspan.setAttribute('dy', '1em');\n // tspan.setAttribute('x', '1');\n // tspan.textContent = rows[j];\n // svgLabel.appendChild(tspan);\n // }\n // vertexNode = svgLabel;\n // }\n\n let radious = 0;\n let _shape = '';\n // Set the shape based parameters\n switch (vertex.type) {\n case 'class':\n _shape = 'class_box';\n break;\n default:\n _shape = 'class_box';\n }\n // Add the node\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: sanitizeText(vertexText),\n classData: vertex,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n domId: vertex.domId,\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n\n log.info('setNode', {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: vertexText,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n });\n};\n\n/**\n * Add edges to graph based on parsed graph defninition\n *\n * @param relations\n * @param {object} g The graph object\n */\nexport const addRelations = function (relations, g) {\n let cnt = 0;\n\n let defaultStyle;\n let defaultLabelStyle;\n\n // if (typeof relations.defaultStyle !== 'undefined') {\n // const defaultStyles = getStylesFromArray(relations.defaultStyle);\n // defaultStyle = defaultStyles.style;\n // defaultLabelStyle = defaultStyles.labelStyle;\n // }\n\n relations.forEach(function (edge) {\n cnt++;\n const edgeData = {};\n //Set relationship style and line type\n edgeData.classes = 'relation';\n edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';\n\n edgeData.id = 'id' + cnt;\n // Set link type for rendering\n if (edge.type === 'arrow_open') {\n edgeData.arrowhead = 'none';\n } else {\n edgeData.arrowhead = 'normal';\n }\n\n log.info(edgeData, edge);\n //Set edge extra labels\n //edgeData.startLabelLeft = edge.relationTitle1;\n edgeData.startLabelRight = edge.relationTitle1 === 'none' ? '' : edge.relationTitle1;\n edgeData.endLabelLeft = edge.relationTitle2 === 'none' ? '' : edge.relationTitle2;\n //edgeData.endLabelRight = edge.relationTitle2;\n\n //Set relation arrow types\n edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);\n edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);\n let style = '';\n let labelStyle = '';\n\n if (typeof edge.style !== 'undefined') {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n style = 'fill:none';\n if (typeof defaultStyle !== 'undefined') {\n style = defaultStyle;\n }\n if (typeof defaultLabelStyle !== 'undefined') {\n labelStyle = defaultLabelStyle;\n }\n }\n\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n\n if (typeof edge.interpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (typeof relations.defaultInterpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(relations.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n\n edge.text = edge.title;\n if (typeof edge.text === 'undefined') {\n if (typeof edge.style !== 'undefined') {\n edgeData.arrowheadStyle = 'fill: #333';\n }\n } else {\n edgeData.arrowheadStyle = 'fill: #333';\n edgeData.labelpos = 'c';\n\n if (getConfig().flowchart.htmlLabels) {\n // eslint-disable-line\n edgeData.labelType = 'html';\n edgeData.label = '' + edge.text + '';\n } else {\n edgeData.labelType = 'text';\n edgeData.label = edge.text.replace(common.lineBreakRegex, '\\n');\n\n if (typeof edge.style === 'undefined') {\n edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';\n }\n\n edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');\n }\n }\n // Add the edge to the graph\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Merges the value of `conf` with the passed `cnf`\n *\n * @param {object} cnf Config to merge\n */\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n */\nexport const draw = function (text, id) {\n log.info('Drawing class - ', id);\n classDb.clear();\n // const parser = classDb.parser;\n // parser.yy = classDb;\n\n // Parse the graph definition\n // try {\n parser.parse(text);\n // } catch (err) {\n // log.debug('Parsing failed');\n // }\n\n // Fetch the default direction, use TD if none was found\n //let dir = 'TD';\n\n const conf = getConfig().flowchart;\n const securityLevel = getConfig().securityLevel;\n log.info('config:', conf);\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n\n // Create the input mermaid.graph\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: classDb.getDirection(),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n // let subG;\n // const subGraphs = flowDb.getSubGraphs();\n // log.info('Subgraphs - ', subGraphs);\n // for (let i = subGraphs.length - 1; i >= 0; i--) {\n // subG = subGraphs[i];\n // log.info('Subgraph - ', subG);\n // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);\n // }\n\n // Fetch the verices/nodes and edges/links from the parsed graph definition\n const classes = classDb.getClasses();\n const relations = classDb.getRelations();\n\n log.info(relations);\n // let i = 0;\n // for (i = subGraphs.length - 1; i >= 0; i--) {\n // subG = subGraphs[i];\n\n // selectAll('cluster').append('text');\n\n // for (let j = 0; j < subG.nodes.length; j++) {\n // g.setParent(subG.nodes[j], subG.id);\n // }\n // }\n addClasses(classes, g, id);\n addRelations(relations, g);\n\n // Add custom shapes\n // flowChartShapes.addToRenderV2(addShape);\n\n // Set up an SVG group so that we can translate the final graph.\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const svg = root.select(`[id=\"${id}\"]`);\n svg.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n // Run the renderer. This is what draws the final graph.\n const element = root.select('#' + id + ' g');\n render(element, g, ['aggregation', 'extension', 'composition', 'dependency'], 'classDiagram', id);\n\n // element.selectAll('g.node').attr('title', function() {\n // return flowDb.getTooltip(this.id);\n // });\n\n const padding = 8;\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n log.debug(\n `new ViewBox 0 0 ${width} ${height}`,\n `translate(${padding - g._label.marginx}, ${padding - g._label.marginy})`\n );\n\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n\n svg.attr('viewBox', `0 0 ${width} ${height}`);\n svg\n .select('g')\n .attr('transform', `translate(${padding - g._label.marginx}, ${padding - svgBounds.y})`);\n\n // Index nodes\n // flowDb.indexNodes('subGraph' + i);\n\n // Add label rects for non html labels\n if (!conf.htmlLabels) {\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (let k = 0; k < labels.length; k++) {\n const label = labels[k];\n\n // Get dimensions of label\n const dim = label.getBBox();\n\n const rect = doc.createElementNS('http://www.w3.org/2000/svg', 'rect');\n rect.setAttribute('rx', 0);\n rect.setAttribute('ry', 0);\n rect.setAttribute('width', dim.width);\n rect.setAttribute('height', dim.height);\n // rect.setAttribute('style', 'fill:#e8e8e8;');\n\n label.insertBefore(rect, label.firstChild);\n }\n }\n\n // If node has a link, wrap it in an anchor SVG object.\n // const keys = Object.keys(classes);\n // keys.forEach(function(key) {\n // const vertex = classes[key];\n\n // if (vertex.link) {\n // const node = select('#' + id + ' [id=\"' + key + '\"]');\n // if (node) {\n // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');\n\n // const linkNode = node.insert(function() {\n // return link;\n // }, ':first-child');\n\n // const shape = node.select('.label-container');\n // if (shape) {\n // linkNode.append(function() {\n // return shape.node();\n // });\n // }\n\n // const label = node.select('.label');\n // if (label) {\n // linkNode.append(function() {\n // return label.node();\n // });\n // }\n // }\n // }\n // });\n};\n\n/**\n * Gets the arrow marker for a type index\n *\n * @param {number} type The type to look for\n * @returns {'aggregation' | 'extension' | 'composition' | 'dependency'} The arrow marker\n */\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = 'aggregation';\n break;\n case 1:\n marker = 'extension';\n break;\n case 2:\n marker = 'composition';\n break;\n case 3:\n marker = 'dependency';\n break;\n default:\n marker = 'none';\n }\n return marker;\n}\n\nexport default {\n setConf,\n draw,\n};\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport classDb, { lookUpDomId } from './classDb';\nimport { parser } from './parser/classDiagram';\nimport svgDraw from './svgDraw';\nimport { configureSvgSize } from '../../utils';\nimport { getConfig } from '../../config';\n\nparser.yy = classDb;\n\nlet idCache = {};\nconst padding = 20;\n\nconst conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {SVGSVGElement} elem The SVG element to append to\n */\nconst insertMarkers = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n\n/**\n * Merges the value of `conf` with the passed `cnf`\n *\n * @param {object} cnf Config to merge\n */\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n */\nexport const draw = function (text, id) {\n idCache = {};\n parser.yy.clear();\n parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n const securityLevel = getConfig().securityLevel;\n // Handle root and ocument for when rendering in sanbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n\n // Fetch the default direction, use TD if none was found\n const diagram = root.select(`[id='${id}']`);\n diagram.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = classDb.getClasses();\n const keys = Object.keys(classes);\n\n for (let i = 0; i < keys.length; i++) {\n const classDef = classes[keys[i]];\n const node = svgDraw.drawClass(diagram, classDef, conf);\n idCache[node.id] = node;\n\n // Add nodes to the graph. The first argument is the node id. The second is\n // metadata about the node. In this case we're going to add labels to each of\n // our nodes.\n g.setNode(node.id, node);\n\n log.info('Org height: ' + node.height);\n }\n\n const relations = classDb.getRelations();\n relations.forEach(function (relation) {\n log.info(\n 'tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation: relation,\n },\n relation.title || 'DEFAULT'\n );\n });\n\n dagre.layout(g);\n g.nodes().forEach(function (v) {\n if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {\n log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));\n root\n .select('#' + lookUpDomId(v))\n .attr(\n 'transform',\n 'translate(' +\n (g.node(v).x - g.node(v).width / 2) +\n ',' +\n (g.node(v).y - g.node(v).height / 2) +\n ' )'\n );\n }\n });\n\n g.edges().forEach(function (e) {\n if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {\n log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);\n }\n });\n\n const svgBounds = diagram.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram.attr('viewBox', vBox);\n};\n\nexport default {\n setConf,\n draw,\n};\n","const getStyles = (options) =>\n `g.classGroup text {\n fill: ${options.nodeBorder};\n fill: ${options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n`;\n\nexport default getStyles;\n","import { line, curveBasis } from 'd3';\nimport { lookUpDomId, relationType } from './classDb';\nimport utils from '../../utils';\nimport { log } from '../../logger';\n\nlet edgeCount = 0;\nexport const drawEdge = function (elem, path, relation, conf) {\n const getRelationType = function (type) {\n switch (type) {\n case relationType.AGGREGATION:\n return 'aggregation';\n case relationType.EXTENSION:\n return 'extension';\n case relationType.COMPOSITION:\n return 'composition';\n case relationType.DEPENDENCY:\n return 'dependency';\n }\n };\n\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n\n // The data for our line\n const lineData = path.points;\n\n // This is the accessor function we talked about above\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curveBasis);\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', 'edge' + edgeCount)\n .attr('class', 'relation');\n let url = '';\n if (conf.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n\n if (relation.relation.lineType == 1) {\n svgPath.attr('class', 'relation dashed-line');\n }\n if (relation.relation.type1 !== 'none') {\n svgPath.attr(\n 'marker-start',\n 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')'\n );\n }\n if (relation.relation.type2 !== 'none') {\n svgPath.attr(\n 'marker-end',\n 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')'\n );\n }\n\n let x, y;\n const l = path.points.length;\n // Calculate Label position\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== 'none',\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== 'none',\n path.points,\n path.points[l - 1]\n );\n\n log.debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));\n log.debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));\n\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n\n if (typeof relation.title !== 'undefined') {\n const g = elem.append('g').attr('class', 'classLabel');\n const label = g\n .append('text')\n .attr('class', 'label')\n .attr('x', x)\n .attr('y', y)\n .attr('fill', 'red')\n .attr('text-anchor', 'middle')\n .text(relation.title);\n\n window.label = label;\n const bounds = label.node().getBBox();\n\n g.insert('rect', ':first-child')\n .attr('class', 'box')\n .attr('x', bounds.x - conf.padding / 2)\n .attr('y', bounds.y - conf.padding / 2)\n .attr('width', bounds.width + conf.padding)\n .attr('height', bounds.height + conf.padding);\n }\n\n log.info('Rendering relation ' + JSON.stringify(relation));\n if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type1')\n .attr('x', p1_card_x)\n .attr('y', p1_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle1);\n }\n if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type2')\n .attr('x', p2_card_x)\n .attr('y', p2_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle2);\n }\n\n edgeCount++;\n};\n\n/**\n * Renders a class diagram\n *\n * @param {SVGSVGElement} elem The element to draw it into\n * @param classDef\n * @param conf\n * @todo Add more information in the JSDOC here\n */\nexport const drawClass = function (elem, classDef, conf) {\n log.info('Rendering class ' + classDef);\n\n const id = classDef.id;\n const classInfo = {\n id: id,\n label: classDef.id,\n width: 0,\n height: 0,\n };\n\n // add class group\n const g = elem.append('g').attr('id', lookUpDomId(id)).attr('class', 'classGroup');\n\n // add title\n let title;\n if (classDef.link) {\n title = g\n .append('svg:a')\n .attr('xlink:href', classDef.link)\n .attr('target', classDef.linkTarget)\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n } else {\n title = g\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n }\n\n // add annotations\n let isFirst = true;\n classDef.annotations.forEach(function (member) {\n const titleText2 = title.append('tspan').text('«' + member + '»');\n if (!isFirst) titleText2.attr('dy', conf.textHeight);\n isFirst = false;\n });\n\n let classTitleString = classDef.id;\n\n if (classDef.type !== undefined && classDef.type !== '') {\n classTitleString += '<' + classDef.type + '>';\n }\n\n const classTitle = title.append('tspan').text(classTitleString).attr('class', 'title');\n\n // If class has annotations the title needs to have an offset of the text height\n if (!isFirst) classTitle.attr('dy', conf.textHeight);\n\n const titleHeight = title.node().getBBox().height;\n\n const membersLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);\n\n const members = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + conf.dividerMargin + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n classDef.members.forEach(function (member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n\n const membersBox = members.node().getBBox();\n\n const methodsLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n\n const methods = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n\n classDef.methods.forEach(function (method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n\n const classBox = g.node().getBBox();\n var cssClassStr = ' ';\n\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(' ');\n }\n\n const rect = g\n .insert('rect', ':first-child')\n .attr('x', 0)\n .attr('y', 0)\n .attr('width', classBox.width + 2 * conf.padding)\n .attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin)\n .attr('class', cssClassStr);\n\n const rectWidth = rect.node().getBBox().width;\n\n // Center title\n // We subtract the width of each text element from the class box width and divide it by 2\n title.node().childNodes.forEach(function (x) {\n x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);\n });\n\n if (classDef.tooltip) {\n title.insert('title').text(classDef.tooltip);\n }\n\n membersLine.attr('x2', rectWidth);\n methodsLine.attr('x2', rectWidth);\n\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n\n return classInfo;\n};\n\nexport const parseMember = function (text) {\n const fieldRegEx = /^(\\+|-|~|#)?(\\w+)(~\\w+~|\\[\\])?\\s+(\\w+) *(\\*|\\$)?$/;\n const methodRegEx = /^([+|\\-|~|#])?(\\w+) *\\( *(.*)\\) *(\\*|\\$)? *(\\w*[~|[\\]]*\\s*\\w*~?)$/;\n\n let fieldMatch = text.match(fieldRegEx);\n let methodMatch = text.match(methodRegEx);\n\n if (fieldMatch && !methodMatch) {\n return buildFieldDisplay(fieldMatch);\n } else if (methodMatch) {\n return buildMethodDisplay(methodMatch);\n } else {\n return buildLegacyDisplay(text);\n }\n};\n\nconst buildFieldDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let fieldType = parsedText[2] ? parsedText[2].trim() : '';\n let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let fieldName = parsedText[4] ? parsedText[4].trim() : '';\n let classifier = parsedText[5] ? parsedText[5].trim() : '';\n\n displayText = visibility + fieldType + genericType + ' ' + fieldName;\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildMethodDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let methodName = parsedText[2] ? parsedText[2].trim() : '';\n let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let classifier = parsedText[4] ? parsedText[4].trim() : '';\n let returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';\n\n displayText = visibility + methodName + '(' + parameters + ')' + returnType;\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildLegacyDisplay = function (text) {\n // if for some reason we dont have any match, use old format to parse text\n let displayText = '';\n let cssStyle = '';\n let memberText = '';\n let returnType = '';\n let methodStart = text.indexOf('(');\n let methodEnd = text.indexOf(')');\n\n if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {\n let visibility = '';\n let methodName = '';\n\n let firstChar = text.substring(0, 1);\n if (firstChar.match(/\\w/)) {\n methodName = text.substring(0, methodStart).trim();\n } else {\n if (firstChar.match(/\\+|-|~|#/)) {\n visibility = firstChar;\n }\n\n methodName = text.substring(1, methodStart).trim();\n }\n\n let parameters = text.substring(methodStart + 1, methodEnd);\n let classifier = text.substring(methodEnd + 1, 1);\n cssStyle = parseClassifier(classifier);\n\n displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';\n\n if (methodEnd < memberText.length) {\n returnType = text.substring(methodEnd + 2).trim();\n if (returnType !== '') {\n returnType = ' : ' + parseGenericTypes(returnType);\n }\n }\n } else {\n // finally - if all else fails, just send the text back as written (other than parsing for generic types)\n displayText = parseGenericTypes(text);\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\n/**\n * Adds a for a member in a diagram\n *\n * @param {SVGElement} textEl The element to append to\n * @param {string} txt The member\n * @param {boolean} isFirst\n * @param {{ padding: string; textHeight: string }} conf The configuration for the member\n */\nconst addTspan = function (textEl, txt, isFirst, conf) {\n let member = parseMember(txt);\n\n const tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);\n\n if (member.cssStyle !== '') {\n tSpan.attr('style', member.cssStyle);\n }\n\n if (!isFirst) {\n tSpan.attr('dy', conf.textHeight);\n }\n};\n\n/**\n * Makes generics in typescript syntax\n *\n * @example Array of array of strings in typescript syntax\n * // returns \"Array>\"\n * parseGenericTypes('Array~Array~string~~');\n *\n * @param {string} text The text to convert\n * @returns {string} The converted string\n */\nconst parseGenericTypes = function (text) {\n let cleanedText = text;\n\n if (text.indexOf('~') != -1) {\n cleanedText = cleanedText.replace('~', '<');\n cleanedText = cleanedText.replace('~', '>');\n\n return parseGenericTypes(cleanedText);\n } else {\n return cleanedText;\n }\n};\n\n/**\n * Gives the styles for a classifier\n *\n * @param {'+' | '-' | '#' | '~' | '*' | '$'} classifier The classifier string\n * @returns {string} Styling for the classifier\n */\nconst parseClassifier = function (classifier) {\n switch (classifier) {\n case '*':\n return 'font-style:italic;';\n case '$':\n return 'text-decoration:underline;';\n default:\n return '';\n }\n};\n\nexport default {\n drawClass,\n drawEdge,\n parseMember,\n};\n","import DOMPurify from 'dompurify';\n\n/**\n * Gets the number of lines in a string\n *\n * @param {string | undefined} s The string to check the lines for\n * @returns {number} The number of lines in that string\n */\nexport const getRows = (s) => {\n if (!s) return 1;\n let str = breakToPlaceholder(s);\n str = str.replace(/\\\\n/g, '#br#');\n return str.split('#br#');\n};\n\nexport const removeEscapes = (text) => {\n let newStr = text.replace(/\\\\u[\\dA-F]{4}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16));\n });\n\n newStr = newStr.replace(/\\\\x([0-9a-f]{2})/gi, (_, c) => String.fromCharCode(parseInt(c, 16)));\n newStr = newStr.replace(/\\\\[\\d\\d\\d]{3}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\/g, ''), 8));\n });\n newStr = newStr.replace(/\\\\[\\d\\d\\d]{2}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\/g, ''), 8));\n });\n\n return newStr;\n};\n\n/**\n * Removes script tags from a text\n *\n * @param {string} txt The text to sanitize\n * @returns {string} The safer text\n */\nexport const removeScript = (txt) => {\n var rs = '';\n var idx = 0;\n\n while (idx >= 0) {\n idx = txt.indexOf('= 0) {\n rs += txt.substr(0, idx);\n txt = txt.substr(idx + 1);\n\n idx = txt.indexOf('');\n if (idx >= 0) {\n idx += 9;\n txt = txt.substr(idx);\n }\n } else {\n rs += txt;\n idx = -1;\n break;\n }\n }\n let decodedText = removeEscapes(rs);\n decodedText = decodedText.replace(/script>/gi, '#');\n decodedText = decodedText.replace(/javascript:/gi, '#');\n decodedText = decodedText.replace(/onerror=/gi, 'onerror:');\n decodedText = decodedText.replace(/`;\n }\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n case 'classDiagram':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n log.debug('CB = undefined!');\n }\n attachFunctions();\n\n const tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id;\n const node = select(tmpElementSelector).node();\n if (node !== null && typeof node.remove === 'function') {\n select(tmpElementSelector).node().remove();\n }\n\n return svgCode;\n};\n\nlet currentDirective = {};\n\nconst parseDirective = function (p, statement, context, type) {\n try {\n if (statement !== undefined) {\n statement = statement.trim();\n switch (context) {\n case 'open_directive':\n currentDirective = {};\n break;\n case 'type_directive':\n currentDirective.type = statement.toLowerCase();\n break;\n case 'arg_directive':\n currentDirective.args = JSON.parse(statement);\n break;\n case 'close_directive':\n handleDirective(p, currentDirective, type);\n currentDirective = null;\n break;\n }\n }\n } catch (error) {\n log.error(\n `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`\n );\n log.error(error.message);\n }\n};\n\nconst handleDirective = function (p, directive, type) {\n log.debug(`Directive type=${directive.type} with args:`, directive.args);\n switch (directive.type) {\n case 'init':\n case 'initialize': {\n ['config'].forEach((prop) => {\n if (typeof directive.args[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n directive.args[type] = directive.args[prop];\n delete directive.args[prop];\n }\n });\n log.debug('sanitize in handleDirective', directive.args);\n directiveSanitizer(directive.args);\n log.debug('sanitize in handleDirective (done)', directive.args);\n reinitialize(directive.args);\n configApi.addDirective(directive.args);\n break;\n }\n case 'wrap':\n case 'nowrap':\n if (p && p['setWrap']) {\n p.setWrap(directive.type === 'wrap');\n }\n break;\n case 'themeCss':\n log.warn('themeCss encountered');\n break;\n default:\n log.warn(\n `Unhandled directive: source: '%%{${directive.type}: ${JSON.stringify(\n directive.args ? directive.args : {}\n )}}%%`,\n directive\n );\n break;\n }\n};\n\n/** @param {any} conf */\nfunction updateRendererConfigs(conf) {\n // Todo remove, all diagrams should get config on demoand from the config object, no need for this\n gitGraphRenderer.setConf(conf.git);\n flowRenderer.setConf(conf.flowchart);\n flowRendererV2.setConf(conf.flowchart);\n if (typeof conf['sequenceDiagram'] !== 'undefined') {\n sequenceRenderer.setConf(assignWithDepth(conf.sequence, conf['sequenceDiagram']));\n }\n sequenceRenderer.setConf(conf.sequence);\n ganttRenderer.setConf(conf.gantt);\n classRenderer.setConf(conf.class);\n stateRenderer.setConf(conf.state);\n stateRendererV2.setConf(conf.state);\n infoRenderer.setConf(conf.class);\n // pieRenderer.setConf(conf.class);\n erRenderer.setConf(conf.er);\n journeyRenderer.setConf(conf.journey);\n requirementRenderer.setConf(conf.requirement);\n errorRenderer.setConf(conf.class);\n}\n\n/** To be removed */\nfunction reinitialize() {\n // `mermaidAPI.reinitialize: v${pkg.version}`,\n // JSON.stringify(options),\n // options.themeVariables.primaryColor;\n // // if (options.theme && theme[options.theme]) {\n // // options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);\n // // }\n // // Set default options\n // const config =\n // typeof options === 'object' ? configApi.setConfig(options) : configApi.getSiteConfig();\n // updateRendererConfigs(config);\n // setLogLevel(config.logLevel);\n // log.debug('mermaidAPI.reinitialize: ', config);\n}\n\n/** @param {any} options */\nfunction initialize(options) {\n // console.warn(`mermaidAPI.initialize: v${pkg.version} `, options);\n\n // Handle legacy location of font-family configuration\n if (options && options.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = { fontFamily: options.fontFamily };\n } else {\n if (!options.themeVariables.fontFamily) {\n options.themeVariables = { fontFamily: options.fontFamily };\n }\n }\n }\n // Set default options\n configApi.saveConfigFromInitilize(options);\n\n if (options && options.theme && theme[options.theme]) {\n // Todo merge with user options\n options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);\n } else {\n if (options) options.themeVariables = theme.default.getThemeVariables(options.themeVariables);\n }\n\n const config =\n typeof options === 'object' ? configApi.setSiteConfig(options) : configApi.getSiteConfig();\n\n updateRendererConfigs(config);\n setLogLevel(config.logLevel);\n // log.debug('mermaidAPI.initialize: ', config);\n}\n\nconst mermaidAPI = Object.freeze({\n render,\n parse,\n parseDirective,\n initialize,\n reinitialize,\n getConfig: configApi.getConfig,\n setConfig: configApi.setConfig,\n getSiteConfig: configApi.getSiteConfig,\n updateSiteConfig: configApi.updateSiteConfig,\n reset: () => {\n // console.warn('reset');\n configApi.reset();\n // const siteConfig = configApi.getSiteConfig();\n // updateRendererConfigs(siteConfig);\n },\n globalReset: () => {\n configApi.reset(configApi.defaultConfig);\n updateRendererConfigs(configApi.getConfig());\n },\n defaultConfig: configApi.defaultConfig,\n});\n\nsetLogLevel(configApi.getConfig().logLevel);\nconfigApi.reset(configApi.getConfig());\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *\n * ```html\n * \n * ```\n */\n","import classDiagram from './diagrams/class/styles';\nimport er from './diagrams/er/styles';\nimport flowchart from './diagrams/flowchart/styles';\nimport gantt from './diagrams/gantt/styles';\nimport git from './diagrams/git/styles';\nimport info from './diagrams/info/styles';\nimport pie from './diagrams/pie/styles';\nimport requirement from './diagrams/requirement/styles';\nimport sequence from './diagrams/sequence/styles';\nimport stateDiagram from './diagrams/state/styles';\nimport journey from './diagrams/user-journey/styles';\n\nconst themes = {\n flowchart,\n 'flowchart-v2': flowchart,\n sequence,\n gantt,\n classDiagram,\n 'classDiagram-v2': classDiagram,\n class: classDiagram,\n stateDiagram,\n state: stateDiagram,\n git,\n info,\n pie,\n er,\n journey,\n requirement,\n};\n\nexport const calcThemeVariables = (theme, userOverRides) => theme.calcColors(userOverRides);\n\nconst getStyles = (type, userStyles, options) => {\n //console.warn('options in styles: ', options);\n return ` {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ${options.errorBkgColor};\n }\n .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n .marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${themes[type](options)}\n\n ${userStyles}\n`;\n};\n\nexport default getStyles;\n","import { getThemeVariables as baseThemeVariables } from './theme-base';\nimport { getThemeVariables as darkThemeVariables } from './theme-dark';\nimport { getThemeVariables as defaultThemeVariables } from './theme-default';\nimport { getThemeVariables as forestThemeVariables } from './theme-forest';\nimport { getThemeVariables as neutralThemeVariables } from './theme-neutral';\n\nexport default {\n base: {\n getThemeVariables: baseThemeVariables,\n },\n dark: {\n getThemeVariables: darkThemeVariables,\n },\n default: {\n getThemeVariables: defaultThemeVariables,\n },\n forest: {\n getThemeVariables: forestThemeVariables,\n },\n neutral: {\n getThemeVariables: neutralThemeVariables,\n },\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /** # Base variables */\n /**\n * - Background - used to know what the background color is of the diagram. This is used for\n * deducing colors for istance line color. Defaulr value is #f4f4f4.\n */\n this.background = '#f4f4f4';\n this.darkMode = false;\n\n // this.background = '#0c0c0c';\n // this.darkMode = true;\n this.primaryColor = '#fff4dd';\n // this.background = '#0c0c0c';\n // this.primaryColor = '#1f1f00';\n\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = '#333';\n\n // dark\n\n // this.primaryColor = '#034694';\n // this.primaryColor = '#f2ee7e';\n // this.primaryColor = '#9f33be';\n // this.primaryColor = '#f0fff0';\n // this.primaryColor = '#fa255e';\n // this.primaryColor = '#ECECFF';\n\n // this.secondaryColor = '#c39ea0';\n // this.tertiaryColor = '#f8e5e5';\n\n // this.secondaryColor = '#dfdfde';\n // this.tertiaryColor = '#CCCCFF';\n\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n // this.updateColors();\n }\n updateColors() {\n // The || is to make sure that if the variable has been defiend by a user override that value is to be used\n\n /* Main */\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#ddd' : '#333'); // invert(this.primaryColor);\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor =\n this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor =\n this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || '#fff5ad';\n this.noteTextColor = this.noteTextColor || '#333';\n\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n\n /* Flowchart variables */\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground =\n this.edgeLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || 'grey';\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || 'white';\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || '#eeeeee';\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || 'lightgrey';\n this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';\n this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';\n this.critBorderColor = this.critBorderColor || '#ff8888';\n this.critBkgColor = this.critBkgColor || 'red';\n this.todayLineColor = this.todayLineColor || 'red';\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || '#003163';\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n /* The color of the text tables of the tstates*/\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n\n /* class */\n this.classText = this.classText || this.textColor;\n\n /* user-journey */\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground =\n this.relationLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, darken, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n this.background = '#333';\n this.primaryColor = '#1f2020';\n this.secondaryColor = lighten(this.primaryColor, 16);\n\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.mainBkg = '#1f2020';\n this.secondBkg = 'calculated';\n this.mainContrastColor = 'lightgrey';\n this.darkTextColor = lighten(invert('#323D47'), 10);\n this.lineColor = 'calculated';\n this.border1 = '#81B1DB';\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = 'calculated';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n this.labelBackground = '#181818';\n this.textColor = '#ccc';\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#F9FFFE';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = 'calculated';\n this.activationBkgColor = 'calculated';\n this.sequenceNumberColor = 'black';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = darken('#EAE8D9', 30);\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = '#EAE8D9';\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = 'calculated';\n this.taskTextColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = '#81B1DB';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#E83737';\n this.critBkgColor = '#E83737';\n this.taskTextDarkColor = 'calculated';\n this.todayLineColor = '#DB5757';\n\n /* state colors */\n this.labelColor = 'calculated';\n\n this.errorBkgColor = '#a44141';\n this.errorTextColor = '#ddd';\n }\n updateColors() {\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n\n /* Sequence Diagram variables */\n\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n\n /* Gantt chart variables */\n\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#555';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = '#f4f4f4'; // this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || '#0b0000';\n this.pie2 = this.pie2 || '#4d1037';\n this.pie3 = this.pie3 || '#3f5258';\n this.pie4 = this.pie4 || '#4f2f1b';\n this.pie5 = this.pie5 || '#6e0a0a';\n this.pie6 = this.pie6 || '#3b0048';\n this.pie7 = this.pie7 || '#995a01';\n this.pie8 = this.pie8 || '#154706';\n this.pie9 = this.pie9 || '#161722';\n this.pie10 = this.pie10 || '#00296f';\n this.pie11 = this.pie11 || '#01629c';\n this.pie12 = this.pie12 || '#010029';\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* class */\n this.classText = this.primaryTextColor;\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground =\n this.relationLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\nclass Theme {\n constructor() {\n /* Base variables */\n this.background = '#f4f4f4';\n this.primaryColor = '#ECECFF';\n\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = '#ffffde';\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.background = 'white';\n this.mainBkg = '#ECECFF';\n this.secondBkg = '#ffffde';\n this.lineColor = '#333333';\n this.border1 = '#9370DB';\n this.border2 = '#aaaa33';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n this.labelBackground = '#e8e8e8';\n this.textColor = '#333';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = 'calculated';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = 'calculated';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#fff400';\n this.taskBorderColor = '#534fbc';\n this.taskBkgColor = '#8a90dd';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = '#534fbc';\n this.activeTaskBkgColor = '#bfc7ff';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* state colors */\n this.labelColor = 'black';\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n this.updateColors();\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1; // border 1\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f0f0f0';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -20 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -40 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /* Base vales */\n this.background = '#f4f4f4';\n this.primaryColor = '#cde498';\n this.secondaryColor = '#cdffb2';\n this.background = 'white';\n this.mainBkg = '#cde498';\n this.secondBkg = '#cdffb2';\n this.lineColor = 'green';\n this.border1 = '#13540c';\n this.border2 = '#6eaa49';\n this.arrowheadColor = 'green';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n\n this.tertiaryColor = lighten('#cde498', 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n /* Flowchart variables */\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#333';\n this.edgeLabelBackground = '#e8e8e8';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = '#333';\n this.signalTextColor = '#333';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = '#326932';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = '#6eaa49';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#6eaa49';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = '#487e3a';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f0f0f0';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: +40, l: -40 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -50 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { adjust } from 'khroma';\r\n\r\nexport const mkBorder = (col, darkMode) =>\r\n darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\r\n","import { invert, darken, lighten, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\n// const Color = require ( 'khroma/dist/color' ).default\n// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => \"#EAF2FB\"\n\nclass Theme {\n constructor() {\n this.primaryColor = '#eee';\n this.contrast = '#707070';\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = '#ffffff';\n\n // this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n // this.altBackground = lighten(this.contrast, 55);\n this.mainBkg = '#eee';\n this.secondBkg = 'calculated';\n this.lineColor = '#666';\n this.border1 = '#999';\n this.border2 = 'calculated';\n this.note = '#ffa';\n this.text = '#333';\n this.critical = '#d42';\n this.done = '#bbb';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'white';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = 'calculated';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = 'calculated';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = '#999';\n this.noteBkgColor = '#666';\n this.noteTextColor = '#fff';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n\n this.taskBorderColor = darken(this.contrast, 10);\n\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n\n this.todayLineColor = this.critBkgColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || '#000';\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f4f4f4';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || '#000';\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = '#222';\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n // /* pie */\n this.pie1 = this.pie1 || '#F4F4F4';\n this.pie2 = this.pie2 || '#555';\n this.pie3 = this.pie3 || '#BBB';\n this.pie4 = this.pie4 || '#777';\n this.pie5 = this.pie5 || '#999';\n this.pie6 = this.pie6 || '#DDD';\n this.pie7 = this.pie7 || '#FFF';\n this.pie8 = this.pie8 || '#DDD';\n this.pie9 = this.pie9 || '#BBB';\n this.pie10 = this.pie10 || '#999';\n this.pie11 = this.pie11 || '#777';\n this.pie12 = this.pie12 || '#555';\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n // this.pie1 = this.pie1 || '#212529';\n // this.pie2 = this.pie2 || '#343A40';\n // this.pie3 = this.pie3 || '#495057';\n // this.pie4 = this.pie4 || '#6C757D';\n // this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n // this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n // this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n // this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n // this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n // this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });\n // this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n // this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { sanitizeUrl } from '@braintree/sanitize-url';\nimport {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select,\n} from 'd3';\nimport common from './diagrams/common/common';\nimport { configKeys } from './defaultConfig';\nimport { log } from './logger';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore,\n};\nconst directive =\n /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen =\n /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit Detects the init config object from the text\n *\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * Or\n *\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {any} cnf\n * @returns {object} The json object representing the init passed to mermaid.initialize()\n */\nexport const detectInit = function (text, cnf) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n\n if (Array.isArray(inits)) {\n let args = inits.map((init) => init.args);\n directiveSanitizer(args);\n\n results = assignWithDepth(results, [...args]);\n } else {\n results = inits.args;\n }\n if (results) {\n let type = detectType(text, cnf);\n ['config'].forEach((prop) => {\n if (typeof results[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n results[type] = results[prop];\n delete results[prop];\n }\n });\n }\n\n // Todo: refactor this, these results are never used\n return results;\n};\n\n/**\n * @function detectDirective Detects the directive from the text. Text can be single line or\n * multiline. If type is null or omitted the first directive encountered in text will be returned\n *\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {string | RegExp} type The directive to return (default: null)\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args:\n * object|null } matched by the input type if a single directive was found, that directive object\n * will be returned.\n */\nexport const detectDirective = function (text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '\"');\n log.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log.error(\n `ERROR: ${error.message} - Unable to parse directive\n ${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * @function detectType Detects the type of the graph text. Takes into consideration the possible\n * existence of an %%init directive\n *\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {{\n * class: { defaultRenderer: string } | undefined;\n * state: { defaultRenderer: string } | undefined;\n * flowchart: { defaultRenderer: string } | undefined;\n * }} [cnf]\n * @returns {string} A graph definition key\n */\nexport const detectType = function (text, cnf) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n if (text.match(/^\\s*classDiagram-v2/)) {\n return 'classDiagram';\n }\n if (text.match(/^\\s*classDiagram/)) {\n if (cnf && cnf.class && cnf.class.defaultRenderer === 'dagre-wrapper') return 'classDiagram';\n return 'class';\n }\n\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n if (cnf && cnf.class && cnf.state.defaultRenderer === 'dagre-wrapper') return 'stateDiagram';\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n if (text.match(/^\\s*requirement/) || text.match(/^\\s*requirementDiagram/)) {\n return 'requirement';\n }\n if (cnf && cnf.flowchart && cnf.flowchart.defaultRenderer === 'dagre-wrapper')\n return 'flowchart-v2';\n\n return 'flowchart';\n};\n\n/**\n * Caches results of functions based on input\n *\n * @param {Function} fn Function to run\n * @param {Function} resolver Function that resolves to an ID given arguments the `fn` takes\n * @returns {Function} An optimized caching function\n */\nconst memoize = (fn, resolver) => {\n let cache = {};\n return (...args) => {\n let n = resolver ? resolver.apply(this, args) : args[0];\n if (n in cache) {\n return cache[n];\n } else {\n let result = fn(...args);\n cache[n] = result;\n return result;\n }\n };\n};\n\n/**\n * @function isSubstringInArray Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {Array} arr The array to search\n * @returns {number} The array index containing the substring or -1 if not present\n */\nexport const isSubstringInArray = function (str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\n/**\n * Returns a d3 curve given a curve name\n *\n * @param {string | undefined} interpolate The interpolation name\n * @param {any} defaultCurve The default curve to return\n * @returns {import('d3-shape').CurveFactory} The curve factory to use\n */\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\n/**\n * Formats a URL string\n *\n * @param {string} linkStr String of the URL\n * @param {{ securityLevel: string }} config Configuration passed to MermaidJS\n * @returns {string | undefined} The formatted URL\n */\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\n/**\n * Runs a function\n *\n * @param {string} functionName A dot seperated path to the function relative to the `window`\n * @param {...any} params Parameters to pass to the function\n */\nexport const runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split('.');\n\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) return;\n }\n\n obj[fnName](...params);\n};\n\n/**\n * @typedef {object} Point A (x, y) point\n * @property {number} x The x value\n * @property {number} y The y value\n */\n\n/**\n * Finds the distance between two points using the Distance Formula\n *\n * @param {Point} p1 The first point\n * @param {Point} p2 The second point\n * @returns {number} The distance\n */\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\n/**\n * @param {Point[]} points List of points\n * @returns {Point}\n * @todo Give this a description\n */\nconst traverseEdge = (points) => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n let remainingDistance = totalDistance / 2;\n let center = undefined;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\n/**\n * Alias for `traverseEdge`\n *\n * @param {Point[]} points List of points\n * @returns {Point} Return result of `transverseEdge`\n */\nconst calcLabelPosition = (points) => {\n return traverseEdge(points);\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n log.info('our points', points);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\n/**\n * Position ['start_left', 'start_right', 'end_left', 'end_right']\n *\n * @param {any} terminalMarkerSize\n * @param {any} position\n * @param {any} _points\n * @returns {any}\n */\nconst calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => {\n // Todo looking to faster cloning method\n let points = JSON.parse(JSON.stringify(_points));\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n log.info('our points', points);\n if (position !== 'start_left' && position !== 'start_right') {\n points = points.reverse();\n }\n\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = 10 + terminalMarkerSize * 0.5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n\n let cardinalityPosition = { x: 0, y: 0 };\n\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n if (position === 'start_left') {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n }\n if (position === 'end_right') {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n }\n if (position === 'end_left') {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n }\n return cardinalityPosition;\n};\n\n/**\n * Gets styles from an array of declarations\n *\n * @param {string[]} arr Declarations\n * @returns {{ style: string; labelStyle: string }} The styles grouped as strings\n */\nexport const getStylesFromArray = (arr) => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return 'id-' + Math.random().toString(36).substr(2, 12) + '-' + cnt;\n};\n\n/**\n * @param {any} length\n * @returns {any}\n */\nfunction makeid(length) {\n var result = '';\n var characters = '0123456789abcdef';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\nexport const random = (options) => {\n return makeid(options.length);\n};\n\n/**\n * @function assignWithDepth Extends the functionality of {@link ObjectConstructor.assign} with the\n * ability to merge arbitrary-depth objects For each key in src with path `k` (recursively)\n * performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of\n * undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to {} and\n * effectively merged with src[`k`]

Additionally, dissimilar types will not clobber unless the\n * config.clobber parameter === true. Example:\n *\n * ```js\n * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };\n * let config_1 = { foo: 'foo', bar: 'bar' };\n * let result = assignWithDepth(config_0, config_1);\n * console.log(result);\n * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }\n * ```\n *\n * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a\n * destructured array of objects and dst is not an array, assignWithDepth will apply each element\n * of src to dst in order.\n * @param dst\n * @param src\n * @param config\n * @param dst\n * @param src\n * @param config\n * @param dst\n * @param src\n * @param config\n * @param {any} dst - The destination of the merge\n * @param {any} src - The source object(s) to merge into destination\n * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth\n * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default:\n * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }`\n * @returns {any}\n */\nexport const assignWithDepth = function (dst, src, config) {\n const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config);\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (dst.indexOf(s) === -1) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (typeof dst === 'undefined' || depth <= 0) {\n if (dst !== undefined && dst !== null && typeof dst === 'object' && typeof src === 'object') {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (typeof src !== 'undefined' && typeof dst === 'object' && typeof src === 'object') {\n Object.keys(src).forEach((key) => {\n if (\n typeof src[key] === 'object' &&\n (dst[key] === undefined || typeof dst[key] === 'object')\n ) {\n if (dst[key] === undefined) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || (typeof dst[key] !== 'object' && typeof src[key] !== 'object')) {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\n\nexport const getTextObj = function () {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: 'start',\n style: '#666',\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: undefined,\n };\n};\n\n/**\n * Adds text to an element\n *\n * @param {SVGElement} elem Element to add text to\n * @param {{\n * text: string;\n * x: number;\n * y: number;\n * anchor: 'start' | 'middle' | 'end';\n * fontFamily: string;\n * fontSize: string | number;\n * fontWeight: string | number;\n * fill: string;\n * class: string | undefined;\n * textMargin: number;\n * }} textData\n * @returns {SVGTextElement} Text element with given styling and content\n */\nexport const drawSimpleText = function (elem, textData) {\n // Remove and ignore br:s\n const nText = textData.text.replace(common.lineBreakRegex, ' ');\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', textData.y);\n textElem.style('text-anchor', textData.anchor);\n textElem.style('font-family', textData.fontFamily);\n textElem.style('font-size', textData.fontSize);\n textElem.style('font-weight', textData.fontWeight);\n textElem.attr('fill', textData.fill);\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n\n const span = textElem.append('tspan');\n span.attr('x', textData.x + textData.textMargin * 2);\n span.attr('fill', textData.fill);\n span.text(nText);\n\n return textElem;\n};\n\nexport const wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
' },\n config\n );\n if (common.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(' ');\n const completedLines = [];\n let nextLine = '';\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(' ');\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== '').join(config.joinWith);\n },\n (label, maxWidth, config) =>\n `${label}-${maxWidth}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}-${config.joinWith}`\n);\n\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = '-', config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 },\n config\n );\n const characters = word.split('');\n const lines = [];\n let currentLine = '';\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = '';\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = '-', config) =>\n `${word}-${maxWidth}-${hyphenCharacter}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * This calculates the text's height, taking into account the wrap breaks and both the statically\n * configured height, width, and the length of the text (in pixels).\n *\n * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.\n *\n * @param {any} text The text to measure\n * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n * @returns {any} - The height for the given text\n */\nexport const calculateTextHeight = function (text, config) {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 15 },\n config\n );\n return calculateTextDimensions(text, config).height;\n};\n\n/**\n * This calculates the width of the given text, font size and family.\n *\n * @param {any} text - The text to calculate the width of\n * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n * @returns {any} - The width for the given text\n */\nexport const calculateTextWidth = function (text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n return calculateTextDimensions(text, config).width;\n};\n\n/**\n * This calculates the dimensions of the given text, font size, font family, font weight, and margins.\n *\n * @param {any} text - The text to calculate the width of\n * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting\n * the resulting size\n * @returns - The width for the given text\n */\nexport const calculateTextDimensions = memoize(\n function (text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n const { fontSize, fontFamily, fontWeight } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n\n // We can't really know if the user supplied font family will render on the user agent;\n // thus, we'll take the max width between the user supplied font family, and a default\n // of sans-serif.\n const fontFamilies = ['sans-serif', fontFamily];\n const lines = text.split(common.lineBreakRegex);\n let dims = [];\n\n const body = select('body');\n // We don't want to leak DOM elements - if a removal operation isn't available\n // for any reason, do not continue.\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n\n const g = body.append('svg');\n\n for (let fontFamily of fontFamilies) {\n let cheight = 0;\n let dim = { width: 0, height: 0, lineHeight: 0 };\n for (let line of lines) {\n const textObj = getTextObj();\n textObj.text = line;\n const textElem = drawSimpleText(g, textObj)\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n\n let bBox = (textElem._groups || textElem)[0][0].getBBox();\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cheight = Math.round(bBox.height);\n dim.height += cheight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));\n }\n dims.push(dim);\n }\n\n g.remove();\n\n let index =\n isNaN(dims[1].height) ||\n isNaN(dims[1].width) ||\n isNaN(dims[1].lineHeight) ||\n (dims[0].height > dims[1].height &&\n dims[0].width > dims[1].width &&\n dims[0].lineHeight > dims[1].lineHeight)\n ? 0\n : 1;\n return dims[index];\n },\n (text, config) => `${text}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * Applys d3 attributes\n *\n * @param {any} d3Elem D3 Element to apply the attributes onto\n * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes\n */\nconst d3Attrs = function (d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n};\n\n/**\n * Gives attributes for an SVG's size given arguments\n *\n * @param {number} height The height of the SVG\n * @param {number} width The width of the SVG\n * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%\n * @returns {Map<'height' | 'width' | 'style', string>} Attributes for the SVG\n */\nexport const calculateSvgSizeAttrs = function (height, width, useMaxWidth) {\n let attrs = new Map();\n attrs.set('height', height);\n if (useMaxWidth) {\n attrs.set('width', '100%');\n attrs.set('style', `max-width: ${width}px;`);\n } else {\n attrs.set('width', width);\n }\n return attrs;\n};\n\n/**\n * Applies attributes from `calculateSvgSizeAttrs`\n *\n * @param {SVGSVGElement} svgElem The SVG Element to configure\n * @param {number} height The height of the SVG\n * @param {number} width The width of the SVG\n * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%\n */\nexport const configureSvgSize = function (svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n};\n\nexport const initIdGeneratior = class iterator {\n constructor(deterministic, seed) {\n this.deterministic = deterministic;\n this.seed = seed;\n\n this.count = seed ? seed.length : 0;\n }\n\n next() {\n if (!this.deterministic) return Date.now();\n\n return this.count++;\n }\n};\n\nlet decoder;\n\n/**\n * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}\n *\n * @param {string} html HTML as a string\n * @returns Unescaped HTML\n */\nexport const entityDecode = function (html) {\n decoder = decoder || document.createElement('div');\n // Escape HTML before decoding for HTML Entities\n html = escape(html).replace(/%26/g, '&').replace(/%23/g, '#').replace(/%3B/g, ';');\n // decoding\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n};\n\n/**\n * Sanitizes directive objects\n *\n * @param {object} args Directive's JSON\n */\nexport const directiveSanitizer = (args) => {\n log.debug('directiveSanitizer called with', args);\n if (typeof args === 'object') {\n // check for array\n if (args.length) {\n args.forEach((arg) => directiveSanitizer(arg));\n } else {\n // This is an object\n Object.keys(args).forEach((key) => {\n log.debug('Checking key', key);\n if (key.indexOf('__') === 0) {\n log.debug('sanitize deleting __ option', key);\n delete args[key];\n }\n\n if (key.indexOf('proto') >= 0) {\n log.debug('sanitize deleting proto option', key);\n delete args[key];\n }\n\n if (key.indexOf('constr') >= 0) {\n log.debug('sanitize deleting constr option', key);\n delete args[key];\n }\n\n if (key.indexOf('themeCSS') >= 0) {\n log.debug('sanitizing themeCss option');\n args[key] = sanitizeCss(args[key]);\n }\n if (configKeys.indexOf(key) < 0) {\n log.debug('sanitize deleting option', key);\n delete args[key];\n } else {\n if (typeof args[key] === 'object') {\n log.debug('sanitize deleting object', key);\n directiveSanitizer(args[key]);\n }\n }\n });\n }\n }\n};\nexport const sanitizeCss = (str) => {\n const stringsearch = 'o';\n const startCnt = (str.match(/\\{/g) || []).length;\n const endCnt = (str.match(/\\}/g) || []).length;\n if (startCnt !== endCnt) {\n return '{ /* ERROR: Unbalanced CSS */ }';\n }\n // Todo add more checks here\n return str;\n};\n\nexport default {\n assignWithDepth,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n calculateSvgSizeAttrs,\n configureSvgSize,\n detectInit,\n detectDirective,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n memoize,\n runFunc,\n entityDecode,\n initIdGeneratior,\n directiveSanitizer,\n sanitizeCss,\n};\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","module.exports = require(\"@braintree/sanitize-url\");","module.exports = require(\"d3\");","module.exports = require(\"dagre\");","module.exports = require(\"dagre-d3\");","module.exports = require(\"dagre-d3/lib/label/add-html-label.js\");","module.exports = require(\"dompurify\");","module.exports = require(\"graphlib\");","module.exports = require(\"khroma\");","module.exports = require(\"moment-mini\");","module.exports = require(\"stylis\");","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n",""],"names":["assignWithDepth","log","theme","config","defaultConfig","Object","freeze","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","sumOfDirectives","i","length","d","sanitize","tmpConfigFromInitialize","themeVariables","getThemeVariables","setSiteConfig","conf","saveConfigFromInitilize","updateSiteConfig","getSiteConfig","setConfig","getConfig","options","keys","secure","forEach","key","debug","indexOf","addDirective","directive","fontFamily","push","reset","intersectRect","createLabel","select","evaluate","rect","parent","node","trace","id","shapeSvg","insert","attr","class","label","text","appendChild","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","getBoundingClientRect","width","height","padding","halfPadding","diff","JSON","stringify","style","rx","ry","x","y","rectBox","intersect","point","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","clear","positionCluster","info","el","sanitizeText","sanitizeTxt","txt","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","_vertexText","isTitle","vertexText","replace","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","j","tspan","setAttributeNS","textContent","trim","line","curveBasis","utils","edgeLabels","terminalLabels","insertEdgeLabel","edge","labelElement","edgeLabel","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","value","positionEdgeLabel","paths","path","updatedPath","originalPath","pos","calcLabelPosition","calcTerminalLabelPosition","arrowTypeStart","arrowTypeEnd","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","warn","r","Q","R","q","res","_x","_y","cutPathAtIntersect","_points","boundryNode","points","lastPointOutside","isInside","inter","pointPresent","p","find","e","insertEdge","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","slice","unshift","toCluster","fromCluster","reverse","lineData","filter","Number","isNaN","curve","lineFunction","strokeClasses","thickness","pattern","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","dagre","graphlib","insertMarkers","updateNodeBounds","clearGraphlib","adjustClustersAndEdges","findNonClusterChild","sortNodesByHierarchy","insertNode","positionNode","clearNodes","setNodeElem","clearClusters","clearEdges","recursiveRender","_elem","diagramtype","parentCluster","json","write","dir","rankdir","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","o","newEl","name","layout","n","type","render","markers","circle","ellipse","polygon","intersectEllipse","intersectCircle","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","removeEdge","extractor","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","sorter","result","assign","sorted","labelHelper","insertPolygonShape","note","parseMember","question","questionElem","choice","domId","map","join","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","totalWidth","totalHeight","props","propKeys","Set","borders","applyNodePropertyBorders","delete","propKey","strokeDashArray","addBorder","skipBorder","includes","rectWithTitle","innerLine","text2","flat","title","textRows","titleBox","descr","stadium","subroutine","start","forkJoin","end","innerCircle","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","members","str","parsedInfo","parsedText","displayText","lbl","cssStyle","classMethods","methods","diffX","fork","nodeElems","link","target","securityLevel","linkTarget","tooltip","haveCallback","decodeEntities","_classes","element","themeCSS","maxTextSize","darkMode","logLevel","startOnLoad","deterministicIds","deterministicIDSeed","diagramPadding","nodeSpacing","rankSpacing","useMaxWidth","defaultRenderer","sequence","activationWidth","diagramMarginX","diagramMarginY","actorMargin","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","forceMenus","bottomMarginAdj","rightAngles","showSequenceNumbers","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","wrap","wrapPadding","labelBoxWidth","labelBoxHeight","messageFont","fontSize","fontWeight","noteFont","actorFont","gantt","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","sectionFontSize","numberSectionStyles","axisFormat","topAxis","useWidth","journey","leftMargin","taskFontSize","taskFontFamily","taskMargin","textPlacement","actorColours","sectionFills","sectionColours","git","dividerMargin","sizeUnit","textHeight","titleShift","forkWidth","forkHeight","miniPadding","fontSizeFactor","labelHeight","edgeLengthFactor","compositTitleSize","radius","er","layoutDirection","minEntityWidth","minEntityHeight","entityPadding","stroke","fill","pie","requirement","rect_fill","text_color","rect_border_size","rect_border_color","rect_min_width","rect_min_height","rect_padding","line_height","keyify","obj","prefix","reduce","configKeys","configApi","common","mermaidAPI","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","parseDirective","statement","context","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","relationTitle1","relationTitle2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","cleanupLabel","substr","setCssClass","ids","match","setTooltip","setLink","linkStr","formatUrl","setClickEvent","functionName","functionArgs","setClickFunc","elemId","argList","item","charAt","querySelector","addEventListener","runFunc","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","transition","duration","scrollX","right","scrollY","body","scrollTop","classed","direction","getDirection","setDirection","classDb","parser","svgDraw","curveLinear","interpolateToCurve","getStylesFromArray","configureSvgSize","yy","idCache","addClasses","g","vertex","cssClassStr","styles","radious","_shape","addRelations","cnt","defaultStyle","defaultLabelStyle","edgeData","arrowhead","getArrowMarker","type1","type2","interpolate","defaultInterpolate","arrowheadStyle","labelpos","labelType","lineBreakRegex","getGraphId","foundEntry","entries","setConf","cnf","draw","sandboxElement","root","contentDocument","svgBounds","_label","doc","labels","querySelectorAll","k","dim","insertBefore","firstChild","marker","diagram","isMultiGraph","classDef","drawClass","drawEdge","vBox","getStyles","nodeBorder","classText","mainBkg","lineColor","edgeCount","getRelationType","l","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","classInfo","isFirst","titleText2","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","rectWidth","childNodes","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","visibility","fieldType","parseGenericTypes","fieldName","classifier","parseClassifier","err","methodName","parameters","returnType","memberText","methodStart","methodEnd","firstChar","textEl","tSpan","cleanedText","DOMPurify","getRows","breakToPlaceholder","removeEscapes","newStr","String","fromCharCode","parseInt","_","c","removeScript","rs","idx","decodedText","sanitizeMore","level","placeholderToBreak","sanitizeTextOrArray","a","hasBreaks","test","splitBreaks","getUrl","useAbsolute","val","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","attributes","getEntities","addAttributes","entityName","attribs","entity","attributeName","addRelationship","entA","rolA","entB","rSpec","rel","entityA","roleA","entityB","relSpec","getRelationships","setTitle","getTitle","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","erDb","erParser","erMarkers","drawAttributes","groupNode","entityTextNode","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","attributeKeyType","attributeComment","attrPrefix","nodeHeight","typeNode","attributeType","nameNode","attributeNode","tn","nn","typeBBox","nameBBox","max","keyTypeNode","kn","keyTypeBBox","commentNode","cn","commentNodeBBox","widthPaddingFactor","bBox","spareColumnWidth","heightOffset","attribStyle","alignY","typeRect","nameXOffset","parseFloat","nameRect","keyTypeAndCommentXOffset","keyTypeRect","drawEntities","svgNode","firstOne","textId","textNode","entityWidth","entityHeight","rectNode","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","cardA","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","directed","edgesep","firstEntity","tertiaryColor","dagreD3","addToRender","addToRenderV2","addShape","vertexCounter","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","version","veritceKeys","addVertex","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","updateLink","isSubstringInArray","textStyles","newStyle1","newStyle2","setClass","setClickFun","getTooltip","getVertices","getEdges","ver","setGen","addSubGraph","list","_title","uniq","prims","boolean","number","string","objs","nodeList","stmt","hasOwnProperty","apply","nl","subGraph","makeUniq","getPosForId","secCount","posCrossRef","indexNodes2","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","countChar","char","destructEndLink","dots","destructLink","_startStr","startInfo","exists","allSgs","sg","allSubgraphs","lex","flowDb","flow","addVertices","vert","svgId","classStr","parentNode","addEdges","linkIdCnt","defaultStyles","linkIdBase","linkId","linkNameStart","linkNameEnd","minlen","subG","linkNode","flowChartShapes","_doc","Render","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","yPos","cluster","te","classList","add","nodeTextColor","textColor","titleColor","arrowheadColor","edgeLabelBackground","clusterBkg","clusterBorder","border2","moment","sanitizeUrl","dateFormat","todayMarker","excludes","links","sections","tasks","currentSection","tags","inclusiveEndDates","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","getDateFormat","setIncludes","toLowerCase","getIncludes","setExcludes","getExcludes","getLinks","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","format","isoWeekday","checkTaskDates","task","manualEndTime","startTime","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","order","addTaskOrg","newTask","description","compileTask","allProcessed","_linkStr","pushFun","open","callbackFunction","matchFound","t","regex","RegExp","shift","scaleTime","scaleLinear","interpolateHcl","axisBottom","axisTop","timeFormat","ganttDb","getElementById","parentElement","offsetWidth","taskArray","timeScale","domain","rangeRound","categories","catsUnfiltered","checkUnique","taskCompare","b","taskA","taskB","makeGant","pageWidth","pageHeight","gap","colorScale","range","drawExcludeDays","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","each","taskRect","taskText","oldParent","Link","createElement","minTime","maxTime","excludeRanges","valueOf","clone","renderEnd","bottomXAxis","tickSize","tickFormat","call","topXAxis","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","prototype","getCounts","word","excludeBkgColor","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","ganttFontSize","gridColor","todayLineColor","taskTextDarkColor","taskTextClickableColor","taskTextColor","taskBkgColor","taskBorderColor","taskTextOutsideColor","activeTaskBkgColor","activeTaskBorderColor","doneTaskBorderColor","doneTaskBkgColor","critBorderColor","critBkgColor","random","commits","branches","master","curBranch","seq","getId","isfastforwardable","currentCommit","otherCommit","isReachableFrom","currentSeq","otherSeq","uniqBy","fn","recordMap","create","out","setOptions","rawOptString","message","getOptions","commit","msg","branch","merge","otherBranch","checkout","commitRef","ref","parentCount","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","newCommit","nextCommit","prettyPrint","getCommitsArray","getBranchesAsObjArray","branchArr","getBranches","getCommits","getCurrentBranch","getHead","db","gitGraphParser","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","branchColors","nodeRadius","nodeLabel","apiConfig","svgCreateDefs","svgDrawLine","colorIdx","color","lineGen","round","getElementCoords","coords","ctm","getCTM","xn","yn","svgDrawLineForCommits","fromId","toId","fromBbox","toBbox","lineStart","lineEnd","cloneNode","selector","renderCommitHistory","commitid","numCommits","size","branchName","renderLines","branchColor","lineDrawn","setMessage","getMessage","setInfo","inf","getInfo","infoParser","showData","setShowData","toggle","getShowData","cleanupValue","scaleOrdinal","d3pie","arc","pieData","pieParser","margin","legendRectSize","legendSpacing","sum","myGeneratedColors","pie1","pie2","pie3","pie4","pie5","pie6","pie7","pie8","pie9","pie10","pie11","pie12","dataReady","arcGenerator","innerRadius","outerRadius","toFixed","centroid","legend","horz","pieStrokeColor","pieStrokeWidth","pieOpacity","pieTitleTextSize","pieTitleTextColor","pieSectionTextColor","pieSectionTextSize","pieLegendTextColor","pieLegendTextSize","latestRequirement","requirements","latestElement","elements","RequirementType","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","RiskLevel","LOW_RISK","MED_RISK","HIGH_RISK","VerifyType","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","Relationships","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","addRequirement","risk","verifyMethod","getRequirements","setNewReqId","setNewReqText","setNewReqRisk","setNewReqVerifyMethod","addElement","docRef","getElements","setNewElementType","setNewElementDocRef","src","dst","req","ReqMarkers","ARROW","insertLineEndings","containsNode","requirementDb","newRectNode","newTitleNode","txts","textStr","yPadding","linePadding","totalY","titleNode","newBodyNode","yStart","currentRow","charLimit","wrappedTxts","currentTextLen","firstPart","lastStr","addEdgeLabel","elementString","drawReqs","reqs","reqName","titleNodeInfo","bodyNode","drawElements","els","elName","relationColor","requirementBackground","requirementBorderColor","requirementBorderSize","requirementTextColor","relationLabelBackground","relationLabelColor","prevActor","actors","messages","notes","titleWrapped","sequenceNumbersEnabled","wrapEnabled","addActor","old","autoWrap","properties","actorCnt","rectData","nextActor","activationCount","part","LINETYPE","ACTIVE_START","from","actor","ACTIVE_END","addMessage","idFrom","idTo","answer","to","addSignal","messageType","Error","token","loc","first_line","last_line","first_column","last_column","expected","getMessages","getActors","getActor","getActorKeys","getTitleWrapped","enableSequenceNumbers","setWrap","wrapSetting","parseMessage","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","SOLID_POINT","DOTTED_POINT","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","addLinks","actorId","sanitizedText","insertLinks","addALink","sep","addProperties","insertProperties","addDetails","innerHTML","details","getActorProperty","titleWrap","param","signalType","loopText","optText","altText","parText","drawText","fixLifeLineHeights","sequenceDb","startx","stopx","starty","stopy","sequenceItems","activations","models","getHeight","loops","it","acc","actorModel","addLoop","loopModel","msgModel","noteModel","lastActor","lastLoop","lastMessage","lastNote","init","updateVal","updateBounds","_self","updateFn","updateItemBounds","_startx","_stopx","_starty","_stopy","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","createLoop","newLoop","endLoop","pop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","drawNote","getNoteRect","rectElem","drawRect","textObj","getTextObj","anchor","textMargin","valign","textElem","curr","drawMessage","sequenceIndex","lines","textDims","calculateTextDimensions","totalOffset","lineStarty","fromBounds","toBounds","drawActors","actorKeys","prevWidth","prevMargin","drawActor","drawActorsPopup","minMenuWidth","getRequiredPopupWidth","menuDimensions","drawPopup","activationBounds","actorObj","adjustLoopHeightForWrap","loopWidths","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","textConf","wrapLabel","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertComputerIcon","insertDatabaseIcon","insertClockIcon","calculateLoopBounds","insertArrowHead","insertArrowCrossHead","insertArrowFilledHead","insertSequenceNumber","activeEnd","activationData","drawActivation","drawLoop","drawBackgroundRect","requiredBoxSize","box","actorLines","boxHeight","boxWidth","extraVertForTitle","isNote","isMessage","textFont","wrappedMessage","messageDimensions","messageWidth","requiredPopupWidth","labelDimensions","labelWidth","actorToMessageWidth","prop","actDims","actorKey","actorWidth","buildNoteModel","shouldWrap","textDimensions","buildMessageModel","process","fromIdx","toIdx","allBounds","boundedWidth","msgDims","stack","current","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","toAdd","enabled","stk","actorBorder","actorBkg","actorTextColor","actorLineColor","signalColor","sequenceNumberColor","signalTextColor","labelBoxBorderColor","labelBoxBkgColor","labelTextColor","loopTextColor","noteBorderColor","noteBkgColor","noteTextColor","activationBkgColor","activationBorderColor","addFunction","addPopupInteraction","popupMenuUpFunc","popupMenuDownFunc","textAttrs","displayValue","actorClass","menuWidth","linkY","linkElem","sanitizedLink","_drawMenuItemTextCandidateFunc","drawImage","imageElem","drawEmbeddedImage","popupMenu","popid","popdownMenu","popupId","pu","display","textData","prevTextHeight","textElems","yfunc","dominantBaseline","alignmentBaseline","span","drawLabel","txtObject","genPoints","cut","drawActorTypeParticipant","center","boxpluslineGroup","cssclass","iconSrc","_drawTextCandidateFunc","drawActorTypeActor","actElem","drawLoopLine","sectionHeight","lower","defs","byText","content","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","set","get","stateDb","drawStartState","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleWidth","graphBox","lineY","drawEndState","drawForkJoinState","parentId","tmp","nText","_drawLongText","_text","tHeight","textBounds","drawState","stateInfo","stateBox","titleRows","boundstmp","heightAdj","generateId","rootDoc","setRootDoc","getRootDoc","docTranslator","first","state1","state2","currentDoc","newNode","docNode","getRootDocV2","extract","addState","newDoc","states","documents","currentDocument","startCnt","endCnt","addDescription","des","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","getDir","nodeData","noteData","groupData","position","arrowType","setupDoc","startId","endId","defaultDir","transformationLog","renderDoc","svgWidth","getLabelWidth","domDocument","edgeFreeDoc","ranker","nodeSep","sub","boxBounds","noteDef","nodeCount","svgElem","dividers","pWidth","pShift","getAttribute","transitionColor","stateLabelColor","background","labelBackgroundColor","transitionLabelColor","tertiaryTextColor","specialStateColor","innerEndBackground","compositeBackground","stateBkg","stateBorder","compositeTitleBackground","altBackground","allItemsProcessed","updateActors","tempActors","people","unique","taskData","pieces","score","peeps","peopleList","journeyDb","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","faceColor","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","actor0","actor1","actor2","actor3","actor4","actor5","d3arc","drawFace","faceData","circleElement","face","smile","startAngle","PI","endAngle","sad","ambivalent","labelMargin","taskCount","graphics","interactionFunctions","func","attachFunctions","LEVELS","fatal","setLogLevel","console","bind","time","arguments","mermaid","sequenceConfig","callback","Node","ganttConfig","idGeneratior","initIdGeneratior","next","entityDecode","detectInit","svgCode","parseError","initialize","contentLoaded","compile","serialize","pkg","classRenderer","classRendererV2","classParser","erRenderer","flowRenderer","flowRendererV2","flowParser","ganttRenderer","ganttParser","gitGraphAst","gitGraphRenderer","infoDb","infoRenderer","pieDb","pieRenderer","requirementParser","requirementRenderer","sequenceParser","sequenceRenderer","stateParser","stateRenderer","stateRendererV2","journeyRenderer","journeyParser","errorRenderer","directiveSanitizer","sanitizeCss","graphInit","reinitialize","graphType","detectType","encodeEntities","innerTxt","isInt","_txt","cb","container","iframe","existingSvg","remove","userStyles","altFontFamily","stylis","rules","style1","sequenceDiagram","svgEl","viewBox","btoa","tmpElementSelector","currentDirective","args","handleDirective","updateRendererConfigs","default","globalReset","classDiagram","stateDiagram","themes","calcThemeVariables","userOverRides","calcColors","errorBkgColor","errorTextColor","baseThemeVariables","darkThemeVariables","defaultThemeVariables","forestThemeVariables","neutralThemeVariables","base","dark","forest","neutral","darken","lighten","adjust","invert","mkBorder","Theme","primaryColor","primaryTextColor","secondaryColor","primaryBorderColor","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","nodeBkg","defaultLinkColor","taskTextLightColor","compositeBorder","overrides","updateColors","userOverrides","calculate","rgba","secondBkg","mainContrastColor","darkTextColor","border1","labelBackground","labelColor","col","contrast","critical","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","d3CurveTypes","directiveWithoutOpen","anyComment","inits","detectDirective","results","commentWithoutDirectives","source","lastIndex","memoize","resolver","cache","defaultCurve","curveName","toUpperCase","arrPaths","fnName","params","distance","pow","traverseEdge","prevPoint","totalDistance","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos","terminalMarkerSize","makeid","characters","charactersLength","floor","clobber","drawSimpleText","joinWith","words","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","fontFamilies","dims","cheight","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","Map","deterministic","seed","now","decoder","escape","unescape","arg","stringsearch"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"mermaid.core.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,8gDAA8gD;AACzhD,aAAa,ioCAAioC;AAC9oC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA,4CAA4C,wCAAwC;AACpF;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,8CAA8C,mCAAmC,yCAAyC;AAC1H;AACA;AACA,8CAA8C,yCAAyC;AACvF;AACA;AACA,8CAA8C,kCAAkC,oCAAoC;AACpH;AACA;AACA,8CAA8C,yCAAyC;AACvF;AACA;AACA,8CAA8C,0CAA0C;AACxF;AACA;AACA,8CAA8C,0CAA0C;AACxF;AACA;AACA;AACA;AACA;AACA,8CAA8C,2CAA2C;AACzF;AACA;AACA,8CAA8C,oDAAoD;AAClG;AACA;AACA,8CAA8C,2CAA2C;AACzF;AACA;AACA,8CAA8C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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,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,wCAAwC,YAAY;AAC7vF,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACn7BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,k2CAAk2C;AAC72C,aAAa,+2BAA+2B;AAC53B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,yEAAyE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,0EAA0E,EAAE,QAAQ,sDAAsD,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,uBAAuB,oBAAoB,4NAA4N,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,qGAAqG,UAAU,EAAE,UAAU,6BAA6B,gFAAgF,GAAG,8CAA8C,8BAA8B,2BAA2B,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,UAAU,eAAe,wDAAwD,gBAAgB,UAAU,oHAAoH,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,sOAAsO,4CAA4C,wDAAwD,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,2BAA2B,4CAA4C,UAAU,EAAE,UAAU,gBAAgB,8CAA8C,EAAE,wDAAwD,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,+CAA+C,eAAe,WAAW,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,2DAA2D,+CAA+C,6BAA6B,WAAW,GAAG,WAAW,EAAE,wBAAwB,yDAAyD,WAAW,8BAA8B,WAAW,8BAA8B,WAAW,iBAAiB,cAAc,gBAAgB,UAAU,4CAA4C,WAAW;AAC79F,iBAAiB,sGAAsG;AACvH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,yIAAyI,8BAA8B,mBAAmB,yBAAyB,0JAA0J,cAAc,aAAa,yFAAyF,oBAAoB,WAAW,yBAAyB,0fAA0f,EAAE,MAAM,YAAY,EAAE;AAC1jC,aAAa,uBAAuB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,kBAAkB,kCAAkC,kBAAkB,qCAAqC,SAAS,kCAAkC,WAAW,2CAA2C,YAAY,kCAAkC,aAAa,kCAAkC,WAAW,kCAAkC,YAAY;AACxpB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC14BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,k0BAAk0B;AAC70B,aAAa,8eAA8e;AAC3f;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,mCAAmC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,iGAAiG,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,gEAAgE,uDAAuD,kDAAkD,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,GAAG,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,oGAAoG,aAAa,eAAe,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,mCAAmC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,4CAA4C,UAAU,EAAE,0BAA0B,gBAAgB,UAAU,eAAe,6BAA6B,2BAA2B,UAAU,uEAAuE,aAAa;AACxuC,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0HAA0H,eAAe,cAAc,eAAe,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,gGAAgG,iHAAiH,mCAAmC,cAAc,uCAAuC,aAAa;AAC/kB,aAAa,uBAAuB,gCAAgC,cAAc,8BAA8B,cAAc,8BAA8B,mBAAmB,8BAA8B,mBAAmB,iCAAiC,kBAAkB,kCAAkC,UAAU,iDAAiD,YAAY;AAC5X,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC3xBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,6+DAA6+D;AACx/D,aAAa,6vCAA6vC;AAC1wC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,6CAA6C,8CAA8C,WAAW;AACtG;AACA;AACA,+CAA+C,gDAAgD,WAAW;AAC1G;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC,qDAAqD;AACxF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,SAAS,iDAAiD,EAAE,MAAM,EAAE,QAAQ,EAAE,kDAAkD,YAAY,MAAM,GAAG,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,6UAA6U,EAAE,sBAAsB,6DAA6D,uCAAuC,sFAAsF,0DAA0D,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oCAAoC,gBAAgB,UAAU,EAAE,UAAU,6BAA6B,aAAa,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+KAA+K,2EAA2E,WAAW,gBAAgB,uQAAuQ,mRAAmR,2BAA2B,EAAE,kBAAkB,0DAA0D,WAAW,gBAAgB,cAAc,iBAAiB,qJAAqJ,6DAA6D,6BAA6B,GAAG,oSAAoS,qJAAqJ,oSAAoS,aAAa,OAAO,4CAA4C,QAAQ,GAAG,6JAA6J,EAAE,+BAA+B,EAAE,4JAA4J,EAAE,iJAAiJ,iBAAiB,sBAAsB,kBAAkB,WAAW,kBAAkB,sJAAsJ,kBAAkB,WAAW,mSAAmS,yIAAyI,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,+SAA+S,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,WAAW,EAAE,oSAAoS,EAAE,+SAA+S,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,oSAAoS,gCAAgC,aAAa,EAAE,SAAS,4CAA4C,cAAc,iBAAiB,WAAW,GAAG,WAAW,EAAE,oSAAoS,EAAE,gSAAgS,qWAAqW,2TAA2T,EAAE,gVAAgV,EAAE,cAAc,EAAE,sJAAsJ,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,kBAAkB,WAAW,EAAE,sJAAsJ,EAAE,sJAAsJ,EAAE,WAAW,iBAAiB,WAAW,GAAG,uBAAuB,EAAE,WAAW,kBAAkB,uBAAuB,eAAe,mIAAmI,GAAG,gSAAgS,EAAE,gSAAgS,EAAE,oSAAoS,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,WAAW,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,oSAAoS,EAAE,gSAAgS,EAAE,2SAA2S,EAAE,2SAA2S,EAAE,2BAA2B,eAAe,QAAQ,iCAAiC,gSAAgS,gCAAgC,oSAAoS,aAAa,OAAO,iBAAiB,+IAA+I,EAAE,sHAAsH,EAAE,sHAAsH,EAAE,kIAAkI,EAAE,kIAAkI,EAAE,YAAY,EAAE,sHAAsH,EAAE,sHAAsH,EAAE,iJAAiJ,kBAAkB,WAAW,iBAAiB,WAAW,kDAAkD,WAAW,+CAA+C,gSAAgS,0DAA0D,WAAW,8BAA8B,gSAAgS,gKAAgK,gSAAgS,EAAE,gVAAgV,+BAA+B,SAAS,kBAAkB,uGAAuG,kNAAkN,SAAS,kBAAkB,SAAS,GAAG,WAAW,iBAAiB,SAAS,GAAG,WAAW,gCAAgC,SAAS,iBAAiB,SAAS,kBAAkB,2IAA2I,mBAAmB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,gBAAgB,+GAA+G,kBAAkB,iJAAiJ,EAAE,iJAAiJ,gDAAgD,oSAAoS,2BAA2B,OAAO,kBAAkB,uGAAuG,kBAAkB,sJAAsJ,kBAAkB,sJAAsJ,GAAG,gSAAgS,EAAE,gVAAgV,EAAE,sHAAsH,EAAE,sHAAsH,6CAA6C,SAAS,kBAAkB,SAAS;AACr/nB,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iBAAiB,8BAA8B,mBAAmB,yBAAyB,mBAAmB,0HAA0H,cAAc,aAAa,mxBAAmxB,21JAA21J,UAAU;AAC54L,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,WAAW,6BAA6B,QAAQ,6DAA6D,wBAAwB,kCAAkC,cAAc,+BAA+B,cAAc,8BAA8B,WAAW,kCAAkC,YAAY;AAC5sB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7hCA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,opBAAopB;AAC/pB,aAAa,ycAAyc;AACtd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,cAAc,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,gKAAgK,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,+HAA+H,2IAA2I,UAAU,EAAE,UAAU,4CAA4C,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,sEAAsE,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AACngC,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,gIAAgI,eAAe,cAAc,kBAAkB,qBAAqB,8TAA8T,2EAA2E,2BAA2B,2BAA2B,6BAA6B,qDAAqD,iCAAiC,2BAA2B,kBAAkB,kBAAkB;AAC54B,aAAa,uBAAuB,kCAAkC,cAAc,8BAA8B,cAAc,8BAA8B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,YAAY;AACjjB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACnxBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,8uBAA8uB,0BAA0B;AACnxB,aAAa,idAAid,EAAE;AAChe;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,kDAAkD,EAAE,MAAM,EAAE,mDAAmD,EAAE,mDAAmD,EAAE,2CAA2C,+CAA+C,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,eAAe,gBAAgB,gBAAgB,sBAAsB,oBAAoB,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,gJAAgJ,6BAA6B,gBAAgB,iBAAiB,QAAQ,EAAE,SAAS,gBAAgB,yBAAyB,0DAA0D,UAAU,EAAE,UAAU,4CAA4C,UAAU,eAAe,wDAAwD,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,wEAAwE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,GAAG,UAAU,eAAe,UAAU,8BAA8B,8BAA8B,gBAAgB,8BAA8B,0DAA0D,8BAA8B,gBAAgB,8BAA8B,GAAG,UAAU,gBAAgB,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,EAAE,UAAU,2CAA2C,oBAAoB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,GAAG,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,eAAe,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,GAAG,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B;AACxmH,iBAAiB,kEAAkE;AACnF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,+BAA+B;AAC/B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,gIAAgI,eAAe,cAAc;AACpP,aAAa,uBAAuB,kCAAkC,cAAc,8BAA8B,cAAc,8BAA8B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,YAAY,kCAAkC,WAAW,kCAAkC,YAAY;AAC5c,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC57BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,0WAA0W,mHAAmH;AACxe,aAAa,4NAA4N,2FAA2F;AACpU;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,mDAAmD,EAAE,MAAM,EAAE,oDAAoD,EAAE,oDAAoD,YAAY,cAAc,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,YAAY,8EAA8E,aAAa,KAAK,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,sDAAsD,8EAA8E,iBAAiB,gBAAgB,oFAAoF,aAAa,EAAE,UAAU;AAC1yB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB,sNAAsN,eAAe,cAAc;AACxX,aAAa,uBAAuB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,UAAU,+BAA+B,WAAW,kCAAkC,YAAY;AACzc,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC3qBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,opCAAopC;AAC/pC,aAAa,gyBAAgyB;AAC7yB;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,8CAA8C,EAAE,MAAM,EAAE,uDAAuD,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,eAAe,SAAS,EAAE,+CAA+C,EAAE,QAAQ,EAAE,mJAAmJ,EAAE,uBAAuB,8CAA8C,QAAQ,EAAE,SAAS,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,+HAA+H,gBAAgB,gBAAgB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,uDAAuD,EAAE,uDAAuD,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,oGAAoG,UAAU,eAAe,+CAA+C,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,oBAAoB,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+CAA+C,8BAA8B,UAAU,EAAE,UAAU,EAAE,iCAAiC,4CAA4C,oBAAoB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,kDAAkD,gBAAgB,6BAA6B,EAAE,6BAA6B,gBAAgB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,kCAAkC,EAAE,kCAAkC;AACn7F,iBAAiB,iRAAiR;AAClS;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,gCAAgC,wHAAwH,eAAe,cAAc,iHAAiH,WAAW,qoBAAqoB;AAC7gC,aAAa,uBAAuB,kCAAkC,cAAc,8BAA8B,cAAc,8BAA8B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,cAAc,6BAA6B,UAAU,6BAA6B,WAAW,kCAAkC,YAAY;AAChf,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACrzBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,wrCAAwrC;AACnsC,aAAa,kxBAAkxB;AAC/xB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAgD;AAC/E;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,yBAAyB,gDAAgD;AACzE;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,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A;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,yCAAyC,qBAAqB;AAC9D;AACA,0BAA0B,iBAAiB,oBAAoB;AAC/D;AACA,0BAA0B,iBAAiB;AAC3C;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,2FAA2F,iCAAiC,0NAA0N,uNAAuN,yBAAyB,wHAAwH,eAAe,cAAc,mFAAmF,qBAAqB,yCAAyC,4IAA4I;AAC1rC,aAAa,uBAAuB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,mBAAmB,gCAAgC,mBAAmB,kCAAkC,kBAAkB,kCAAkC,OAAO,mCAAmC,UAAU,sCAAsC,SAAS,mCAAmC,YAAY;AAC9c,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACp7BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,ynBAAynB,qJAAqJ;AACzxB,aAAa,wbAAwb,6HAA6H;AAClkB;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;;AAEA,2CAA2C,iCAAiC;AAC5E,iBAAiB,4BAA4B,+DAA+D,WAAW;AACvH;AACA;AACA;;AAEA,sEAAsE;AACtE,iBAAiB,4BAA4B,+DAA+D,WAAW,8DAA8D;AACrL;AACA;AACA;;AAEA,2EAA2E;AAC3E,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA,2GAA2G;AAC3G,kBAAkB;AAClB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,6GAA6G;AAC7G,iBAAiB,0CAA0C;AAC3D;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,yEAAyE,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,0LAA0L,EAAE,uBAAuB,iCAAiC,iKAAiK,yCAAyC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,0DAA0D,oCAAoC,8BAA8B,UAAU,EAAE,UAAU,kHAAkH,gBAAgB,2CAA2C,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,8BAA8B,aAAa,EAAE,UAAU,eAAe,UAAU,GAAG,4LAA4L,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,sDAAsD,KAAK,+BAA+B,4LAA4L;AACt1D,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,0BAA0B,0CAA0C;AAC5F;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wBAAwB,8CAA8C;AACtE;AACA,yBAAyB,4BAA4B,6CAA6C;AAClG;AACA,yBAAyB,mDAAmD,2CAA2C;AACvH;AACA,yBAAyB,mDAAmD,6CAA6C;AACzH;AACA,4DAA4D;AAC5D;AACA,4DAA4D;AAC5D;AACA,qDAAqD;AACrD;AACA,iDAAiD;AACjD;AACA,2CAA2C;AAC3C;AACA,yCAAyC,sCAAsC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6IAA6I,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB,+PAA+P,eAAe,cAAc,6TAA6T,6CAA6C,wBAAwB,WAAW,gLAAgL,oJAAoJ,qBAAqB;AACnwC,aAAa,QAAQ,kCAAkC,oBAAoB,kCAAkC,kBAAkB,sCAAsC,mBAAmB,sCAAsC,mBAAmB,oCAAoC,WAAW,yEAAyE,qBAAqB,+BAA+B,kBAAkB,qCAAqC,cAAc,kCAAkC,YAAY,+BAA+B,SAAS,qCAAqC,wBAAwB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,UAAU,kCAAkC,UAAU,6BAA6B,aAAa,+BAA+B,iBAAiB,kCAAkC,eAAe,6BAA6B,UAAU,mEAAmE,OAAO,kCAAkC,YAAY;AACjlC,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACx1BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,qcAAqc;AAChd,aAAa,uSAAuS;AACpT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,kGAAkG,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,iEAAiE,0CAA0C,UAAU,EAAE,UAAU,8BAA8B,UAAU,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,UAAU,sEAAsE,aAAa,EAAE,UAAU,EAAE,UAAU;AACjoB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,2FAA2F,wHAAwH,eAAe,cAAc,2BAA2B,kBAAkB,kBAAkB;AACnb,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,wBAAwB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,YAAY;AAClU,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA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A/DA;;EAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEvP,mBAAmB,EAAE,KA5ER;;EA8Eb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEtL,MAAM,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,aAA5B,EAA2C,aAA3C,CAxFK;;EA0Fb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE8a,gBAAgB,EAAE,KAtGL;;EAwGb;AACF;AACA;AACA;AACA;EACEC,mBAAmB,EAAEvZ,SA7GR;;EA+Gb;EACAG,SAAS,EAAE;IACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIqZ,cAAc,EAAE,CAbP;;IAeT;AACJ;AACA;AACA;AACA;AACA;AACA;IACIpZ,UAAU,EAAE,IAtBH;;IAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIqZ,WAAW,EAAE,EApCJ;;IAsCT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAE,EAlDJ;;IAoDT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIpQ,KAAK,EAAE,OA7DE;IA8DT;IACA;IACA3I,OAAO,EAAE,EAhEA;;IAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIgZ,WAAW,EAAE,IA9EJ;;IAgFT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE;EA5FR,CAhHE;;EA+Mb;EACAC,QAAQ,EAAE;IACRC,sBAAsB,EAAE,KADhB;;IAER;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE,EATT;;IAWR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,EAlBR;;IAoBR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,EA3BR;;IA6BR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAE,EApCL;;IAsCR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIzZ,KAAK,EAAE,GA7CC;;IA+CR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EAtDA;;IAwDR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIyZ,SAAS,EAAE,EA/DH;;IAiER;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,CAxEP;;IA0ER;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,EAjFJ;;IAmFR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,EA1FP;;IA4FR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,QAnGN;;IAqGR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,IA5GN;;IA8GR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,KAvHJ;;IAyHR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE,CApIT;;IAsIR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIf,WAAW,EAAE,IAhJL;;IAkJR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIgB,WAAW,EAAE,KA7JL;;IA+JR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,mBAAmB,EAAE,KAtKb;;IAwKR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,EA/KP;;IAiLR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE,yBAxLT;;IA0LR;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAE,GA/LT;;IAiMR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,EAxMN;;IA0MR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,4CAjNR;;IAmNR;AACJ;AACA;AACA;AACA;IACIC,cAAc,EAAE,GAxNR;;IA0NR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,SAAS,EAAE,QAjOH;;IAmOR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE,EA1OT;;IA4OR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAE,4CAnPX;;IAqPR;AACJ;AACA;AACA;AACA;IACIC,iBAAiB,EAAE,GA1PX;;IA4PR;AACJ;AACA;AACA;AACA;IACIC,IAAI,EAAE,KAjQE;;IAmQR;AACJ;AACA;AACA;AACA;IACIC,WAAW,EAAE,EAxQL;;IA0QR;AACJ;AACA;AACA;AACA;IACIC,aAAa,EAAE,EA/QP;;IAiRR;AACJ;AACA;AACA;AACA;IACIC,cAAc,EAAE,EAtRR;IAwRRC,WAAW,EAAE,uBAAY;MACvB,OAAO;QACL5c,UAAU,EAAE,KAAKsc,iBADZ;QAELO,QAAQ,EAAE,KAAKR,eAFV;QAGLS,UAAU,EAAE,KAAKP;MAHZ,CAAP;IAKD,CA9RO;IA+RRQ,QAAQ,EAAE,oBAAY;MACpB,OAAO;QACL/c,UAAU,EAAE,KAAKkc,cADZ;QAELW,QAAQ,EAAE,KAAKZ,YAFV;QAGLa,UAAU,EAAE,KAAKX;MAHZ,CAAP;IAKD,CArSO;IAsSRa,SAAS,EAAE,qBAAY;MACrB,OAAO;QACLhd,UAAU,EAAE,KAAK+b,eADZ;QAELc,QAAQ,EAAE,KAAKf,aAFV;QAGLgB,UAAU,EAAE,KAAKd;MAHZ,CAAP;IAKD;EA5SO,CAhNG;;EA+fb;EACAiB,KAAK,EAAE;IACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,EAVX;;IAYL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,SAAS,EAAE,EAnBN;;IAqBL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,CA5BH;;IA8BL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,EArCP;;IAuCL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,EA9CT;;IAgDL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAE,EAvDR;;IAyDL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,oBAAoB,EAAE,EAhEjB;;IAkEL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIX,QAAQ,EAAE,EAzEL;;IA2EL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIY,eAAe,EAAE,EAlFZ;;IAoFL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,mBAAmB,EAAE,CA3FhB;;IA6FL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,UAxGP;;IA0GL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI/C,WAAW,EAAE,IAtHR;;IAwHL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIgD,OAAO,EAAE,KAjIJ;IAmILC,QAAQ,EAAE5c;EAnIL,CAhgBM;;EAsoBb;EACA6c,OAAO,EAAE;IACP;AACJ;AACA;AACA;AACA;AACA;AACA;IACI7C,cAAc,EAAE,EART;;IAUP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,EAjBT;;IAmBP;AACJ;AACA;AACA;AACA;AACA;AACA;IACI6C,UAAU,EAAE,GA1BL;;IA4BP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIrc,KAAK,EAAE,GAnCA;;IAqCP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EA5CD;;IA8CP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIyZ,SAAS,EAAE,EArDJ;;IAuDP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,CA9DR;;IAgEP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,EAvEL;;IAyEP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,EApFR;;IAsFP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,QA7FP;;IA+FP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,eAAe,EAAE,CA1GV;;IA4GP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIf,WAAW,EAAE,IAxHN;;IA0HP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIgB,WAAW,EAAE,KArIN;IAsIPoC,YAAY,EAAE,EAtIP;IAuIPC,cAAc,EAAE,yBAvIT;IAwIPC,UAAU,EAAE,EAxIL;IAyIP;IACAlD,eAAe,EAAE,EA1IV;IA4IP;IACAmD,aAAa,EAAE,IA7IR;IA8IPC,YAAY,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,SAAvB,EAAkC,SAAlC,EAA6C,SAA7C,EAAwD,SAAxD,CA9IP;IAgJPC,YAAY,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,SAAvB,EAAkC,SAAlC,EAA6C,SAA7C,EAAwD,SAAxD,EAAmE,SAAnE,CAhJP;IAiJPC,cAAc,EAAE,CAAC,MAAD;EAjJT,CAvoBI;EA0xBb1d,KAAK,EAAE;IACLmK,mBAAmB,EAAE,KADhB;;IAGL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI6P,WAAW,EAAE,IAfR;;IAgBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE;EA5BZ,CA1xBM;EAwzBb/P,KAAK,EAAE;IACLyT,aAAa,EAAE,EADV;IAELC,QAAQ,EAAE,CAFL;IAGL5c,OAAO,EAAE,CAHJ;IAIL6c,UAAU,EAAE,EAJP;IAKLC,UAAU,EAAE,CAAC,EALR;IAMLpD,UAAU,EAAE,EANP;IAOLqD,SAAS,EAAE,EAPN;IAQLC,UAAU,EAAE,CARP;IASL;IACAC,WAAW,EAAE,CAVR;IAWL;IACA;IACAC,cAAc,EAAE,IAbX;IAcLjC,QAAQ,EAAE,EAdL;IAeLkC,WAAW,EAAE,EAfR;IAgBLC,gBAAgB,EAAE,IAhBb;IAiBLC,iBAAiB,EAAE,EAjBd;IAkBLC,MAAM,EAAE,CAlBH;;IAmBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACItE,WAAW,EAAE,IA/BR;;IAgCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE;EA5CZ,CAxzBM;;EAu2Bb;EACAsE,EAAE,EAAE;IACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI1E,cAAc,EAAE,EAbd;;IAeF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI2E,eAAe,EAAE,IA5Bf;;IA8BF;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,GArCd;;IAuCF;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE,EA9Cf;;IAgDF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,EA5Db;;IA8DF;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,MArEN;;IAuEF;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,IAAI,EAAE,UA9EJ;;IAgFF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI5C,QAAQ,EAAE,EAzFR;;IA2FF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIjC,WAAW,EAAE;EAvGX,CAx2BS;;EAk9Bb;EACA8E,GAAG,EAAE;IACH7B,QAAQ,EAAE5c,SADP;;IAGH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI2Z,WAAW,EAAE;EAfV,CAn9BQ;;EAq+Bb;EACA+E,WAAW,EAAE;IACX9B,QAAQ,EAAE5c,SADC;;IAGX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI2Z,WAAW,EAAE,IAfF;IAiBXgF,SAAS,EAAE,SAjBA;IAkBXC,UAAU,EAAE,MAlBD;IAmBXC,gBAAgB,EAAE,OAnBP;IAoBXC,iBAAiB,EAAE,MApBR;IAqBXC,cAAc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,MApBa;EAqBbyzB,OAAO,EAAPA,OArBa;EAsBb12C,OAAO,EAAPA,OAtBa;EAuBbwsC,YAAY,EAAZA,YAvBa;EAwBbF,eAAe,EAAEA,eAxBJ;EAyBbuC,kBAAkB,EAAlBA,kBAzBa;EA0BbC,WAAW,EAAXA;AA1Ba,CAAf;;;;;;;;;;;AC/jCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY;AACZ;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV;AACA;AACA,iDAAiD;AACjD;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA,MAAM;AACN,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;AChhBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;UEJA;UACA;UACA;UACA","sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/./src/diagrams/c4/parser/c4Diagram.jison","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/requirement/parser/requirementDiagram.jison","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/accessibility.js","webpack://mermaid/./src/commonDb.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/defaultConfig.js","webpack://mermaid/./src/diagrams/c4/c4Db.js","webpack://mermaid/./src/diagrams/c4/c4Renderer.js","webpack://mermaid/./src/diagrams/c4/styles.js","webpack://mermaid/./src/diagrams/c4/svgDraw.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer-v2.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/styles.js","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/styles.js","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/styles.js","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/styles.js","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/styles.js","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/styles.js","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/pie/styles.js","webpack://mermaid/./src/diagrams/requirement/requirementDb.js","webpack://mermaid/./src/diagrams/requirement/requirementMarkers.js","webpack://mermaid/./src/diagrams/requirement/requirementRenderer.js","webpack://mermaid/./src/diagrams/requirement/styles.js","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/styles.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/state/styles.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/styles.js","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/interactionDb.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/styles.js","webpack://mermaid/./src/themes/index.js","webpack://mermaid/./src/themes/theme-base.js","webpack://mermaid/./src/themes/theme-dark.js","webpack://mermaid/./src/themes/theme-default.js","webpack://mermaid/./src/themes/theme-forest.js","webpack://mermaid/./src/themes/theme-helpers.js","webpack://mermaid/./src/themes/theme-neutral.js","webpack://mermaid/./src/utils.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/external commonjs \"@braintree/sanitize-url\"","webpack://mermaid/external commonjs \"d3\"","webpack://mermaid/external commonjs \"dagre\"","webpack://mermaid/external commonjs \"dagre-d3\"","webpack://mermaid/external commonjs \"dagre-d3/lib/label/add-html-label.js\"","webpack://mermaid/external commonjs \"dompurify\"","webpack://mermaid/external commonjs \"graphlib\"","webpack://mermaid/external commonjs \"khroma\"","webpack://mermaid/external commonjs \"moment-mini\"","webpack://mermaid/external commonjs \"stylis\"","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/c4/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/class/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/er/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/flowchart/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/gantt/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/git/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/info/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/pie/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/requirement/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/sequence/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/state/parser|fs","webpack://mermaid/ignored|/Users/ashishj/projects/mermaid/src/diagrams/user-journey/parser|fs","webpack://mermaid/webpack/bootstrap","webpack://mermaid/webpack/runtime/compat get default export","webpack://mermaid/webpack/runtime/define property getters","webpack://mermaid/webpack/runtime/hasOwnProperty shorthand","webpack://mermaid/webpack/runtime/make namespace object","webpack://mermaid/webpack/runtime/node module decorator","webpack://mermaid/webpack/before-startup","webpack://mermaid/webpack/startup","webpack://mermaid/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, () => {\nreturn ","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,16],$V5=[1,11],$V6=[1,12],$V7=[1,13],$V8=[1,14],$V9=[1,15],$Va=[1,27],$Vb=[1,33],$Vc=[1,34],$Vd=[1,35],$Ve=[1,36],$Vf=[1,37],$Vg=[1,72],$Vh=[1,73],$Vi=[1,74],$Vj=[1,75],$Vk=[1,76],$Vl=[1,77],$Vm=[1,78],$Vn=[1,38],$Vo=[1,39],$Vp=[1,40],$Vq=[1,41],$Vr=[1,42],$Vs=[1,43],$Vt=[1,44],$Vu=[1,45],$Vv=[1,46],$Vw=[1,47],$Vx=[1,48],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,59],$VI=[1,60],$VJ=[1,61],$VK=[1,62],$VL=[1,63],$VM=[1,64],$VN=[1,65],$VO=[1,66],$VP=[1,67],$VQ=[1,68],$VR=[1,69],$VS=[24,52],$VT=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],$VU=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],$VV=[1,94],$VW=[1,95],$VX=[1,96],$VY=[1,97],$VZ=[15,24,52],$V_=[7,8,9,10,18,22,25,26,27,28],$V$=[15,24,43,52],$V01=[15,24,43,52,86,87,89,90],$V11=[15,43],$V21=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"direction\":5,\"directive\":6,\"direction_tb\":7,\"direction_bt\":8,\"direction_rl\":9,\"direction_lr\":10,\"graphConfig\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\"NEWLINE\":15,\":\":16,\"argDirective\":17,\"open_directive\":18,\"type_directive\":19,\"arg_directive\":20,\"close_directive\":21,\"C4_CONTEXT\":22,\"statements\":23,\"EOF\":24,\"C4_CONTAINER\":25,\"C4_COMPONENT\":26,\"C4_DYNAMIC\":27,\"C4_DEPLOYMENT\":28,\"otherStatements\":29,\"diagramStatements\":30,\"otherStatement\":31,\"title\":32,\"accDescription\":33,\"acc_title\":34,\"acc_title_value\":35,\"acc_descr\":36,\"acc_descr_value\":37,\"acc_descr_multiline_value\":38,\"boundaryStatement\":39,\"boundaryStartStatement\":40,\"boundaryStopStatement\":41,\"boundaryStart\":42,\"LBRACE\":43,\"ENTERPRISE_BOUNDARY\":44,\"attributes\":45,\"SYSTEM_BOUNDARY\":46,\"BOUNDARY\":47,\"CONTAINER_BOUNDARY\":48,\"NODE\":49,\"NODE_L\":50,\"NODE_R\":51,\"RBRACE\":52,\"diagramStatement\":53,\"PERSON\":54,\"PERSON_EXT\":55,\"SYSTEM\":56,\"SYSTEM_DB\":57,\"SYSTEM_QUEUE\":58,\"SYSTEM_EXT\":59,\"SYSTEM_EXT_DB\":60,\"SYSTEM_EXT_QUEUE\":61,\"CONTAINER\":62,\"CONTAINER_DB\":63,\"CONTAINER_QUEUE\":64,\"CONTAINER_EXT\":65,\"CONTAINER_EXT_DB\":66,\"CONTAINER_EXT_QUEUE\":67,\"COMPONENT\":68,\"COMPONENT_DB\":69,\"COMPONENT_QUEUE\":70,\"COMPONENT_EXT\":71,\"COMPONENT_EXT_DB\":72,\"COMPONENT_EXT_QUEUE\":73,\"REL\":74,\"BIREL\":75,\"REL_U\":76,\"REL_D\":77,\"REL_L\":78,\"REL_R\":79,\"REL_B\":80,\"REL_INDEX\":81,\"UPDATE_EL_STYLE\":82,\"UPDATE_REL_STYLE\":83,\"UPDATE_LAYOUT_CONFIG\":84,\"attribute\":85,\"STR\":86,\"STR_KEY\":87,\"STR_VALUE\":88,\"ATTRIBUTE\":89,\"ATTRIBUTE_EMPTY\":90,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",7:\"direction_tb\",8:\"direction_bt\",9:\"direction_rl\",10:\"direction_lr\",15:\"NEWLINE\",16:\":\",18:\"open_directive\",19:\"type_directive\",20:\"arg_directive\",21:\"close_directive\",22:\"C4_CONTEXT\",24:\"EOF\",25:\"C4_CONTAINER\",26:\"C4_COMPONENT\",27:\"C4_DYNAMIC\",28:\"C4_DEPLOYMENT\",32:\"title\",33:\"accDescription\",34:\"acc_title\",35:\"acc_title_value\",36:\"acc_descr\",37:\"acc_descr_value\",38:\"acc_descr_multiline_value\",43:\"LBRACE\",44:\"ENTERPRISE_BOUNDARY\",46:\"SYSTEM_BOUNDARY\",47:\"BOUNDARY\",48:\"CONTAINER_BOUNDARY\",49:\"NODE\",50:\"NODE_L\",51:\"NODE_R\",52:\"RBRACE\",54:\"PERSON\",55:\"PERSON_EXT\",56:\"SYSTEM\",57:\"SYSTEM_DB\",58:\"SYSTEM_QUEUE\",59:\"SYSTEM_EXT\",60:\"SYSTEM_EXT_DB\",61:\"SYSTEM_EXT_QUEUE\",62:\"CONTAINER\",63:\"CONTAINER_DB\",64:\"CONTAINER_QUEUE\",65:\"CONTAINER_EXT\",66:\"CONTAINER_EXT_DB\",67:\"CONTAINER_EXT_QUEUE\",68:\"COMPONENT\",69:\"COMPONENT_DB\",70:\"COMPONENT_QUEUE\",71:\"COMPONENT_EXT\",72:\"COMPONENT_EXT_DB\",73:\"COMPONENT_EXT_QUEUE\",74:\"REL\",75:\"BIREL\",76:\"REL_U\",77:\"REL_D\",78:\"REL_L\",79:\"REL_R\",80:\"REL_B\",81:\"REL_INDEX\",82:\"UPDATE_EL_STYLE\",83:\"UPDATE_REL_STYLE\",84:\"UPDATE_LAYOUT_CONFIG\",86:\"STR\",87:\"STR_KEY\",88:\"STR_VALUE\",89:\"ATTRIBUTE\",90:\"ATTRIBUTE_EMPTY\"},\nproductions_: [0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.setDirection('TB');\nbreak;\ncase 5:\n yy.setDirection('BT');\nbreak;\ncase 6:\n yy.setDirection('RL');\nbreak;\ncase 7:\n yy.setDirection('LR');\nbreak;\ncase 11:\n console.log(\"open_directive: \", $$[$0]); yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 12:\n \nbreak;\ncase 13:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); console.log(\"arg_directive: \", $$[$0]); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 14:\n console.log(\"close_directive: \", $$[$0]); yy.parseDirective('}%%', 'close_directive', 'c4Context'); \nbreak;\ncase 15: case 16: case 17: case 18: case 19:\nyy.setC4Type($$[$0-3])\nbreak;\ncase 26:\nyy.setTitle($$[$0].substring(6));this.$=$$[$0].substring(6);\nbreak;\ncase 27:\nyy.setAccDescription($$[$0].substring(15));this.$=$$[$0].substring(15);\nbreak;\ncase 28:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 29: case 30:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 35: case 36:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(2, 0, 'ENTERPRISE'); yy.addPersonOrSystemBoundary(...$$[$0]); this.$=$$[$0];\nbreak;\ncase 37:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystemBoundary(...$$[$0]); this.$=$$[$0];\nbreak;\ncase 38:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(2, 0, 'CONTAINER'); yy.addContainerBoundary(...$$[$0]); this.$=$$[$0];\nbreak;\ncase 39:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('node', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 40:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('nodeL', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 41:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('nodeR', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 42:\n yy.popBoundaryParseStack() \nbreak;\ncase 46:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('person', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 47:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_person', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 48:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 49:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 50:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 51:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 52:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 53:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 54:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 55:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 56:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 57:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 58:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 59:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 60:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 61:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 62:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 63:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 64:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 65:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 67:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 68:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('birel', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 69:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_u', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 70:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_d', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 71:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_l', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 72:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_r', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 73:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_b', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 74:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(0, 1); yy.addRel('rel', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 75:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.updateElStyle('update_el_style', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 76:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.updateRelStyle('update_rel_style', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 77:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.updateLayoutConfig('update_layout_config', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 78:\n console.log('PUSH ATTRIBUTE: ', $$[$0]); this.$ = [$$[$0]]; \nbreak;\ncase 79:\n console.log('PUSH ATTRIBUTE: ', $$[$0-1]); $$[$0].unshift($$[$0-1]); this.$=$$[$0];\nbreak;\ncase 80: case 82:\n this.$ = $$[$0].trim(); \nbreak;\ncase 81:\n console.log('kv: ', $$[$0-1], $$[$0]); let kv={}; kv[$$[$0-1].trim()]=$$[$0].trim(); this.$=kv; \nbreak;\ncase 83:\n this.$ = \"\"; \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5,25:$V6,26:$V7,27:$V8,28:$V9},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5,25:$V6,26:$V7,27:$V8,28:$V9},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:$Va},o([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:79,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:80,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:81,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:82,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},o($VS,[2,20],{53:32,39:58,40:70,42:71,30:87,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR}),o($VS,[2,21]),o($VT,[2,23],{15:[1,88]}),o($VS,[2,43],{15:[1,89]}),o($VU,[2,26]),o($VU,[2,27]),{35:[1,90]},{37:[1,91]},o($VU,[2,30]),{45:92,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:98,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:99,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:100,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:101,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:102,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:103,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:104,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:105,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:106,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:107,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:108,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:109,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:110,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:111,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:112,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:113,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:114,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:115,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:116,85:93,86:$VV,87:$VW,89:$VX,90:$VY},o($VZ,[2,66]),{45:117,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:118,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:119,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:120,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:121,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:122,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:123,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:124,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:125,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:126,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:127,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{30:128,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{15:[1,130],43:[1,129]},{45:131,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:132,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:133,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:134,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:135,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:136,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:137,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},o($V_,[2,9]),{14:142,21:$Va},{21:[2,13]},{1:[2,15]},o($VS,[2,22]),o($VT,[2,24],{31:31,29:143,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf}),o($VS,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR}),o($VU,[2,28]),o($VU,[2,29]),o($VZ,[2,46]),o($V$,[2,78],{85:93,45:145,86:$VV,87:$VW,89:$VX,90:$VY}),o($V01,[2,80]),{88:[1,146]},o($V01,[2,82]),o($V01,[2,83]),o($VZ,[2,47]),o($VZ,[2,48]),o($VZ,[2,49]),o($VZ,[2,50]),o($VZ,[2,51]),o($VZ,[2,52]),o($VZ,[2,53]),o($VZ,[2,54]),o($VZ,[2,55]),o($VZ,[2,56]),o($VZ,[2,57]),o($VZ,[2,58]),o($VZ,[2,59]),o($VZ,[2,60]),o($VZ,[2,61]),o($VZ,[2,62]),o($VZ,[2,63]),o($VZ,[2,64]),o($VZ,[2,65]),o($VZ,[2,67]),o($VZ,[2,68]),o($VZ,[2,69]),o($VZ,[2,70]),o($VZ,[2,71]),o($VZ,[2,72]),o($VZ,[2,73]),o($VZ,[2,74]),o($VZ,[2,75]),o($VZ,[2,76]),o($VZ,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},o($V11,[2,35]),o($V11,[2,36]),o($V11,[2,37]),o($V11,[2,38]),o($V11,[2,39]),o($V11,[2,40]),o($V11,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},o($VT,[2,25]),o($VS,[2,45]),o($V$,[2,79]),o($V01,[2,81]),o($VZ,[2,31]),o($VZ,[2,42]),o($V21,[2,32]),o($V21,[2,33],{15:[1,152]}),o($V_,[2,10]),o($V21,[2,34])],\ndefaultActions: {2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 18; \nbreak;\ncase 1:return 7;\nbreak;\ncase 2:return 8;\nbreak;\ncase 3:return 9;\nbreak;\ncase 4:return 10;\nbreak;\ncase 5: this.begin('type_directive'); return 19; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 16; \nbreak;\ncase 7: this.popState(); this.popState(); return 21; \nbreak;\ncase 8:return 20;\nbreak;\ncase 9:return 32;\nbreak;\ncase 10:return 33;\nbreak;\ncase 11: this.begin(\"acc_title\");return 34; \nbreak;\ncase 12: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 13: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 14: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 15: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 16: this.popState(); \nbreak;\ncase 17:return \"acc_descr_multiline_value\";\nbreak;\ncase 18:/* skip comments */\nbreak;\ncase 19:c /* skip comments */\nbreak;\ncase 20:return 15;\nbreak;\ncase 21:/* skip whitespace */\nbreak;\ncase 22:return 22;\nbreak;\ncase 23:return 25;\nbreak;\ncase 24:return 26;\nbreak;\ncase 25:return 27;\nbreak;\ncase 26:return 28;\nbreak;\ncase 27: this.begin(\"person_ext\"); console.log('begin person_ext'); return 55;\nbreak;\ncase 28: this.begin(\"person\"); console.log('begin person'); return 54;\nbreak;\ncase 29: this.begin(\"system_ext_queue\"); console.log('begin system_ext_queue'); return 61;\nbreak;\ncase 30: this.begin(\"system_ext_db\"); console.log('begin system_ext_db'); return 60;\nbreak;\ncase 31: this.begin(\"system_ext\"); console.log('begin system_ext'); return 59;\nbreak;\ncase 32: this.begin(\"system_queue\"); console.log('begin system_queue'); return 58;\nbreak;\ncase 33: this.begin(\"system_db\"); console.log('begin system_db'); return 57;\nbreak;\ncase 34: this.begin(\"system\"); console.log('begin system'); return 56;\nbreak;\ncase 35: this.begin(\"boundary\"); console.log('begin boundary'); return 47;\nbreak;\ncase 36: this.begin(\"enterprise_boundary\"); console.log('begin enterprise_boundary'); return 44;\nbreak;\ncase 37: this.begin(\"system_boundary\"); console.log('begin system_boundary'); return 46;\nbreak;\ncase 38: this.begin(\"container_ext_queue\"); console.log('begin container_ext_queue'); return 67;\nbreak;\ncase 39: this.begin(\"container_ext_db\"); console.log('begin container_ext_db'); return 66;\nbreak;\ncase 40: this.begin(\"container_ext\"); console.log('begin container_ext'); return 65;\nbreak;\ncase 41: this.begin(\"container_queue\"); console.log('begin container_queue'); return 64;\nbreak;\ncase 42: this.begin(\"container_db\"); console.log('begin container_db'); return 63;\nbreak;\ncase 43: this.begin(\"container\"); console.log('begin container'); return 62;\nbreak;\ncase 44: this.begin(\"container_boundary\"); console.log('begin container_boundary'); return 48;\nbreak;\ncase 45: this.begin(\"component_ext_queue\"); console.log('begin component_ext_queue'); return 73;\nbreak;\ncase 46: this.begin(\"component_ext_db\"); console.log('begin component_ext_db'); return 72;\nbreak;\ncase 47: this.begin(\"component_ext\"); console.log('begin component_ext'); return 71;\nbreak;\ncase 48: this.begin(\"component_queue\"); console.log('begin component_queue'); return 70;\nbreak;\ncase 49: this.begin(\"component_db\"); console.log('begin component_db'); return 69;\nbreak;\ncase 50: this.begin(\"component\"); console.log('begin component'); return 68;\nbreak;\ncase 51: this.begin(\"node\"); console.log('begin node'); return 49;\nbreak;\ncase 52: this.begin(\"node\"); console.log('begin node'); return 49;\nbreak;\ncase 53: this.begin(\"node_l\"); console.log('begin node_l'); return 50;\nbreak;\ncase 54: this.begin(\"node_r\"); console.log('begin node_r'); return 51;\nbreak;\ncase 55: this.begin(\"rel\"); console.log('begin rel'); return 74;\nbreak;\ncase 56: this.begin(\"birel\"); console.log('begin birel'); return 75;\nbreak;\ncase 57: this.begin(\"rel_u\"); console.log('begin rel_u'); return 76;\nbreak;\ncase 58: this.begin(\"rel_u\"); console.log('begin rel_u'); return 76;\nbreak;\ncase 59: this.begin(\"rel_d\"); console.log('begin rel_d'); return 77;\nbreak;\ncase 60: this.begin(\"rel_d\"); console.log('begin rel_d'); return 77;\nbreak;\ncase 61: this.begin(\"rel_l\"); console.log('begin rel_l'); return 78;\nbreak;\ncase 62: this.begin(\"rel_l\"); console.log('begin rel_l'); return 78;\nbreak;\ncase 63: this.begin(\"rel_r\"); console.log('begin rel_r'); return 79;\nbreak;\ncase 64: this.begin(\"rel_r\"); console.log('begin rel_r'); return 79;\nbreak;\ncase 65: this.begin(\"rel_b\"); console.log('begin rel_b'); return 80;\nbreak;\ncase 66: this.begin(\"rel_index\"); console.log('begin rel_index'); return 81;\nbreak;\ncase 67: this.begin(\"update_el_style\"); console.log('begin update_el_style'); return 82;\nbreak;\ncase 68: this.begin(\"update_rel_style\"); console.log('begin update_rel_style'); return 83;\nbreak;\ncase 69: this.begin(\"update_layout_config\"); console.log('begin update_layout_config'); return 84;\nbreak;\ncase 70:return \"EOF_IN_STRUCT\";\nbreak;\ncase 71: console.log('begin attribute with ATTRIBUTE_EMPTY'); this.begin(\"attribute\"); return \"ATTRIBUTE_EMPTY\";\nbreak;\ncase 72: console.log('begin attribute'); this.begin(\"attribute\"); \nbreak;\ncase 73: console.log('STOP attribute'); this.popState();console.log('STOP diagram'); this.popState();\nbreak;\ncase 74: console.log(',,'); return 90;\nbreak;\ncase 75: console.log(','); \nbreak;\ncase 76: console.log('ATTRIBUTE_EMPTY'); return 90;\nbreak;\ncase 77: console.log('begin string'); this.begin(\"string\");\nbreak;\ncase 78: console.log('STOP string'); this.popState(); \nbreak;\ncase 79: console.log('STR'); return \"STR\";\nbreak;\ncase 80: console.log('begin string_kv'); this.begin(\"string_kv\");\nbreak;\ncase 81: console.log('STR_KEY'); this.begin(\"string_kv_key\"); return \"STR_KEY\";\nbreak;\ncase 82: console.log('begin string_kv_value'); this.popState(); this.begin(\"string_kv_value\"); \nbreak;\ncase 83: console.log('STR_VALUE'); return \"STR_VALUE\";\nbreak;\ncase 84: console.log('STOP string_kv_value'); this.popState(); this.popState(); \nbreak;\ncase 85: console.log('not STR'); return \"STR\";\nbreak;\ncase 86: /* this.begin(\"lbrace\"); */ console.log('begin boundary block'); return \"LBRACE\";\nbreak;\ncase 87: /* this.popState(); */ console.log('STOP boundary block'); return \"RBRACE\";\nbreak;\ncase 88:return 'SPACE';\nbreak;\ncase 89:return 'EOL';\nbreak;\ncase 90:return 24;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:title\\s[^#\\n;]+)/,/^(?:accDescription\\s[^#\\n;]+)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:C4Context\\b)/,/^(?:C4Container\\b)/,/^(?:C4Component\\b)/,/^(?:C4Dynamic\\b)/,/^(?:C4Deployment\\b)/,/^(?:Person_Ext\\b)/,/^(?:Person\\b)/,/^(?:SystemQueue_Ext\\b)/,/^(?:SystemDb_Ext\\b)/,/^(?:System_Ext\\b)/,/^(?:SystemQueue\\b)/,/^(?:SystemDb\\b)/,/^(?:System\\b)/,/^(?:Boundary\\b)/,/^(?:Enterprise_Boundary\\b)/,/^(?:System_Boundary\\b)/,/^(?:ContainerQueue_Ext\\b)/,/^(?:ContainerDb_Ext\\b)/,/^(?:Container_Ext\\b)/,/^(?:ContainerQueue\\b)/,/^(?:ContainerDb\\b)/,/^(?:Container\\b)/,/^(?:Container_Boundary\\b)/,/^(?:ComponentQueue_Ext\\b)/,/^(?:ComponentDb_Ext\\b)/,/^(?:Component_Ext\\b)/,/^(?:ComponentQueue\\b)/,/^(?:ComponentDb\\b)/,/^(?:Component\\b)/,/^(?:Deployment_Node\\b)/,/^(?:Node\\b)/,/^(?:Node_L\\b)/,/^(?:Node_R\\b)/,/^(?:Rel\\b)/,/^(?:BiRel\\b)/,/^(?:Rel_Up\\b)/,/^(?:Rel_U\\b)/,/^(?:Rel_Down\\b)/,/^(?:Rel_D\\b)/,/^(?:Rel_Left\\b)/,/^(?:Rel_L\\b)/,/^(?:Rel_Right\\b)/,/^(?:Rel_R\\b)/,/^(?:Rel_Back\\b)/,/^(?:RelIndex\\b)/,/^(?:UpdateElementStyle\\b)/,/^(?:UpdateRelStyle\\b)/,/^(?:UpdateLayoutConfig\\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*[\"][\"])/,/^(?:[ ]*[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[ ]*[\\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*[\"])/,/^(?:[^\"]+)/,/^(?:[\"])/,/^(?:[^,]+)/,/^(?:\\{)/,/^(?:\\})/,/^(?:[\\s]+)/,/^(?:[\\n\\r]+)/,/^(?:$)/],\nconditions: {\"acc_descr_multiline\":{\"rules\":[16,17],\"inclusive\":false},\"acc_descr\":{\"rules\":[14],\"inclusive\":false},\"acc_title\":{\"rules\":[12],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"string_kv_value\":{\"rules\":[83,84],\"inclusive\":false},\"string_kv_key\":{\"rules\":[82],\"inclusive\":false},\"string_kv\":{\"rules\":[81],\"inclusive\":false},\"string\":{\"rules\":[78,79],\"inclusive\":false},\"attribute\":{\"rules\":[73,74,75,76,77,80,85],\"inclusive\":false},\"update_layout_config\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"update_rel_style\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"update_el_style\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_b\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_r\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_l\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_d\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_u\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_bi\":{\"rules\":[],\"inclusive\":false},\"rel\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"node_r\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"node_l\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"node\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"index\":{\"rules\":[],\"inclusive\":false},\"rel_index\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_ext_queue\":{\"rules\":[],\"inclusive\":false},\"component_ext_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_ext_queue\":{\"rules\":[],\"inclusive\":false},\"container_ext_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"birel\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"enterprise_boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_ext_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_ext_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"person_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"person\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,10],$V5=[1,13],$V6=[1,12],$V7=[1,16,25],$V8=[1,20],$V9=[1,31],$Va=[1,32],$Vb=[1,33],$Vc=[1,35],$Vd=[1,38],$Ve=[1,36],$Vf=[1,37],$Vg=[1,39],$Vh=[1,40],$Vi=[1,41],$Vj=[1,42],$Vk=[1,45],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[16,25],$Vp=[1,62],$Vq=[1,63],$Vr=[1,64],$Vs=[1,65],$Vt=[1,66],$Vu=[1,67],$Vv=[16,25,32,44,45,53,56,57,58,59,60,61,66,68],$Vw=[16,25,30,32,44,45,49,53,56,57,58,59,60,61,66,68,83,84,85,86],$Vx=[5,8,9,10,11,16,19,23,25],$Vy=[53,83,84,85,86],$Vz=[53,60,61,83,84,85,86],$VA=[53,56,57,58,59,83,84,85,86],$VB=[16,25,32],$VC=[1,99];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"statments\":5,\"direction\":6,\"directive\":7,\"direction_tb\":8,\"direction_bt\":9,\"direction_rl\":10,\"direction_lr\":11,\"graphConfig\":12,\"openDirective\":13,\"typeDirective\":14,\"closeDirective\":15,\"NEWLINE\":16,\":\":17,\"argDirective\":18,\"open_directive\":19,\"type_directive\":20,\"arg_directive\":21,\"close_directive\":22,\"CLASS_DIAGRAM\":23,\"statements\":24,\"EOF\":25,\"statement\":26,\"className\":27,\"alphaNumToken\":28,\"classLiteralName\":29,\"GENERICTYPE\":30,\"relationStatement\":31,\"LABEL\":32,\"classStatement\":33,\"methodStatement\":34,\"annotationStatement\":35,\"clickStatement\":36,\"cssClassStatement\":37,\"acc_title\":38,\"acc_title_value\":39,\"acc_descr\":40,\"acc_descr_value\":41,\"acc_descr_multiline_value\":42,\"CLASS\":43,\"STYLE_SEPARATOR\":44,\"STRUCT_START\":45,\"members\":46,\"STRUCT_STOP\":47,\"ANNOTATION_START\":48,\"ANNOTATION_END\":49,\"MEMBER\":50,\"SEPARATOR\":51,\"relation\":52,\"STR\":53,\"relationType\":54,\"lineType\":55,\"AGGREGATION\":56,\"EXTENSION\":57,\"COMPOSITION\":58,\"DEPENDENCY\":59,\"LINE\":60,\"DOTTED_LINE\":61,\"CALLBACK\":62,\"LINK\":63,\"LINK_TARGET\":64,\"CLICK\":65,\"CALLBACK_NAME\":66,\"CALLBACK_ARGS\":67,\"HREF\":68,\"CSSCLASS\":69,\"commentToken\":70,\"textToken\":71,\"graphCodeTokens\":72,\"textNoTagsToken\":73,\"TAGSTART\":74,\"TAGEND\":75,\"==\":76,\"--\":77,\"PCT\":78,\"DEFAULT\":79,\"SPACE\":80,\"MINUS\":81,\"keywords\":82,\"UNICODE_TEXT\":83,\"NUM\":84,\"ALPHA\":85,\"BQUOTE_STR\":86,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"statments\",8:\"direction_tb\",9:\"direction_bt\",10:\"direction_rl\",11:\"direction_lr\",16:\"NEWLINE\",17:\":\",19:\"open_directive\",20:\"type_directive\",21:\"arg_directive\",22:\"close_directive\",23:\"CLASS_DIAGRAM\",25:\"EOF\",30:\"GENERICTYPE\",32:\"LABEL\",38:\"acc_title\",39:\"acc_title_value\",40:\"acc_descr\",41:\"acc_descr_value\",42:\"acc_descr_multiline_value\",43:\"CLASS\",44:\"STYLE_SEPARATOR\",45:\"STRUCT_START\",47:\"STRUCT_STOP\",48:\"ANNOTATION_START\",49:\"ANNOTATION_END\",50:\"MEMBER\",51:\"SEPARATOR\",53:\"STR\",56:\"AGGREGATION\",57:\"EXTENSION\",58:\"COMPOSITION\",59:\"DEPENDENCY\",60:\"LINE\",61:\"DOTTED_LINE\",62:\"CALLBACK\",63:\"LINK\",64:\"LINK_TARGET\",65:\"CLICK\",66:\"CALLBACK_NAME\",67:\"CALLBACK_ARGS\",68:\"HREF\",69:\"CSSCLASS\",72:\"graphCodeTokens\",74:\"TAGSTART\",75:\"TAGEND\",76:\"==\",77:\"--\",78:\"PCT\",79:\"DEFAULT\",80:\"SPACE\",81:\"MINUS\",82:\"keywords\",83:\"UNICODE_TEXT\",84:\"NUM\",85:\"ALPHA\",86:\"BQUOTE_STR\"},\nproductions_: [0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[46,1],[46,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[52,3],[52,2],[52,2],[52,1],[54,1],[54,1],[54,1],[54,1],[55,1],[55,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[70,1],[70,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[73,1],[73,1],[73,1],[73,1],[28,1],[28,1],[28,1],[29,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 5:\n yy.setDirection('TB');\nbreak;\ncase 6:\n yy.setDirection('BT');\nbreak;\ncase 7:\n yy.setDirection('RL');\nbreak;\ncase 8:\n yy.setDirection('LR');\nbreak;\ncase 12:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 13:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 14:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 15:\n yy.parseDirective('}%%', 'close_directive', 'class'); \nbreak;\ncase 20: case 21:\n this.$=$$[$0]; \nbreak;\ncase 22:\n this.$=$$[$0-1]+$$[$0]; \nbreak;\ncase 23: case 24:\n this.$=$$[$0-1]+'~'+$$[$0]; \nbreak;\ncase 25:\n yy.addRelation($$[$0]); \nbreak;\ncase 26:\n $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]); \nbreak;\ncase 34:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 35: case 36:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 37:\nyy.addClass($$[$0]);\nbreak;\ncase 38:\nyy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);\nbreak;\ncase 39:\n/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);\nbreak;\ncase 40:\nyy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);\nbreak;\ncase 41:\n yy.addAnnotation($$[$0],$$[$0-2]); \nbreak;\ncase 42:\n this.$ = [$$[$0]]; \nbreak;\ncase 43:\n $$[$0].push($$[$0-1]);this.$=$$[$0];\nbreak;\ncase 44:\n/*console.log('Rel found',$$[$0]);*/\nbreak;\ncase 45:\nyy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));\nbreak;\ncase 46:\n/*console.warn('Member',$$[$0]);*/\nbreak;\ncase 47:\n/*console.log('sep found',$$[$0]);*/\nbreak;\ncase 48:\n this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; \nbreak;\ncase 49:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}\nbreak;\ncase 50:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; \nbreak;\ncase 51:\n this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} \nbreak;\ncase 52:\n this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 53:\n this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 54:\n this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; \nbreak;\ncase 55:\n this.$={type1:'none',type2:'none',lineType:$$[$0]}; \nbreak;\ncase 56:\n this.$=yy.relationType.AGGREGATION;\nbreak;\ncase 57:\n this.$=yy.relationType.EXTENSION;\nbreak;\ncase 58:\n this.$=yy.relationType.COMPOSITION;\nbreak;\ncase 59:\n this.$=yy.relationType.DEPENDENCY;\nbreak;\ncase 60:\nthis.$=yy.lineType.LINE;\nbreak;\ncase 61:\nthis.$=yy.lineType.DOTTED_LINE;\nbreak;\ncase 62: case 68:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 63: case 69:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 64: case 72:\nthis.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 65:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1],$$[$0]);\nbreak;\ncase 66: case 74:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 67: case 75:\nthis.$ = $$[$0-4];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);yy.setTooltip($$[$0-3], $$[$0-1]);\nbreak;\ncase 70:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 71:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 73:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 76:\nyy.setCssClass($$[$0-1], $$[$0]);\nbreak;\n}\n},\ntable: [{3:1,4:2,5:$V0,6:4,7:5,8:$V1,9:$V2,10:$V3,11:$V4,12:6,13:11,19:$V5,23:$V6},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:$V0,6:4,7:5,8:$V1,9:$V2,10:$V3,11:$V4,12:6,13:11,19:$V5,23:$V6},{1:[2,9]},o($V7,[2,5]),o($V7,[2,6]),o($V7,[2,7]),o($V7,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:$V8},o([17,22],[2,13]),{6:30,7:29,8:$V1,9:$V2,10:$V3,11:$V4,13:11,19:$V5,24:21,26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:$V9,40:$Va,42:$Vb,43:$Vc,48:$Vd,50:$Ve,51:$Vf,62:$Vg,63:$Vh,65:$Vi,69:$Vj,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{16:[1,49]},{18:50,21:[1,51]},{16:[2,15]},{25:[1,52]},{16:[1,53],25:[2,17]},o($Vo,[2,25],{32:[1,54]}),o($Vo,[2,27]),o($Vo,[2,28]),o($Vo,[2,29]),o($Vo,[2,30]),o($Vo,[2,31]),o($Vo,[2,32]),o($Vo,[2,33]),{39:[1,55]},{41:[1,56]},o($Vo,[2,36]),o($Vo,[2,44],{52:57,54:60,55:61,32:[1,59],53:[1,58],56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu}),{27:68,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,46]),o($Vo,[2,47]),{28:69,83:$Vk,84:$Vl,85:$Vm},{27:70,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:71,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:72,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{53:[1,73]},o($Vv,[2,20],{28:43,29:44,27:74,30:[1,75],83:$Vk,84:$Vl,85:$Vm,86:$Vn}),o($Vv,[2,21],{30:[1,76]}),o($Vw,[2,90]),o($Vw,[2,91]),o($Vw,[2,92]),o([16,25,30,32,44,45,53,56,57,58,59,60,61,66,68],[2,93]),o($Vx,[2,10]),{15:77,22:$V8},{22:[2,14]},{1:[2,16]},{6:30,7:29,8:$V1,9:$V2,10:$V3,11:$V4,13:11,19:$V5,24:78,25:[2,18],26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:$V9,40:$Va,42:$Vb,43:$Vc,48:$Vd,50:$Ve,51:$Vf,62:$Vg,63:$Vh,65:$Vi,69:$Vj,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,26]),o($Vo,[2,34]),o($Vo,[2,35]),{27:79,28:43,29:44,53:[1,80],83:$Vk,84:$Vl,85:$Vm,86:$Vn},{52:81,54:60,55:61,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu},o($Vo,[2,45]),{55:82,60:$Vt,61:$Vu},o($Vy,[2,55],{54:83,56:$Vp,57:$Vq,58:$Vr,59:$Vs}),o($Vz,[2,56]),o($Vz,[2,57]),o($Vz,[2,58]),o($Vz,[2,59]),o($VA,[2,60]),o($VA,[2,61]),o($Vo,[2,37],{44:[1,84],45:[1,85]}),{49:[1,86]},{53:[1,87]},{53:[1,88]},{66:[1,89],68:[1,90]},{28:91,83:$Vk,84:$Vl,85:$Vm},o($Vv,[2,22]),o($Vv,[2,23]),o($Vv,[2,24]),{16:[1,92]},{25:[2,19]},o($VB,[2,48]),{27:93,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:94,28:43,29:44,53:[1,95],83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vy,[2,54],{54:96,56:$Vp,57:$Vq,58:$Vr,59:$Vs}),o($Vy,[2,53]),{28:97,83:$Vk,84:$Vl,85:$Vm},{46:98,50:$VC},{27:100,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,62],{53:[1,101]}),o($Vo,[2,64],{53:[1,103],64:[1,102]}),o($Vo,[2,68],{53:[1,104],67:[1,105]}),o($Vo,[2,72],{53:[1,107],64:[1,106]}),o($Vo,[2,76]),o($Vx,[2,11]),o($VB,[2,50]),o($VB,[2,49]),{27:108,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vy,[2,52]),o($Vo,[2,38],{45:[1,109]}),{47:[1,110]},{46:111,47:[2,42],50:$VC},o($Vo,[2,41]),o($Vo,[2,63]),o($Vo,[2,65]),o($Vo,[2,66],{64:[1,112]}),o($Vo,[2,69]),o($Vo,[2,70],{53:[1,113]}),o($Vo,[2,73]),o($Vo,[2,74],{64:[1,114]}),o($VB,[2,51]),{46:115,50:$VC},o($Vo,[2,39]),{47:[2,43]},o($Vo,[2,67]),o($Vo,[2,71]),o($Vo,[2,75]),{47:[1,116]},o($Vo,[2,40])],\ndefaultActions: {2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],51:[2,14],52:[2,16],78:[2,19],111:[2,43]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 19; \nbreak;\ncase 1:return 8;\nbreak;\ncase 2:return 9;\nbreak;\ncase 3:return 10;\nbreak;\ncase 4:return 11;\nbreak;\ncase 5: this.begin('type_directive'); return 20; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 17; \nbreak;\ncase 7: this.popState(); this.popState(); return 22; \nbreak;\ncase 8:return 21;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11: this.begin(\"acc_title\");return 38; \nbreak;\ncase 12: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 13: this.begin(\"acc_descr\");return 40; \nbreak;\ncase 14: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 15: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 16: this.popState(); \nbreak;\ncase 17:return \"acc_descr_multiline_value\";\nbreak;\ncase 18:return 16;\nbreak;\ncase 19:/* skip whitespace */\nbreak;\ncase 20:return 23;\nbreak;\ncase 21:return 23;\nbreak;\ncase 22: this.begin(\"struct\"); /*console.log('Starting struct');*/ return 45;\nbreak;\ncase 23:return \"EOF_IN_STRUCT\";\nbreak;\ncase 24:return \"OPEN_IN_STRUCT\";\nbreak;\ncase 25: /*console.log('Ending struct');*/this.popState(); return 47;\nbreak;\ncase 26:/* nothing */\nbreak;\ncase 27: /*console.log('lex-member: ' + yy_.yytext);*/ return \"MEMBER\";\nbreak;\ncase 28:return 43;\nbreak;\ncase 29:return 69;\nbreak;\ncase 30:return 62;\nbreak;\ncase 31:return 63;\nbreak;\ncase 32:return 65;\nbreak;\ncase 33:return 48;\nbreak;\ncase 34:return 49;\nbreak;\ncase 35:this.begin(\"generic\");\nbreak;\ncase 36:this.popState();\nbreak;\ncase 37:return \"GENERICTYPE\";\nbreak;\ncase 38:this.begin(\"string\");\nbreak;\ncase 39:this.popState();\nbreak;\ncase 40:return \"STR\";\nbreak;\ncase 41:this.begin(\"bqstring\");\nbreak;\ncase 42:this.popState();\nbreak;\ncase 43:return \"BQUOTE_STR\";\nbreak;\ncase 44:this.begin(\"href\");\nbreak;\ncase 45:this.popState();\nbreak;\ncase 46:return 68;\nbreak;\ncase 47:this.begin(\"callback_name\");\nbreak;\ncase 48:this.popState();\nbreak;\ncase 49:this.popState(); this.begin(\"callback_args\");\nbreak;\ncase 50:return 66;\nbreak;\ncase 51:this.popState();\nbreak;\ncase 52:return 67;\nbreak;\ncase 53:return 64;\nbreak;\ncase 54:return 64;\nbreak;\ncase 55:return 64;\nbreak;\ncase 56:return 64;\nbreak;\ncase 57:return 57;\nbreak;\ncase 58:return 57;\nbreak;\ncase 59:return 59;\nbreak;\ncase 60:return 59;\nbreak;\ncase 61:return 58;\nbreak;\ncase 62:return 56;\nbreak;\ncase 63:return 60;\nbreak;\ncase 64:return 61;\nbreak;\ncase 65:return 32;\nbreak;\ncase 66:return 44;\nbreak;\ncase 67:return 81;\nbreak;\ncase 68:return 'DOT';\nbreak;\ncase 69:return 'PLUS';\nbreak;\ncase 70:return 78;\nbreak;\ncase 71:return 'EQUALS';\nbreak;\ncase 72:return 'EQUALS';\nbreak;\ncase 73:return 85;\nbreak;\ncase 74:return 'PUNCTUATION';\nbreak;\ncase 75:return 84;\nbreak;\ncase 76:return 83;\nbreak;\ncase 77:return 80;\nbreak;\ncase 78:return 25;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:classDiagram-v2\\b)/,/^(?:classDiagram\\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\\n])/,/^(?:[^{}\\n]*)/,/^(?:class\\b)/,/^(?:cssClass\\b)/,/^(?:callback\\b)/,/^(?:link\\b)/,/^(?:click\\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::{1}[^:\\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\\w+)/,/^(?:[!\"#$%&'*+,-.`?\\\\/])/,/^(?:[0-9]+)/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"acc_descr_multiline\":{\"rules\":[16,17],\"inclusive\":false},\"acc_descr\":{\"rules\":[14],\"inclusive\":false},\"acc_title\":{\"rules\":[12],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"callback_args\":{\"rules\":[51,52],\"inclusive\":false},\"callback_name\":{\"rules\":[48,49,50],\"inclusive\":false},\"href\":{\"rules\":[45,46],\"inclusive\":false},\"struct\":{\"rules\":[23,24,25,26,27],\"inclusive\":false},\"generic\":{\"rules\":[36,37],\"inclusive\":false},\"bqstring\":{\"rules\":[42,43],\"inclusive\":false},\"string\":{\"rules\":[39,40],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,28,29,30,31,32,33,34,35,38,41,44,47,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,23,25,27,29,30,49],$V3=[1,17],$V4=[1,18],$V5=[1,19],$V6=[1,20],$V7=[1,21],$V8=[1,24],$V9=[1,29],$Va=[1,30],$Vb=[1,31],$Vc=[1,32],$Vd=[6,9,11,15,20,23,25,27,29,30,42,43,44,45,49],$Ve=[1,45],$Vf=[30,46,47],$Vg=[4,6,9,11,23,25,27,29,30,49],$Vh=[42,43,44,45],$Vi=[22,37],$Vj=[1,64];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"ER_DIAGRAM\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"entityName\":17,\"relSpec\":18,\"role\":19,\"BLOCK_START\":20,\"attributes\":21,\"BLOCK_STOP\":22,\"title\":23,\"title_value\":24,\"acc_title\":25,\"acc_title_value\":26,\"acc_descr\":27,\"acc_descr_value\":28,\"acc_descr_multiline_value\":29,\"ALPHANUM\":30,\".\":31,\"attribute\":32,\"attributeType\":33,\"attributeName\":34,\"attributeKeyType\":35,\"attributeComment\":36,\"ATTRIBUTE_WORD\":37,\"ATTRIBUTE_KEY\":38,\"COMMENT\":39,\"cardinality\":40,\"relType\":41,\"ZERO_OR_ONE\":42,\"ZERO_OR_MORE\":43,\"ONE_OR_MORE\":44,\"ONLY_ONE\":45,\"NON_IDENTIFYING\":46,\"IDENTIFYING\":47,\"WORD\":48,\"open_directive\":49,\"type_directive\":50,\"arg_directive\":51,\"close_directive\":52,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"ER_DIAGRAM\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",20:\"BLOCK_START\",22:\"BLOCK_STOP\",23:\"title\",24:\"title_value\",25:\"acc_title\",26:\"acc_title_value\",27:\"acc_descr\",28:\"acc_descr_value\",29:\"acc_descr_multiline_value\",30:\"ALPHANUM\",31:\".\",37:\"ATTRIBUTE_WORD\",38:\"ATTRIBUTE_KEY\",39:\"COMMENT\",42:\"ZERO_OR_ONE\",43:\"ZERO_OR_MORE\",44:\"ONE_OR_MORE\",45:\"ONLY_ONE\",46:\"NON_IDENTIFYING\",47:\"IDENTIFYING\",48:\"WORD\",49:\"open_directive\",50:\"type_directive\",51:\"arg_directive\",52:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,3],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[36,1],[18,3],[40,1],[40,1],[40,1],[40,1],[41,1],[41,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n /*console.log('finished parsing');*/ \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 12:\n\n yy.addEntity($$[$0-4]);\n yy.addEntity($$[$0-2]);\n yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);\n /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/\n \nbreak;\ncase 13:\n\n /* console.log('detected block'); */\n yy.addEntity($$[$0-3]);\n yy.addAttributes($$[$0-3], $$[$0-1]);\n /* console.log('handled block'); */\n \nbreak;\ncase 14:\n yy.addEntity($$[$0-2]); \nbreak;\ncase 15:\n yy.addEntity($$[$0]); \nbreak;\ncase 16: case 17:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 18: case 19:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 20:\n this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/ \nbreak;\ncase 21:\n this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; \nbreak;\ncase 22:\n this.$ = [$$[$0]]; \nbreak;\ncase 23:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 24:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 25:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 26:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 27:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 28: case 29: case 30:\n this.$=$$[$0]; \nbreak;\ncase 31:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 32:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 33:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 34:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 35:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 36:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 37:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 38:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 39:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 40:\n this.$ = $$[$0]; \nbreak;\ncase 41:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 42:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 43:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 44:\n yy.parseDirective('}%%', 'close_directive', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,49:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,49:$V1},{13:8,50:[1,9]},{50:[2,41]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:$V3,25:$V4,27:$V5,29:$V6,30:$V7,49:$V1},{1:[2,2]},{14:22,15:[1,23],52:$V8},o([15,52],[2,42]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:15,10:25,12:4,17:16,23:$V3,25:$V4,27:$V5,29:$V6,30:$V7,49:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:26,40:28,20:[1,27],42:$V9,43:$Va,44:$Vb,45:$Vc}),{24:[1,33]},{26:[1,34]},{28:[1,35]},o($V2,[2,19]),o($Vd,[2,20],{31:[1,36]}),{11:[1,37]},{16:38,51:[1,39]},{11:[2,44]},o($V2,[2,5]),{17:40,30:$V7},{21:41,22:[1,42],32:43,33:44,37:$Ve},{41:46,46:[1,47],47:[1,48]},o($Vf,[2,33]),o($Vf,[2,34]),o($Vf,[2,35]),o($Vf,[2,36]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),{17:49,30:$V7},o($Vg,[2,9]),{14:50,52:$V8},{52:[2,43]},{15:[1,51]},{22:[1,52]},o($V2,[2,14]),{21:53,22:[2,22],32:43,33:44,37:$Ve},{34:54,37:[1,55]},{37:[2,28]},{40:56,42:$V9,43:$Va,44:$Vb,45:$Vc},o($Vh,[2,37]),o($Vh,[2,38]),o($Vd,[2,21]),{11:[1,57]},{19:58,30:[1,60],48:[1,59]},o($V2,[2,13]),{22:[2,23]},o($Vi,[2,24],{35:61,36:62,38:[1,63],39:$Vj}),o([22,37,38,39],[2,29]),{30:[2,32]},o($Vg,[2,10]),o($V2,[2,12]),o($V2,[2,39]),o($V2,[2,40]),o($Vi,[2,25],{36:65,39:$Vj}),o($Vi,[2,26]),o([22,37,39],[2,30]),o($Vi,[2,31]),o($Vi,[2,27])],\ndefaultActions: {5:[2,41],7:[2,2],24:[2,44],39:[2,43],45:[2,28],53:[2,23],56:[2,32]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin(\"acc_title\");return 25; \nbreak;\ncase 1: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 2: this.begin(\"acc_descr\");return 27; \nbreak;\ncase 3: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 4: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 5: this.popState(); \nbreak;\ncase 6:return \"acc_descr_multiline_value\";\nbreak;\ncase 7: this.begin('open_directive'); return 49; \nbreak;\ncase 8: this.begin('type_directive'); return 50; \nbreak;\ncase 9: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 10: this.popState(); this.popState(); return 52; \nbreak;\ncase 11:return 51;\nbreak;\ncase 12:/* skip comments */\nbreak;\ncase 13:/* skip comments */\nbreak;\ncase 14:return 11;\nbreak;\ncase 15:/* skip whitespace */\nbreak;\ncase 16:return 9;\nbreak;\ncase 17:return 48;\nbreak;\ncase 18:return 4;\nbreak;\ncase 19: this.begin(\"block\"); return 20; \nbreak;\ncase 20:/* skip whitespace in block */\nbreak;\ncase 21:return 38\nbreak;\ncase 22:return 37\nbreak;\ncase 23:return 39;\nbreak;\ncase 24:/* nothing */\nbreak;\ncase 25: this.popState(); return 22; \nbreak;\ncase 26:return yy_.yytext[0];\nbreak;\ncase 27:return 42;\nbreak;\ncase 28:return 43;\nbreak;\ncase 29:return 44;\nbreak;\ncase 30:return 45;\nbreak;\ncase 31:return 42;\nbreak;\ncase 32:return 43;\nbreak;\ncase 33:return 44;\nbreak;\ncase 34:return 46;\nbreak;\ncase 35:return 47;\nbreak;\ncase 36:return 46;\nbreak;\ncase 37:return 46;\nbreak;\ncase 38:return 30;\nbreak;\ncase 39:return yy_.yytext[0];\nbreak;\ncase 40:return 6;\nbreak;\n}\n},\nrules: [/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:[\\s]+)/i,/^(?:\"[^\"]*\")/i,/^(?:erDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\s+)/i,/^(?:\\b((?:PK)|(?:FK))\\b)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:\"[^\"]*\")/i,/^(?:[\\n]+)/i,/^(?:\\})/i,/^(?:.)/i,/^(?:\\|o\\b)/i,/^(?:\\}o\\b)/i,/^(?:\\}\\|)/i,/^(?:\\|\\|)/i,/^(?:o\\|)/i,/^(?:o\\{)/i,/^(?:\\|\\{)/i,/^(?:\\.\\.)/i,/^(?:--)/i,/^(?:\\.-)/i,/^(?:-\\.)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:.)/i,/^(?:$)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[5,6],\"inclusive\":false},\"acc_descr\":{\"rules\":[3],\"inclusive\":false},\"acc_title\":{\"rules\":[1],\"inclusive\":false},\"open_directive\":{\"rules\":[8],\"inclusive\":false},\"type_directive\":{\"rules\":[9,10],\"inclusive\":false},\"arg_directive\":{\"rules\":[10,11],\"inclusive\":false},\"block\":{\"rules\":[20,21,22,23,24,25,26],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,2,4,7,12,13,14,15,16,17,18,19,27,28,29,30,31,32,33,34,35,36,37,38,39,40],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,9],$V1=[1,7],$V2=[1,6],$V3=[1,8],$V4=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$V5=[2,10],$V6=[1,20],$V7=[1,21],$V8=[1,22],$V9=[1,23],$Va=[1,30],$Vb=[1,32],$Vc=[1,33],$Vd=[1,34],$Ve=[1,62],$Vf=[1,48],$Vg=[1,52],$Vh=[1,36],$Vi=[1,37],$Vj=[1,38],$Vk=[1,39],$Vl=[1,40],$Vm=[1,56],$Vn=[1,63],$Vo=[1,51],$Vp=[1,53],$Vq=[1,55],$Vr=[1,59],$Vs=[1,60],$Vt=[1,41],$Vu=[1,42],$Vv=[1,43],$Vw=[1,44],$Vx=[1,61],$Vy=[1,50],$Vz=[1,54],$VA=[1,57],$VB=[1,58],$VC=[1,49],$VD=[1,66],$VE=[1,71],$VF=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$VG=[1,75],$VH=[1,74],$VI=[1,76],$VJ=[20,21,23,81,82],$VK=[1,99],$VL=[1,104],$VM=[1,107],$VN=[1,108],$VO=[1,101],$VP=[1,106],$VQ=[1,109],$VR=[1,102],$VS=[1,114],$VT=[1,113],$VU=[1,103],$VV=[1,105],$VW=[1,110],$VX=[1,111],$VY=[1,112],$VZ=[1,115],$V_=[20,21,22,23,81,82],$V$=[20,21,22,23,53,81,82],$V01=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],$V11=[20,21,23],$V21=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],$V31=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$V41=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],$V51=[1,149],$V61=[1,157],$V71=[1,158],$V81=[1,159],$V91=[1,160],$Va1=[1,144],$Vb1=[1,145],$Vc1=[1,141],$Vd1=[1,152],$Ve1=[1,153],$Vf1=[1,154],$Vg1=[1,155],$Vh1=[1,156],$Vi1=[1,161],$Vj1=[1,162],$Vk1=[1,147],$Vl1=[1,150],$Vm1=[1,146],$Vn1=[1,143],$Vo1=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$Vp1=[1,165],$Vq1=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],$Vr1=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],$Vs1=[12,21,22,24],$Vt1=[22,106],$Vu1=[1,250],$Vv1=[1,245],$Vw1=[1,246],$Vx1=[1,254],$Vy1=[1,251],$Vz1=[1,248],$VA1=[1,247],$VB1=[1,249],$VC1=[1,252],$VD1=[1,253],$VE1=[1,255],$VF1=[1,273],$VG1=[20,21,23,106],$VH1=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"directive\":5,\"openDirective\":6,\"typeDirective\":7,\"closeDirective\":8,\"separator\":9,\":\":10,\"argDirective\":11,\"open_directive\":12,\"type_directive\":13,\"arg_directive\":14,\"close_directive\":15,\"graphConfig\":16,\"document\":17,\"line\":18,\"statement\":19,\"SEMI\":20,\"NEWLINE\":21,\"SPACE\":22,\"EOF\":23,\"GRAPH\":24,\"NODIR\":25,\"DIR\":26,\"FirstStmtSeperator\":27,\"ending\":28,\"endToken\":29,\"spaceList\":30,\"spaceListNewline\":31,\"verticeStatement\":32,\"styleStatement\":33,\"linkStyleStatement\":34,\"classDefStatement\":35,\"classStatement\":36,\"clickStatement\":37,\"subgraph\":38,\"text\":39,\"SQS\":40,\"SQE\":41,\"end\":42,\"direction\":43,\"acc_title\":44,\"acc_title_value\":45,\"acc_descr\":46,\"acc_descr_value\":47,\"acc_descr_multiline_value\":48,\"link\":49,\"node\":50,\"vertex\":51,\"AMP\":52,\"STYLE_SEPARATOR\":53,\"idString\":54,\"DOUBLECIRCLESTART\":55,\"DOUBLECIRCLEEND\":56,\"PS\":57,\"PE\":58,\"(-\":59,\"-)\":60,\"STADIUMSTART\":61,\"STADIUMEND\":62,\"SUBROUTINESTART\":63,\"SUBROUTINEEND\":64,\"VERTEX_WITH_PROPS_START\":65,\"ALPHA\":66,\"COLON\":67,\"PIPE\":68,\"CYLINDERSTART\":69,\"CYLINDEREND\":70,\"DIAMOND_START\":71,\"DIAMOND_STOP\":72,\"TAGEND\":73,\"TRAPSTART\":74,\"TRAPEND\":75,\"INVTRAPSTART\":76,\"INVTRAPEND\":77,\"linkStatement\":78,\"arrowText\":79,\"TESTSTR\":80,\"START_LINK\":81,\"LINK\":82,\"textToken\":83,\"STR\":84,\"keywords\":85,\"STYLE\":86,\"LINKSTYLE\":87,\"CLASSDEF\":88,\"CLASS\":89,\"CLICK\":90,\"DOWN\":91,\"UP\":92,\"textNoTags\":93,\"textNoTagsToken\":94,\"DEFAULT\":95,\"stylesOpt\":96,\"alphaNum\":97,\"CALLBACKNAME\":98,\"CALLBACKARGS\":99,\"HREF\":100,\"LINK_TARGET\":101,\"HEX\":102,\"numList\":103,\"INTERPOLATE\":104,\"NUM\":105,\"COMMA\":106,\"style\":107,\"styleComponent\":108,\"MINUS\":109,\"UNIT\":110,\"BRKT\":111,\"DOT\":112,\"PCT\":113,\"TAGSTART\":114,\"alphaNumToken\":115,\"idStringToken\":116,\"alphaNumStatement\":117,\"direction_tb\":118,\"direction_bt\":119,\"direction_rl\":120,\"direction_lr\":121,\"PUNCTUATION\":122,\"UNICODE_TEXT\":123,\"PLUS\":124,\"EQUALS\":125,\"MULT\":126,\"UNDERSCORE\":127,\"graphCodeTokens\":128,\"ARROW_CROSS\":129,\"ARROW_POINT\":130,\"ARROW_CIRCLE\":131,\"ARROW_OPEN\":132,\"QUOTE\":133,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",10:\":\",12:\"open_directive\",13:\"type_directive\",14:\"arg_directive\",15:\"close_directive\",20:\"SEMI\",21:\"NEWLINE\",22:\"SPACE\",23:\"EOF\",24:\"GRAPH\",25:\"NODIR\",26:\"DIR\",38:\"subgraph\",40:\"SQS\",41:\"SQE\",42:\"end\",44:\"acc_title\",45:\"acc_title_value\",46:\"acc_descr\",47:\"acc_descr_value\",48:\"acc_descr_multiline_value\",52:\"AMP\",53:\"STYLE_SEPARATOR\",55:\"DOUBLECIRCLESTART\",56:\"DOUBLECIRCLEEND\",57:\"PS\",58:\"PE\",59:\"(-\",60:\"-)\",61:\"STADIUMSTART\",62:\"STADIUMEND\",63:\"SUBROUTINESTART\",64:\"SUBROUTINEEND\",65:\"VERTEX_WITH_PROPS_START\",66:\"ALPHA\",67:\"COLON\",68:\"PIPE\",69:\"CYLINDERSTART\",70:\"CYLINDEREND\",71:\"DIAMOND_START\",72:\"DIAMOND_STOP\",73:\"TAGEND\",74:\"TRAPSTART\",75:\"TRAPEND\",76:\"INVTRAPSTART\",77:\"INVTRAPEND\",80:\"TESTSTR\",81:\"START_LINK\",82:\"LINK\",84:\"STR\",86:\"STYLE\",87:\"LINKSTYLE\",88:\"CLASSDEF\",89:\"CLASS\",90:\"CLICK\",91:\"DOWN\",92:\"UP\",95:\"DEFAULT\",98:\"CALLBACKNAME\",99:\"CALLBACKARGS\",100:\"HREF\",101:\"LINK_TARGET\",102:\"HEX\",104:\"INTERPOLATE\",105:\"NUM\",106:\"COMMA\",109:\"MINUS\",110:\"UNIT\",111:\"BRKT\",112:\"DOT\",113:\"PCT\",114:\"TAGSTART\",118:\"direction_tb\",119:\"direction_bt\",120:\"direction_rl\",121:\"direction_lr\",122:\"PUNCTUATION\",123:\"UNICODE_TEXT\",124:\"PLUS\",125:\"EQUALS\",126:\"MULT\",127:\"UNDERSCORE\",129:\"ARROW_CROSS\",130:\"ARROW_POINT\",131:\"ARROW_CIRCLE\",132:\"ARROW_OPEN\",133:\"QUOTE\"},\nproductions_: [0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 5:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 6:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 7:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 8:\n yy.parseDirective('}%%', 'close_directive', 'flowchart'); \nbreak;\ncase 10:\n this.$ = [];\nbreak;\ncase 11:\n\n\t if($$[$0] !== []){\n\t $$[$0-1].push($$[$0]);\n\t }\n\t this.$=$$[$0-1];\nbreak;\ncase 12: case 82: case 84: case 96: case 152: case 154: case 155:\nthis.$=$$[$0];\nbreak;\ncase 19:\n yy.setDirection('TB');this.$ = 'TB';\nbreak;\ncase 20:\n yy.setDirection($$[$0-1]);this.$ = $$[$0-1];\nbreak;\ncase 35:\n /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes\nbreak;\ncase 36: case 37: case 38: case 39: case 40:\nthis.$=[];\nbreak;\ncase 41:\nthis.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);\nbreak;\ncase 42:\nthis.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);\nbreak;\ncase 43:\nthis.$=yy.addSubGraph(undefined,$$[$0-1],undefined);\nbreak;\ncase 45:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 46: case 47:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 51:\n /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) } \nbreak;\ncase 52:\n /* console.warn('vs',$$[$0-3].stmt,$$[$0-1]); */ yy.addLink($$[$0-3].stmt,$$[$0-1],$$[$0-2]); this.$ = { stmt: $$[$0-1], nodes: $$[$0-1].concat($$[$0-3].nodes) } \nbreak;\ncase 53:\n/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }\nbreak;\ncase 54:\n /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }\nbreak;\ncase 55:\n /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];\nbreak;\ncase 56:\n this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */ \nbreak;\ncase 57:\nthis.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])\nbreak;\ncase 58:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');\nbreak;\ncase 59:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'doublecircle');\nbreak;\ncase 60:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');\nbreak;\ncase 61:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');\nbreak;\ncase 62:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');\nbreak;\ncase 63:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');\nbreak;\ncase 64:\nthis.$ = $$[$0-7];yy.addVertex($$[$0-7],$$[$0-1],'rect',undefined,undefined,undefined, Object.fromEntries([[$$[$0-5], $$[$0-3]]]));\nbreak;\ncase 65:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');\nbreak;\ncase 66:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');\nbreak;\ncase 67:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');\nbreak;\ncase 68:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');\nbreak;\ncase 69:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');\nbreak;\ncase 70:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');\nbreak;\ncase 71:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');\nbreak;\ncase 72:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');\nbreak;\ncase 73:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');\nbreak;\ncase 74:\n /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);\nbreak;\ncase 75:\n$$[$0-1].text = $$[$0];this.$ = $$[$0-1];\nbreak;\ncase 76: case 77:\n$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];\nbreak;\ncase 78:\nthis.$ = $$[$0];\nbreak;\ncase 79:\nvar inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length,\"text\":$$[$0-1]};\nbreak;\ncase 80:\nvar inf = yy.destructLink($$[$0]);this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length};\nbreak;\ncase 81:\nthis.$ = $$[$0-1];\nbreak;\ncase 83: case 97: case 153:\nthis.$=$$[$0-1]+''+$$[$0];\nbreak;\ncase 98: case 99:\nthis.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);\nbreak;\ncase 100:\nthis.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);\nbreak;\ncase 101: case 109:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 102: case 110:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 103:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 104:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-4], $$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-4], $$[$0]);\nbreak;\ncase 105: case 111:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 106: case 112:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 107: case 113:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);\nbreak;\ncase 108: case 114:\nthis.$ = $$[$0-5];yy.setLink($$[$0-5], $$[$0-4], $$[$0]);yy.setTooltip($$[$0-5], $$[$0-2]);\nbreak;\ncase 115:\nthis.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);\nbreak;\ncase 116: case 118:\nthis.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);\nbreak;\ncase 117:\nthis.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);\nbreak;\ncase 119:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);\nbreak;\ncase 120:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);\nbreak;\ncase 121:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);\nbreak;\ncase 122:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);\nbreak;\ncase 123: case 125:\nthis.$ = [$$[$0]]\nbreak;\ncase 124: case 126:\n$$[$0-2].push($$[$0]);this.$ = $$[$0-2];\nbreak;\ncase 128:\nthis.$ = $$[$0-1] + $$[$0];\nbreak;\ncase 150:\nthis.$=$$[$0]\nbreak;\ncase 151:\nthis.$=$$[$0-1]+''+$$[$0]\nbreak;\ncase 156:\nthis.$='v';\nbreak;\ncase 157:\nthis.$='-';\nbreak;\ncase 158:\n this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 159:\n this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 160:\n this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 161:\n this.$={stmt:'dir', value:'LR'};\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},o($V4,$V5,{17:11}),{7:12,13:[1,13]},{16:14,21:$V1,22:$V2,24:$V3},{16:15,21:$V1,22:$V2,24:$V3},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{8:64,10:[1,65],15:$VD},o([10,15],[2,6]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{20:[1,68],21:[1,69],22:$VE,27:67,30:70},o($VF,[2,11]),o($VF,[2,12]),o($VF,[2,13]),o($VF,[2,14]),o($VF,[2,15]),o($VF,[2,16]),{9:72,20:$VG,21:$VH,23:$VI,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:$VG,21:$VH,23:$VI},{9:81,20:$VG,21:$VH,23:$VI},{9:82,20:$VG,21:$VH,23:$VI},{9:83,20:$VG,21:$VH,23:$VI},{9:84,20:$VG,21:$VH,23:$VI},{9:86,20:$VG,21:$VH,22:[1,85],23:$VI},o($VF,[2,44]),{45:[1,87]},{47:[1,88]},o($VF,[2,47]),o($VJ,[2,54],{30:89,22:$VE}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:$VK,52:$VL,66:$VM,67:$VN,84:[1,97],91:$VO,97:96,98:[1,94],100:[1,95],105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($VF,[2,158]),o($VF,[2,159]),o($VF,[2,160]),o($VF,[2,161]),o($V_,[2,55],{53:[1,116]}),o($V$,[2,74],{116:129,40:[1,117],52:$Ve,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:$Vf,67:$Vg,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC}),o($V01,[2,150]),o($V01,[2,175]),o($V01,[2,176]),o($V01,[2,177]),o($V01,[2,178]),o($V01,[2,179]),o($V01,[2,180]),o($V01,[2,181]),o($V01,[2,182]),o($V01,[2,183]),o($V01,[2,184]),o($V01,[2,185]),o($V01,[2,186]),o($V01,[2,187]),o($V01,[2,188]),o($V01,[2,189]),o($V01,[2,190]),{9:130,20:$VG,21:$VH,23:$VI},{11:131,14:[1,132]},o($V11,[2,8]),o($V4,[2,20]),o($V4,[2,26]),o($V4,[2,27]),{21:[1,133]},o($V21,[2,34],{30:134,22:$VE}),o($VF,[2,35]),{50:135,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},o($V31,[2,48]),o($V31,[2,49]),o($V31,[2,50]),o($V41,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:$V51,24:$V61,26:$V71,38:$V81,39:139,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),o($VF,[2,36]),o($VF,[2,37]),o($VF,[2,38]),o($VF,[2,39]),o($VF,[2,40]),{22:$V51,24:$V61,26:$V71,38:$V81,39:163,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vo1,$V5,{17:164}),o($VF,[2,45]),o($VF,[2,46]),o($VJ,[2,53],{52:$Vp1}),{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:166,102:[1,167],105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{95:[1,168],103:169,105:[1,170]},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,95:[1,171],97:172,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:173,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,101],{22:[1,174],99:[1,175]}),o($V11,[2,105],{22:[1,176]}),o($V11,[2,109],{115:100,117:178,22:[1,177],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,111],{22:[1,179]}),o($Vq1,[2,152]),o($Vq1,[2,154]),o($Vq1,[2,155]),o($Vq1,[2,156]),o($Vq1,[2,157]),o($Vr1,[2,162]),o($Vr1,[2,163]),o($Vr1,[2,164]),o($Vr1,[2,165]),o($Vr1,[2,166]),o($Vr1,[2,167]),o($Vr1,[2,168]),o($Vr1,[2,169]),o($Vr1,[2,170]),o($Vr1,[2,171]),o($Vr1,[2,172]),o($Vr1,[2,173]),o($Vr1,[2,174]),{52:$Ve,54:180,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$V51,24:$V61,26:$V71,38:$V81,39:181,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:182,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:184,42:$V91,52:$VL,57:[1,183],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:185,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:186,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:187,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{66:[1,188]},{22:$V51,24:$V61,26:$V71,38:$V81,39:189,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:190,42:$V91,52:$VL,66:$VM,67:$VN,71:[1,191],73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:192,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:193,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:194,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V01,[2,151]),o($Vs1,[2,3]),{8:195,15:$VD},{15:[2,7]},o($V4,[2,28]),o($V21,[2,33]),o($VJ,[2,51],{30:196,22:$VE}),o($V41,[2,75],{22:[1,197]}),{22:[1,198]},{22:$V51,24:$V61,26:$V71,38:$V81,39:199,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,82:[1,200],83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vr1,[2,82]),o($Vr1,[2,84]),o($Vr1,[2,140]),o($Vr1,[2,141]),o($Vr1,[2,142]),o($Vr1,[2,143]),o($Vr1,[2,144]),o($Vr1,[2,145]),o($Vr1,[2,146]),o($Vr1,[2,147]),o($Vr1,[2,148]),o($Vr1,[2,149]),o($Vr1,[2,85]),o($Vr1,[2,86]),o($Vr1,[2,87]),o($Vr1,[2,88]),o($Vr1,[2,89]),o($Vr1,[2,90]),o($Vr1,[2,91]),o($Vr1,[2,92]),o($Vr1,[2,93]),o($Vr1,[2,94]),o($Vr1,[2,95]),{9:203,20:$VG,21:$VH,22:$V51,23:$VI,24:$V61,26:$V71,38:$V81,40:[1,202],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,204],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$VE,30:205},{22:[1,206],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},o($Vt1,[2,123]),{22:[1,211]},{22:[1,212],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:[1,213],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{84:[1,214]},o($V11,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},o($Vq1,[2,153]),{84:[1,219],101:[1,220]},o($V_,[2,57],{116:129,52:$Ve,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC}),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,221],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,56:[1,222],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:223,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,58:[1,224],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,60:[1,225],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,62:[1,226],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,64:[1,227],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{67:[1,228]},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,70:[1,229],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,72:[1,230],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:231,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,232],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,75:[1,233],77:[1,234],81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,75:[1,236],77:[1,235],81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{9:237,20:$VG,21:$VH,23:$VI},o($VJ,[2,52],{52:$Vp1}),o($V41,[2,77]),o($V41,[2,76]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,68:[1,238],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V41,[2,79]),o($Vr1,[2,83]),{22:$V51,24:$V61,26:$V71,38:$V81,39:239,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vo1,$V5,{17:240}),o($VF,[2,43]),{51:241,52:$Ve,54:46,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:242,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:256,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:257,102:$Vy1,104:[1,258],105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:259,102:$Vy1,104:[1,260],105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{105:[1,261]},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:262,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:263,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:264,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,102]),{84:[1,265]},o($V11,[2,106],{22:[1,266]}),o($V11,[2,107]),o($V11,[2,110]),o($V11,[2,112],{22:[1,267]}),o($V11,[2,113]),o($V$,[2,58]),o($V$,[2,59]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,58:[1,268],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,66]),o($V$,[2,61]),o($V$,[2,62]),o($V$,[2,63]),{66:[1,269]},o($V$,[2,65]),o($V$,[2,67]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,72:[1,270],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,69]),o($V$,[2,70]),o($V$,[2,72]),o($V$,[2,71]),o($V$,[2,73]),o($Vs1,[2,4]),o([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,271],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,272],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},o($V_,[2,56]),o($V11,[2,115],{106:$VF1}),o($VG1,[2,125],{108:274,22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1}),o($VH1,[2,127]),o($VH1,[2,129]),o($VH1,[2,130]),o($VH1,[2,131]),o($VH1,[2,132]),o($VH1,[2,133]),o($VH1,[2,134]),o($VH1,[2,135]),o($VH1,[2,136]),o($VH1,[2,137]),o($VH1,[2,138]),o($VH1,[2,139]),o($V11,[2,116],{106:$VF1}),o($V11,[2,117],{106:$VF1}),{22:[1,275]},o($V11,[2,118],{106:$VF1}),{22:[1,276]},o($Vt1,[2,124]),o($V11,[2,98],{106:$VF1}),o($V11,[2,99],{106:$VF1}),o($V11,[2,100],{115:100,117:178,26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:$VG,21:$VH,23:$VI},o($VF,[2,42]),{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,107:283,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},o($VH1,[2,128]),{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:284,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:285,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,108]),o($V11,[2,114]),o($V$,[2,60]),{22:$V51,24:$V61,26:$V71,38:$V81,39:286,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,68]),o($Vo1,$V5,{17:287}),o($VG1,[2,126],{108:274,22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1}),o($V11,[2,121],{115:100,117:178,22:[1,288],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,122],{115:100,117:178,22:[1,289],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,290],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,291],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:292,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:293,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},o($V$,[2,64]),o($VF,[2,41]),o($V11,[2,119],{106:$VF1}),o($V11,[2,120],{106:$VF1})],\ndefaultActions: {2:[2,1],9:[2,5],10:[2,2],132:[2,7]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 12; \nbreak;\ncase 1: this.begin('type_directive'); return 13; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 10; \nbreak;\ncase 3: this.popState(); this.popState(); return 15; \nbreak;\ncase 4:return 14;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7: this.begin(\"acc_title\");return 44; \nbreak;\ncase 8: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 9: this.begin(\"acc_descr\");return 46; \nbreak;\ncase 10: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 11: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 12: this.popState(); \nbreak;\ncase 13:return \"acc_descr_multiline_value\";\nbreak;\ncase 14:this.begin(\"string\");\nbreak;\ncase 15:this.popState();\nbreak;\ncase 16:return \"STR\";\nbreak;\ncase 17:return 86;\nbreak;\ncase 18:return 95;\nbreak;\ncase 19:return 87;\nbreak;\ncase 20:return 104;\nbreak;\ncase 21:return 88;\nbreak;\ncase 22:return 89;\nbreak;\ncase 23:this.begin(\"href\");\nbreak;\ncase 24:this.popState();\nbreak;\ncase 25:return 100;\nbreak;\ncase 26:this.begin(\"callbackname\");\nbreak;\ncase 27:this.popState();\nbreak;\ncase 28:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 29:return 98;\nbreak;\ncase 30:this.popState();\nbreak;\ncase 31:return 99;\nbreak;\ncase 32:this.begin(\"click\");\nbreak;\ncase 33:this.popState();\nbreak;\ncase 34:return 90;\nbreak;\ncase 35:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 36:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 37:return 38;\nbreak;\ncase 38:return 42;\nbreak;\ncase 39:return 101;\nbreak;\ncase 40:return 101;\nbreak;\ncase 41:return 101;\nbreak;\ncase 42:return 101;\nbreak;\ncase 43: this.popState(); return 25; \nbreak;\ncase 44: this.popState(); return 26; \nbreak;\ncase 45: this.popState(); return 26; \nbreak;\ncase 46: this.popState(); return 26; \nbreak;\ncase 47: this.popState(); return 26; \nbreak;\ncase 48: this.popState(); return 26; \nbreak;\ncase 49: this.popState(); return 26; \nbreak;\ncase 50: this.popState(); return 26; \nbreak;\ncase 51: this.popState(); return 26; \nbreak;\ncase 52: this.popState(); return 26; \nbreak;\ncase 53: this.popState(); return 26; \nbreak;\ncase 54:return 118;\nbreak;\ncase 55:return 119;\nbreak;\ncase 56:return 120;\nbreak;\ncase 57:return 121;\nbreak;\ncase 58: return 105;\nbreak;\ncase 59:return 111;\nbreak;\ncase 60:return 53;\nbreak;\ncase 61:return 67;\nbreak;\ncase 62:return 52;\nbreak;\ncase 63:return 20;\nbreak;\ncase 64:return 106;\nbreak;\ncase 65:return 126;\nbreak;\ncase 66:return 82;\nbreak;\ncase 67:return 82;\nbreak;\ncase 68:return 82;\nbreak;\ncase 69:return 81;\nbreak;\ncase 70:return 81;\nbreak;\ncase 71:return 81;\nbreak;\ncase 72:return 59;\nbreak;\ncase 73:return 60;\nbreak;\ncase 74:return 61;\nbreak;\ncase 75:return 62;\nbreak;\ncase 76:return 63;\nbreak;\ncase 77:return 64;\nbreak;\ncase 78:return 65;\nbreak;\ncase 79:return 69;\nbreak;\ncase 80:return 70;\nbreak;\ncase 81:return 55;\nbreak;\ncase 82:return 56;\nbreak;\ncase 83:return 109;\nbreak;\ncase 84:return 112;\nbreak;\ncase 85:return 127;\nbreak;\ncase 86:return 124;\nbreak;\ncase 87:return 113;\nbreak;\ncase 88:return 125;\nbreak;\ncase 89:return 125;\nbreak;\ncase 90:return 114;\nbreak;\ncase 91:return 73;\nbreak;\ncase 92:return 92;\nbreak;\ncase 93:return 'SEP';\nbreak;\ncase 94:return 91;\nbreak;\ncase 95:return 66;\nbreak;\ncase 96:return 75;\nbreak;\ncase 97:return 74;\nbreak;\ncase 98:return 77;\nbreak;\ncase 99:return 76;\nbreak;\ncase 100:return 122;\nbreak;\ncase 101:return 123;\nbreak;\ncase 102:return 68;\nbreak;\ncase 103:return 57;\nbreak;\ncase 104:return 58;\nbreak;\ncase 105:return 40;\nbreak;\ncase 106:return 41;\nbreak;\ncase 107:return 71\nbreak;\ncase 108:return 72\nbreak;\ncase 109:return 133;\nbreak;\ncase 110:return 21;\nbreak;\ncase 111:return 22;\nbreak;\ncase 112:return 23;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)[^\\n]*)/,/^(?:[^\\}]%%[^\\n]*)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:style\\b)/,/^(?:default\\b)/,/^(?:linkStyle\\b)/,/^(?:interpolate\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:click[\\s]+)/,/^(?:[\\s\\n])/,/^(?:[^\\s\\n]*)/,/^(?:graph\\b)/,/^(?:flowchart\\b)/,/^(?:subgraph\\b)/,/^(?:end\\b\\s*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:(\\r?\\n)*\\s*\\n)/,/^(?:\\s*LR\\b)/,/^(?:\\s*RL\\b)/,/^(?:\\s*TB\\b)/,/^(?:\\s*BT\\b)/,/^(?:\\s*TD\\b)/,/^(?:\\s*BR\\b)/,/^(?:\\s*<)/,/^(?:\\s*>)/,/^(?:\\s*\\^)/,/^(?:\\s*v\\b)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\\*)/,/^(?:\\s*[xo<]?--+[-xo>]\\s*)/,/^(?:\\s*[xo<]?==+[=xo>]\\s*)/,/^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,/^(?:\\s*[xo<]?--\\s*)/,/^(?:\\s*[xo<]?==\\s*)/,/^(?:\\s*[xo<]?-\\.\\s*)/,/^(?:\\(-)/,/^(?:-\\))/,/^(?:\\(\\[)/,/^(?:\\]\\))/,/^(?:\\[\\[)/,/^(?:\\]\\])/,/^(?:\\[\\|)/,/^(?:\\[\\()/,/^(?:\\)\\])/,/^(?:\\(\\(\\()/,/^(?:\\)\\)\\))/,/^(?:-)/,/^(?:\\.)/,/^(?:[\\_])/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\\^)/,/^(?:\\\\\\|)/,/^(?:v\\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\\\\])/,/^(?:\\[\\/)/,/^(?:\\/\\])/,/^(?:\\[\\\\)/,/^(?:[!\"#$%&'*+,-.`?\\\\_/])/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\|)/,/^(?:\\()/,/^(?:\\))/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\{)/,/^(?:\\})/,/^(?:\")/,/^(?:(\\r?\\n)+)/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[30,31],\"inclusive\":false},\"callbackname\":{\"rules\":[27,28,29],\"inclusive\":false},\"href\":{\"rules\":[24,25],\"inclusive\":false},\"click\":{\"rules\":[33,34],\"inclusive\":false},\"vertex\":{\"rules\":[],\"inclusive\":false},\"dir\":{\"rules\":[43,44,45,46,47,48,49,50,51,52,53],\"inclusive\":false},\"acc_descr_multiline\":{\"rules\":[12,13],\"inclusive\":false},\"acc_descr\":{\"rules\":[10],\"inclusive\":false},\"acc_title\":{\"rules\":[8],\"inclusive\":false},\"string\":{\"rules\":[15,16],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,24],$Vd=[1,25],$Ve=[1,26],$Vf=[1,28],$Vg=[1,30],$Vh=[1,33],$Vi=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"gantt\":5,\"document\":6,\"EOF\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NL\":11,\"dateFormat\":12,\"inclusiveEndDates\":13,\"topAxis\":14,\"axisFormat\":15,\"excludes\":16,\"includes\":17,\"todayMarker\":18,\"title\":19,\"acc_title\":20,\"acc_title_value\":21,\"acc_descr\":22,\"acc_descr_value\":23,\"acc_descr_multiline_value\":24,\"section\":25,\"clickStatement\":26,\"taskTxt\":27,\"taskData\":28,\"openDirective\":29,\"typeDirective\":30,\"closeDirective\":31,\":\":32,\"argDirective\":33,\"click\":34,\"callbackname\":35,\"callbackargs\":36,\"href\":37,\"clickStatementDebug\":38,\"open_directive\":39,\"type_directive\":40,\"arg_directive\":41,\"close_directive\":42,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"gantt\",7:\"EOF\",9:\"SPACE\",11:\"NL\",12:\"dateFormat\",13:\"inclusiveEndDates\",14:\"topAxis\",15:\"axisFormat\",16:\"excludes\",17:\"includes\",18:\"todayMarker\",19:\"title\",20:\"acc_title\",21:\"acc_title_value\",22:\"acc_descr\",23:\"acc_descr_value\",24:\"acc_descr_multiline_value\",25:\"section\",27:\"taskTxt\",28:\"taskData\",32:\":\",34:\"click\",35:\"callbackname\",36:\"callbackargs\",37:\"href\",39:\"open_directive\",40:\"type_directive\",41:\"arg_directive\",42:\"close_directive\"},\nproductions_: [0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[26,2],[26,3],[26,3],[26,4],[26,3],[26,4],[26,2],[38,2],[38,3],[38,3],[38,4],[38,3],[38,4],[38,2],[29,1],[30,1],[33,1],[31,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 2:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 9:\nyy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 10:\nyy.enableInclusiveEndDates();this.$=$$[$0].substr(18);\nbreak;\ncase 11:\nyy.TopAxis();this.$=$$[$0].substr(8);\nbreak;\ncase 12:\nyy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 13:\nyy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 14:\nyy.setIncludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 15:\nyy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);\nbreak;\ncase 16:\nyy.setDiagramTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 18: case 19:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 20:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 22:\nyy.addTask($$[$0-1],$$[$0]);this.$='task';\nbreak;\ncase 26:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);\nbreak;\ncase 27:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 28:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);\nbreak;\ncase 29:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);\nbreak;\ncase 30:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);\nbreak;\ncase 31:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);\nbreak;\ncase 32:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 33: case 39:\nthis.$=$$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 34: case 35: case 37:\nthis.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 36: case 38:\nthis.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 40:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 41:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 42:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 43:\n yy.parseDirective('}%%', 'close_directive', 'gantt'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:$V0,29:4,39:$V1},{1:[3]},{3:6,4:2,5:$V0,29:4,39:$V1},o($V2,[2,3],{6:7}),{30:8,40:[1,9]},{40:[2,40]},{1:[2,1]},{4:29,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,22:$Vc,24:$Vd,25:$Ve,26:27,27:$Vf,29:4,34:$Vg,39:$V1},{31:31,32:[1,32],42:$Vh},o([32,42],[2,41]),o($V2,[2,8],{1:[2,2]}),o($V2,[2,4]),{4:29,10:34,12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,22:$Vc,24:$Vd,25:$Ve,26:27,27:$Vf,29:4,34:$Vg,39:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),{21:[1,35]},{23:[1,36]},o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),{28:[1,37]},o($V2,[2,23]),{35:[1,38],37:[1,39]},{11:[1,40]},{33:41,41:[1,42]},{11:[2,43]},o($V2,[2,5]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,22]),o($V2,[2,26],{36:[1,43],37:[1,44]}),o($V2,[2,32],{35:[1,45]}),o($Vi,[2,24]),{31:46,42:$Vh},{42:[2,42]},o($V2,[2,27],{37:[1,47]}),o($V2,[2,28]),o($V2,[2,30],{36:[1,48]}),{11:[1,49]},o($V2,[2,29]),o($V2,[2,31]),o($Vi,[2,25])],\ndefaultActions: {5:[2,40],6:[2,1],33:[2,43],42:[2,42]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 39; \nbreak;\ncase 1: this.begin('type_directive'); return 40; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 32; \nbreak;\ncase 3: this.popState(); this.popState(); return 42; \nbreak;\ncase 4:return 41;\nbreak;\ncase 5: this.begin(\"acc_title\");return 20; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 22; \nbreak;\ncase 8: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 9: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 10: this.popState(); \nbreak;\ncase 11:return \"acc_descr_multiline_value\";\nbreak;\ncase 12:/* skip comments */\nbreak;\ncase 13:/* skip comments */\nbreak;\ncase 14:/* do nothing */\nbreak;\ncase 15:return 11;\nbreak;\ncase 16:/* skip whitespace */\nbreak;\ncase 17:/* skip comments */\nbreak;\ncase 18:/* skip comments */\nbreak;\ncase 19:this.begin(\"href\");\nbreak;\ncase 20:this.popState();\nbreak;\ncase 21:return 37;\nbreak;\ncase 22:this.begin(\"callbackname\");\nbreak;\ncase 23:this.popState();\nbreak;\ncase 24:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 25:return 35;\nbreak;\ncase 26:this.popState();\nbreak;\ncase 27:return 36;\nbreak;\ncase 28:this.begin(\"click\");\nbreak;\ncase 29:this.popState();\nbreak;\ncase 30:return 34;\nbreak;\ncase 31:return 5;\nbreak;\ncase 32:return 12;\nbreak;\ncase 33:return 13;\nbreak;\ncase 34:return 14;\nbreak;\ncase 35:return 15;\nbreak;\ncase 36:return 17;\nbreak;\ncase 37:return 16;\nbreak;\ncase 38:return 18;\nbreak;\ncase 39:return 'date';\nbreak;\ncase 40:return 19;\nbreak;\ncase 41:return 'accDescription'\nbreak;\ncase 42:return 25;\nbreak;\ncase 43:return 27;\nbreak;\ncase 44:return 28;\nbreak;\ncase 45:return 32;\nbreak;\ncase 46:return 7;\nbreak;\ncase 47:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:%%(?!\\{)*[^\\n]*)/i,/^(?:[^\\}]%%*[^\\n]*)/i,/^(?:%%*[^\\n]*[\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:href[\\s]+[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:call[\\s]+)/i,/^(?:\\([\\s]*\\))/i,/^(?:\\()/i,/^(?:[^(]*)/i,/^(?:\\))/i,/^(?:[^)]*)/i,/^(?:click[\\s]+)/i,/^(?:[\\s\\n])/i,/^(?:[^\\s\\n]*)/i,/^(?:gantt\\b)/i,/^(?:dateFormat\\s[^#\\n;]+)/i,/^(?:inclusiveEndDates\\b)/i,/^(?:topAxis\\b)/i,/^(?:axisFormat\\s[^#\\n;]+)/i,/^(?:includes\\s[^#\\n;]+)/i,/^(?:excludes\\s[^#\\n;]+)/i,/^(?:todayMarker\\s[^\\n;]+)/i,/^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accDescription\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[10,11],\"inclusive\":false},\"acc_descr\":{\"rules\":[8],\"inclusive\":false},\"acc_title\":{\"rules\":[6],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[26,27],\"inclusive\":false},\"callbackname\":{\"rules\":[23,24,25],\"inclusive\":false},\"href\":{\"rules\":[20,21],\"inclusive\":false},\"click\":{\"rules\":[29,30],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,7],$V2=[1,5],$V3=[1,9],$V4=[1,6],$V5=[2,6],$V6=[1,16],$V7=[6,8,14,20,22,24,25,27,29,32,35,37,49,53],$V8=[8,14,20,22,24,25,27,29,32,35,37],$V9=[8,13,14,20,22,24,25,27,29,32,35,37],$Va=[1,26],$Vb=[6,8,14,49,53],$Vc=[8,14,53],$Vd=[1,64],$Ve=[1,65],$Vf=[1,66],$Vg=[8,14,33,36,41,53];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"GG\":6,\"document\":7,\"EOF\":8,\":\":9,\"DIR\":10,\"options\":11,\"body\":12,\"OPT\":13,\"NL\":14,\"line\":15,\"statement\":16,\"commitStatement\":17,\"mergeStatement\":18,\"cherryPickStatement\":19,\"acc_title\":20,\"acc_title_value\":21,\"acc_descr\":22,\"acc_descr_value\":23,\"acc_descr_multiline_value\":24,\"section\":25,\"branchStatement\":26,\"CHECKOUT\":27,\"ID\":28,\"BRANCH\":29,\"ORDER\":30,\"NUM\":31,\"CHERRY_PICK\":32,\"COMMIT_ID\":33,\"STR\":34,\"MERGE\":35,\"COMMIT_TAG\":36,\"COMMIT\":37,\"commit_arg\":38,\"COMMIT_TYPE\":39,\"commitType\":40,\"COMMIT_MSG\":41,\"NORMAL\":42,\"REVERSE\":43,\"HIGHLIGHT\":44,\"openDirective\":45,\"typeDirective\":46,\"closeDirective\":47,\"argDirective\":48,\"open_directive\":49,\"type_directive\":50,\"arg_directive\":51,\"close_directive\":52,\";\":53,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",20:\"acc_title\",21:\"acc_title_value\",22:\"acc_descr\",23:\"acc_descr_value\",24:\"acc_descr_multiline_value\",25:\"section\",27:\"CHECKOUT\",28:\"ID\",29:\"BRANCH\",30:\"ORDER\",31:\"NUM\",32:\"CHERRY_PICK\",33:\"COMMIT_ID\",34:\"STR\",35:\"MERGE\",36:\"COMMIT_TAG\",37:\"COMMIT\",39:\"COMMIT_TYPE\",41:\"COMMIT_MSG\",42:\"NORMAL\",43:\"REVERSE\",44:\"HIGHLIGHT\",49:\"open_directive\",50:\"type_directive\",51:\"arg_directive\",52:\"close_directive\",53:\";\"},\nproductions_: [0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[18,2],[18,4],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[38,0],[38,1],[40,1],[40,1],[40,1],[5,3],[5,5],[45,1],[46,1],[48,1],[47,1],[4,1],[4,1],[4,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 3:\n return $$[$0]; \nbreak;\ncase 4:\n return $$[$0-1]; \nbreak;\ncase 5:\nyy.setDirection($$[$0-3]); return $$[$0-1];\nbreak;\ncase 7:\n yy.setOptions($$[$0-1]); this.$ = $$[$0]\nbreak;\ncase 8:\n$$[$0-1] +=$$[$0]; this.$=$$[$0-1]\nbreak;\ncase 10:\nthis.$ = []\nbreak;\ncase 11:\n$$[$0-1].push($$[$0]); this.$=$$[$0-1];\nbreak;\ncase 12:\nthis.$ =$$[$0-1]\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 18: case 19:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 20:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 22:\nyy.checkout($$[$0])\nbreak;\ncase 23:\nyy.branch($$[$0])\nbreak;\ncase 24:\nyy.branch($$[$0-2], $$[$0])\nbreak;\ncase 25:\nyy.cherryPick($$[$0])\nbreak;\ncase 26:\nyy.merge($$[$0])\nbreak;\ncase 27:\nyy.merge($$[$0-2], $$[$0])\nbreak;\ncase 28:\nyy.commit($$[$0])\nbreak;\ncase 29:\nyy.commit('','',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 30:\nyy.commit('','',$$[$0],'')\nbreak;\ncase 31:\nyy.commit('','',$$[$0],$$[$0-2])\nbreak;\ncase 32:\nyy.commit('','',$$[$0-2],$$[$0])\nbreak;\ncase 33:\nyy.commit('',$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 34:\nyy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 35:\nyy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 36:\nyy.commit('',$$[$0-2],$$[$0],'')\nbreak;\ncase 37:\nyy.commit('',$$[$0],$$[$0-2],'')\nbreak;\ncase 38:\nyy.commit('',$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 39:\nyy.commit('',$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 40:\nyy.commit('',$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 41:\nyy.commit('',$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 42:\nyy.commit('',$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 43:\nyy.commit('',$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 44:\nyy.commit($$[$0],'',yy.commitType.NORMAL,'')\nbreak;\ncase 45:\nyy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 46:\nyy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 47:\nyy.commit($$[$0-2],'',$$[$0],'')\nbreak;\ncase 48:\nyy.commit($$[$0],'',$$[$0-2],'')\nbreak;\ncase 49:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')\nbreak;\ncase 50:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 51:\nyy.commit($$[$0-4],'',$$[$0-2],$$[$0])\nbreak;\ncase 52:\nyy.commit($$[$0-4],'',$$[$0],$$[$0-2])\nbreak;\ncase 53:\nyy.commit($$[$0-2],'',$$[$0-4],$$[$0])\nbreak;\ncase 54:\nyy.commit($$[$0],'',$$[$0-4],$$[$0-2])\nbreak;\ncase 55:\nyy.commit($$[$0],'',$$[$0-2],$$[$0-4])\nbreak;\ncase 56:\nyy.commit($$[$0-2],'',$$[$0],$$[$0-4])\nbreak;\ncase 57:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],'')\nbreak;\ncase 58:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],'')\nbreak;\ncase 59:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],'')\nbreak;\ncase 60:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],'')\nbreak;\ncase 61:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],'')\nbreak;\ncase 62:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],'')\nbreak;\ncase 63:\nyy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 64:\nyy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 65:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 66:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 67:\nyy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 68:\nyy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 69:\nyy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 70:\nyy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 71:\nyy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 72:\nyy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 73:\nyy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 74:\nyy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 75:\nyy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])\nbreak;\ncase 76:\nyy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])\nbreak;\ncase 77:\nyy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])\nbreak;\ncase 78:\nyy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])\nbreak;\ncase 79:\nyy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])\nbreak;\ncase 80:\nyy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])\nbreak;\ncase 81:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])\nbreak;\ncase 82:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])\nbreak;\ncase 83:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])\nbreak;\ncase 84:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])\nbreak;\ncase 85:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])\nbreak;\ncase 86:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])\nbreak;\ncase 87:\nyy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])\nbreak;\ncase 88:\nyy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])\nbreak;\ncase 89:\nyy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])\nbreak;\ncase 90:\nyy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])\nbreak;\ncase 91:\nyy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])\nbreak;\ncase 92:\nyy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])\nbreak;\ncase 93:\nthis.$ = \"\"\nbreak;\ncase 94:\nthis.$=$$[$0]\nbreak;\ncase 95:\n this.$=yy.commitType.NORMAL;\nbreak;\ncase 96:\n this.$=yy.commitType.REVERSE;\nbreak;\ncase 97:\n this.$=yy.commitType.HIGHLIGHT;\nbreak;\ncase 100:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 101:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 102:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 103:\n yy.parseDirective('}%%', 'close_directive', 'gitGraph'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,104]),o($V7,[2,105]),o($V7,[2,106]),{46:17,50:[1,18]},{50:[2,100]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:$V5,11:15,14:$V6},{9:[1,21]},o($V8,[2,10],{12:22,13:[1,23]}),o($V9,[2,9]),{9:[1,25],47:24,52:$Va},o([9,52],[2,101]),{1:[2,3]},{8:[1,27]},{7:28,8:$V5,11:15,14:$V6},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],35:[1,42],37:[1,41]},o($V9,[2,8]),o($Vb,[2,98]),{48:45,51:[1,46]},o($Vb,[2,103]),{1:[2,4]},{8:[1,47]},o($V8,[2,11]),{4:48,8:$V1,14:$V2,53:$V4},o($V8,[2,13]),o($Vc,[2,14]),o($Vc,[2,15]),o($Vc,[2,16]),{21:[1,49]},{23:[1,50]},o($Vc,[2,19]),o($Vc,[2,20]),o($Vc,[2,21]),{28:[1,51]},o($Vc,[2,93],{38:52,33:[1,55],34:[1,57],36:[1,53],39:[1,54],41:[1,56]}),{28:[1,58]},{33:[1,59]},{28:[1,60]},{47:61,52:$Va},{52:[2,102]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,17]),o($Vc,[2,18]),o($Vc,[2,22]),o($Vc,[2,28]),{34:[1,62]},{40:63,42:$Vd,43:$Ve,44:$Vf},{34:[1,67]},{34:[1,68]},o($Vc,[2,94]),o($Vc,[2,26],{36:[1,69]}),{34:[1,70]},o($Vc,[2,23],{30:[1,71]}),o($Vb,[2,99]),o($Vc,[2,29],{33:[1,73],39:[1,72],41:[1,74]}),o($Vc,[2,30],{33:[1,76],36:[1,75],41:[1,77]}),o($Vg,[2,95]),o($Vg,[2,96]),o($Vg,[2,97]),o($Vc,[2,33],{36:[1,78],39:[1,79],41:[1,80]}),o($Vc,[2,44],{33:[1,83],36:[1,81],39:[1,82]}),{34:[1,84]},o($Vc,[2,25]),{31:[1,85]},{40:86,42:$Vd,43:$Ve,44:$Vf},{34:[1,87]},{34:[1,88]},{34:[1,89]},{34:[1,90]},{34:[1,91]},{34:[1,92]},{40:93,42:$Vd,43:$Ve,44:$Vf},{34:[1,94]},{34:[1,95]},{40:96,42:$Vd,43:$Ve,44:$Vf},{34:[1,97]},o($Vc,[2,27]),o($Vc,[2,24]),o($Vc,[2,31],{33:[1,98],41:[1,99]}),o($Vc,[2,35],{39:[1,100],41:[1,101]}),o($Vc,[2,45],{33:[1,103],39:[1,102]}),o($Vc,[2,32],{33:[1,104],41:[1,105]}),o($Vc,[2,37],{36:[1,106],41:[1,107]}),o($Vc,[2,48],{33:[1,109],36:[1,108]}),o($Vc,[2,34],{39:[1,110],41:[1,111]}),o($Vc,[2,36],{36:[1,112],41:[1,113]}),o($Vc,[2,49],{36:[1,115],39:[1,114]}),o($Vc,[2,46],{33:[1,117],39:[1,116]}),o($Vc,[2,47],{33:[1,119],36:[1,118]}),o($Vc,[2,50],{36:[1,121],39:[1,120]}),{34:[1,122]},{34:[1,123]},{40:124,42:$Vd,43:$Ve,44:$Vf},{34:[1,125]},{40:126,42:$Vd,43:$Ve,44:$Vf},{34:[1,127]},{34:[1,128]},{34:[1,129]},{34:[1,130]},{34:[1,131]},{34:[1,132]},{34:[1,133]},{40:134,42:$Vd,43:$Ve,44:$Vf},{34:[1,135]},{34:[1,136]},{34:[1,137]},{40:138,42:$Vd,43:$Ve,44:$Vf},{34:[1,139]},{40:140,42:$Vd,43:$Ve,44:$Vf},{34:[1,141]},{34:[1,142]},{34:[1,143]},{40:144,42:$Vd,43:$Ve,44:$Vf},{34:[1,145]},o($Vc,[2,42],{41:[1,146]}),o($Vc,[2,55],{33:[1,147]}),o($Vc,[2,43],{41:[1,148]}),o($Vc,[2,66],{39:[1,149]}),o($Vc,[2,56],{33:[1,150]}),o($Vc,[2,65],{39:[1,151]}),o($Vc,[2,41],{41:[1,152]}),o($Vc,[2,54],{33:[1,153]}),o($Vc,[2,40],{41:[1,154]}),o($Vc,[2,60],{36:[1,155]}),o($Vc,[2,53],{33:[1,156]}),o($Vc,[2,59],{36:[1,157]}),o($Vc,[2,39],{41:[1,158]}),o($Vc,[2,67],{39:[1,159]}),o($Vc,[2,38],{41:[1,160]}),o($Vc,[2,61],{36:[1,161]}),o($Vc,[2,62],{36:[1,162]}),o($Vc,[2,68],{39:[1,163]}),o($Vc,[2,52],{33:[1,164]}),o($Vc,[2,63],{39:[1,165]}),o($Vc,[2,51],{33:[1,166]}),o($Vc,[2,57],{36:[1,167]}),o($Vc,[2,58],{36:[1,168]}),o($Vc,[2,64],{39:[1,169]}),{34:[1,170]},{34:[1,171]},{34:[1,172]},{40:173,42:$Vd,43:$Ve,44:$Vf},{34:[1,174]},{40:175,42:$Vd,43:$Ve,44:$Vf},{34:[1,176]},{34:[1,177]},{34:[1,178]},{34:[1,179]},{34:[1,180]},{34:[1,181]},{34:[1,182]},{40:183,42:$Vd,43:$Ve,44:$Vf},{34:[1,184]},{34:[1,185]},{34:[1,186]},{40:187,42:$Vd,43:$Ve,44:$Vf},{34:[1,188]},{40:189,42:$Vd,43:$Ve,44:$Vf},{34:[1,190]},{34:[1,191]},{34:[1,192]},{40:193,42:$Vd,43:$Ve,44:$Vf},o($Vc,[2,83]),o($Vc,[2,84]),o($Vc,[2,81]),o($Vc,[2,82]),o($Vc,[2,86]),o($Vc,[2,85]),o($Vc,[2,90]),o($Vc,[2,89]),o($Vc,[2,88]),o($Vc,[2,87]),o($Vc,[2,92]),o($Vc,[2,91]),o($Vc,[2,80]),o($Vc,[2,79]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,75]),o($Vc,[2,76]),o($Vc,[2,74]),o($Vc,[2,73]),o($Vc,[2,72]),o($Vc,[2,71]),o($Vc,[2,69]),o($Vc,[2,70])],\ndefaultActions: {9:[2,100],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,102],47:[2,5]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 49; \nbreak;\ncase 1: this.begin('type_directive'); return 50; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 9; \nbreak;\ncase 3: this.popState(); this.popState(); return 52; \nbreak;\ncase 4:return 51;\nbreak;\ncase 5: this.begin(\"acc_title\");return 20; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 22; \nbreak;\ncase 8: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 9: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 10: this.popState(); \nbreak;\ncase 11:return \"acc_descr_multiline_value\";\nbreak;\ncase 12:/*{console.log('New line');return 14;}*/ return 14;\nbreak;\ncase 13:/* skip all whitespace */\nbreak;\ncase 14:/* skip comments */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16:return 6;\nbreak;\ncase 17:return 37;\nbreak;\ncase 18:return 33;\nbreak;\ncase 19:return 39;\nbreak;\ncase 20:return 41;\nbreak;\ncase 21:return 42;\nbreak;\ncase 22:return 43;\nbreak;\ncase 23:return 44;\nbreak;\ncase 24:return 36;\nbreak;\ncase 25:return 29;\nbreak;\ncase 26:return 30;\nbreak;\ncase 27:return 35;\nbreak;\ncase 28:return 32;\nbreak;\ncase 29:return 27;\nbreak;\ncase 30:return 10;\nbreak;\ncase 31:return 10;\nbreak;\ncase 32:return 9;\nbreak;\ncase 33:return 'CARET'\nbreak;\ncase 34:this.begin(\"options\"); //\nbreak;\ncase 35:this.popState(); // not used anymore in the renderer, fixed for backward compatibility\nbreak;\ncase 36:return 13; //\nbreak;\ncase 37:this.begin(\"string\");\nbreak;\ncase 38:this.popState();\nbreak;\ncase 39:return 34;\nbreak;\ncase 40:return 31;\nbreak;\ncase 41:return 28;\nbreak;\ncase 42:return 8;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gitGraph\\b)/i,/^(?:commit\\b)/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\\b)/i,/^(?:REVERSE\\b)/i,/^(?:HIGHLIGHT\\b)/i,/^(?:tag:)/i,/^(?:branch\\b)/i,/^(?:order:)/i,/^(?:merge\\b)/i,/^(?:cherry-pick\\b)/i,/^(?:checkout\\b)/i,/^(?:LR\\b)/i,/^(?:BT\\b)/i,/^(?::)/i,/^(?:\\^)/i,/^(?:options\\r?\\n)/i,/^(?:[ \\r\\n\\t]+end\\b)/i,/^(?:[\\s\\S]+(?=[ \\r\\n\\t]+end))/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[0-9]+)/i,/^(?:[a-zA-Z][-_\\./a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[10,11],\"inclusive\":false},\"acc_descr\":{\"rules\":[8],\"inclusive\":false},\"acc_title\":{\"rules\":[6],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"options\":{\"rules\":[35,36],\"inclusive\":false},\"string\":{\"rules\":[38,39],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,37,40,41,42],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"info\":4,\"document\":5,\"EOF\":6,\"line\":7,\"statement\":8,\"NL\":9,\"showInfo\":10,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"info\",6:\"EOF\",9:\"NL\",10:\"showInfo\"},\nproductions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return yy; \nbreak;\ncase 4:\n \nbreak;\ncase 6:\n yy.setInfo(true); \nbreak;\n}\n},\ntable: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6])],\ndefaultActions: {4:[2,1]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\r\n\t// Pre-lexer code can go here\r\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 4 ;\nbreak;\ncase 1:return 9 ;\nbreak;\ncase 2:return 'space';\nbreak;\ncase 3:return 10;\nbreak;\ncase 4:return 6 ;\nbreak;\ncase 5:return 'TXT' ;\nbreak;\n}\n},\nrules: [/^(?:info\\b)/i,/^(?:[\\s\\n\\r]+)/i,/^(?:[\\s]+)/i,/^(?:showInfo\\b)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,9],$V5=[1,11,13,15,17,19,20,26,27,28,29],$V6=[2,5],$V7=[1,6,11,13,15,17,19,20,26,27,28,29],$V8=[26,27,28],$V9=[2,8],$Va=[1,18],$Vb=[1,19],$Vc=[1,20],$Vd=[1,21],$Ve=[1,22],$Vf=[1,23],$Vg=[1,28],$Vh=[6,26,27,28,29];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"PIE\":6,\"document\":7,\"showData\":8,\"line\":9,\"statement\":10,\"txt\":11,\"value\":12,\"title\":13,\"title_value\":14,\"acc_title\":15,\"acc_title_value\":16,\"acc_descr\":17,\"acc_descr_value\":18,\"acc_descr_multiline_value\":19,\"section\":20,\"openDirective\":21,\"typeDirective\":22,\"closeDirective\":23,\":\":24,\"argDirective\":25,\"NEWLINE\":26,\";\":27,\"EOF\":28,\"open_directive\":29,\"type_directive\":30,\"arg_directive\":31,\"close_directive\":32,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"PIE\",8:\"showData\",11:\"txt\",12:\"value\",13:\"title\",14:\"title_value\",15:\"acc_title\",16:\"acc_title_value\",17:\"acc_descr\",18:\"acc_descr_value\",19:\"acc_descr_multiline_value\",20:\"section\",24:\":\",26:\"NEWLINE\",27:\";\",28:\"EOF\",29:\"open_directive\",30:\"type_directive\",31:\"arg_directive\",32:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\nyy.setShowData(true);\nbreak;\ncase 7:\n this.$ = $$[$0-1] \nbreak;\ncase 9:\n yy.addSection($$[$0-1],yy.cleanupValue($$[$0])); \nbreak;\ncase 10:\n this.$=$$[$0].trim();yy.setDiagramTitle(this.$); \nbreak;\ncase 11:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 12: case 13:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 14:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 21:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 22:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 23:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 24:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},{3:11,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},o($V5,$V6,{7:12,8:[1,13]}),o($V7,[2,18]),o($V7,[2,19]),o($V7,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},o($V8,$V9,{21:8,9:16,10:17,5:24,1:[2,3],11:$Va,13:$Vb,15:$Vc,17:$Vd,19:$Ve,20:$Vf,29:$V4}),o($V5,$V6,{7:25}),{23:26,24:[1,27],32:$Vg},o([24,32],[2,22]),o($V5,[2,6]),{4:29,26:$V1,27:$V2,28:$V3},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},o($V8,[2,13]),o($V8,[2,14]),o($V8,[2,15]),o($V8,$V9,{21:8,9:16,10:17,5:24,1:[2,4],11:$Va,13:$Vb,15:$Vc,17:$Vd,19:$Ve,20:$Vf,29:$V4}),o($Vh,[2,16]),{25:34,31:[1,35]},o($Vh,[2,24]),o($V5,[2,7]),o($V8,[2,9]),o($V8,[2,10]),o($V8,[2,11]),o($V8,[2,12]),{23:36,32:$Vg},{32:[2,23]},o($Vh,[2,17])],\ndefaultActions: {9:[2,21],10:[2,1],11:[2,2],35:[2,23]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 29; \nbreak;\ncase 1: this.begin('type_directive'); return 30; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 24; \nbreak;\ncase 3: this.popState(); this.popState(); return 32; \nbreak;\ncase 4:return 31;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */{ /*console.log('');*/ }\nbreak;\ncase 7:return 26;\nbreak;\ncase 8:/* do nothing */\nbreak;\ncase 9:/* ignore */\nbreak;\ncase 10: this.begin(\"title\");return 13; \nbreak;\ncase 11: this.popState(); return \"title_value\"; \nbreak;\ncase 12: this.begin(\"acc_title\");return 15; \nbreak;\ncase 13: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 14: this.begin(\"acc_descr\");return 17; \nbreak;\ncase 15: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 16: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 17: this.popState(); \nbreak;\ncase 18:return \"acc_descr_multiline_value\";\nbreak;\ncase 19: this.begin(\"string\"); \nbreak;\ncase 20: this.popState(); \nbreak;\ncase 21: return \"txt\"; \nbreak;\ncase 22:return 6;\nbreak;\ncase 23:return 8;\nbreak;\ncase 24:return \"value\";\nbreak;\ncase 25:return 28;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n\\r]+)/i,/^(?:%%[^\\n]*)/i,/^(?:[\\s]+)/i,/^(?:title\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:pie\\b)/i,/^(?:showData\\b)/i,/^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i,/^(?:$)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[17,18],\"inclusive\":false},\"acc_descr\":{\"rules\":[15],\"inclusive\":false},\"acc_title\":{\"rules\":[13],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"title\":{\"rules\":[11],\"inclusive\":false},\"string\":{\"rules\":[20,21],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,8],$V5=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],$V6=[1,22],$V7=[2,13],$V8=[1,26],$V9=[1,27],$Va=[1,28],$Vb=[1,29],$Vc=[1,30],$Vd=[1,31],$Ve=[1,24],$Vf=[1,32],$Vg=[1,33],$Vh=[1,36],$Vi=[71,72],$Vj=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],$Vk=[1,56],$Vl=[1,57],$Vm=[1,58],$Vn=[1,59],$Vo=[1,60],$Vp=[1,61],$Vq=[1,62],$Vr=[62,63],$Vs=[1,74],$Vt=[1,70],$Vu=[1,71],$Vv=[1,72],$Vw=[1,73],$Vx=[1,75],$Vy=[1,79],$Vz=[1,80],$VA=[1,77],$VB=[1,78],$VC=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"NEWLINE\":5,\"RD\":6,\"diagram\":7,\"EOF\":8,\"openDirective\":9,\"typeDirective\":10,\"closeDirective\":11,\":\":12,\"argDirective\":13,\"acc_title\":14,\"acc_title_value\":15,\"acc_descr\":16,\"acc_descr_value\":17,\"acc_descr_multiline_value\":18,\"open_directive\":19,\"type_directive\":20,\"arg_directive\":21,\"close_directive\":22,\"requirementDef\":23,\"elementDef\":24,\"relationshipDef\":25,\"requirementType\":26,\"requirementName\":27,\"STRUCT_START\":28,\"requirementBody\":29,\"ID\":30,\"COLONSEP\":31,\"id\":32,\"TEXT\":33,\"text\":34,\"RISK\":35,\"riskLevel\":36,\"VERIFYMTHD\":37,\"verifyType\":38,\"STRUCT_STOP\":39,\"REQUIREMENT\":40,\"FUNCTIONAL_REQUIREMENT\":41,\"INTERFACE_REQUIREMENT\":42,\"PERFORMANCE_REQUIREMENT\":43,\"PHYSICAL_REQUIREMENT\":44,\"DESIGN_CONSTRAINT\":45,\"LOW_RISK\":46,\"MED_RISK\":47,\"HIGH_RISK\":48,\"VERIFY_ANALYSIS\":49,\"VERIFY_DEMONSTRATION\":50,\"VERIFY_INSPECTION\":51,\"VERIFY_TEST\":52,\"ELEMENT\":53,\"elementName\":54,\"elementBody\":55,\"TYPE\":56,\"type\":57,\"DOCREF\":58,\"ref\":59,\"END_ARROW_L\":60,\"relationship\":61,\"LINE\":62,\"END_ARROW_R\":63,\"CONTAINS\":64,\"COPIES\":65,\"DERIVES\":66,\"SATISFIES\":67,\"VERIFIES\":68,\"REFINES\":69,\"TRACES\":70,\"unqString\":71,\"qString\":72,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"NEWLINE\",6:\"RD\",8:\"EOF\",12:\":\",14:\"acc_title\",15:\"acc_title_value\",16:\"acc_descr\",17:\"acc_descr_value\",18:\"acc_descr_multiline_value\",19:\"open_directive\",20:\"type_directive\",21:\"arg_directive\",22:\"close_directive\",28:\"STRUCT_START\",30:\"ID\",31:\"COLONSEP\",33:\"TEXT\",35:\"RISK\",37:\"VERIFYMTHD\",39:\"STRUCT_STOP\",40:\"REQUIREMENT\",41:\"FUNCTIONAL_REQUIREMENT\",42:\"INTERFACE_REQUIREMENT\",43:\"PERFORMANCE_REQUIREMENT\",44:\"PHYSICAL_REQUIREMENT\",45:\"DESIGN_CONSTRAINT\",46:\"LOW_RISK\",47:\"MED_RISK\",48:\"HIGH_RISK\",49:\"VERIFY_ANALYSIS\",50:\"VERIFY_DEMONSTRATION\",51:\"VERIFY_INSPECTION\",52:\"VERIFY_TEST\",53:\"ELEMENT\",56:\"TYPE\",58:\"DOCREF\",60:\"END_ARROW_L\",62:\"LINE\",63:\"END_ARROW_R\",64:\"CONTAINS\",65:\"COPIES\",66:\"DERIVES\",67:\"SATISFIES\",68:\"VERIFIES\",69:\"REFINES\",70:\"TRACES\",71:\"unqString\",72:\"qString\"},\nproductions_: [0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 6:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 7: case 8:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 9:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 10:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 11:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 12:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\ncase 13:\n this.$ = [] \nbreak;\ncase 19:\n yy.addRequirement($$[$0-3], $$[$0-4]) \nbreak;\ncase 20:\n yy.setNewReqId($$[$0-2]); \nbreak;\ncase 21:\n yy.setNewReqText($$[$0-2]); \nbreak;\ncase 22:\n yy.setNewReqRisk($$[$0-2]); \nbreak;\ncase 23:\n yy.setNewReqVerifyMethod($$[$0-2]); \nbreak;\ncase 26:\n this.$=yy.RequirementType.REQUIREMENT;\nbreak;\ncase 27:\n this.$=yy.RequirementType.FUNCTIONAL_REQUIREMENT;\nbreak;\ncase 28:\n this.$=yy.RequirementType.INTERFACE_REQUIREMENT;\nbreak;\ncase 29:\n this.$=yy.RequirementType.PERFORMANCE_REQUIREMENT;\nbreak;\ncase 30:\n this.$=yy.RequirementType.PHYSICAL_REQUIREMENT;\nbreak;\ncase 31:\n this.$=yy.RequirementType.DESIGN_CONSTRAINT;\nbreak;\ncase 32:\n this.$=yy.RiskLevel.LOW_RISK;\nbreak;\ncase 33:\n this.$=yy.RiskLevel.MED_RISK;\nbreak;\ncase 34:\n this.$=yy.RiskLevel.HIGH_RISK;\nbreak;\ncase 35:\n this.$=yy.VerifyType.VERIFY_ANALYSIS;\nbreak;\ncase 36:\n this.$=yy.VerifyType.VERIFY_DEMONSTRATION;\nbreak;\ncase 37:\n this.$=yy.VerifyType.VERIFY_INSPECTION;\nbreak;\ncase 38:\n this.$=yy.VerifyType.VERIFY_TEST;\nbreak;\ncase 39:\n yy.addElement($$[$0-3]) \nbreak;\ncase 40:\n yy.setNewElementType($$[$0-2]); \nbreak;\ncase 41:\n yy.setNewElementDocRef($$[$0-2]); \nbreak;\ncase 44:\n yy.addRelationship($$[$0-2], $$[$0], $$[$0-4]) \nbreak;\ncase 45:\n yy.addRelationship($$[$0-2], $$[$0-4], $$[$0]) \nbreak;\ncase 46:\n this.$=yy.Relationships.CONTAINS;\nbreak;\ncase 47:\n this.$=yy.Relationships.COPIES;\nbreak;\ncase 48:\n this.$=yy.Relationships.DERIVES;\nbreak;\ncase 49:\n this.$=yy.Relationships.SATISFIES;\nbreak;\ncase 50:\n this.$=yy.Relationships.VERIFIES;\nbreak;\ncase 51:\n this.$=yy.Relationships.REFINES;\nbreak;\ncase 52:\n this.$=yy.Relationships.TRACES;\nbreak;\n}\n},\ntable: [{3:1,4:2,6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{1:[3]},{3:10,4:2,5:[1,9],6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},o($V5,[2,8]),{20:[2,9]},{3:16,4:2,6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{1:[2,2]},{4:21,5:$V6,7:17,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{11:34,12:[1,35],22:$Vh},o([12,22],[2,10]),o($V5,[2,6]),o($V5,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:$V6,7:38,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:39,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:40,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:41,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:42,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},o($Vi,[2,26]),o($Vi,[2,27]),o($Vi,[2,28]),o($Vi,[2,29]),o($Vi,[2,30]),o($Vi,[2,31]),o($Vj,[2,55]),o($Vj,[2,56]),o($V5,[2,4]),{13:51,21:[1,52]},o($V5,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:$Vk,65:$Vl,66:$Vm,67:$Vn,68:$Vo,69:$Vp,70:$Vq},{61:63,64:$Vk,65:$Vl,66:$Vm,67:$Vn,68:$Vo,69:$Vp,70:$Vq},{11:64,22:$Vh},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},o($Vr,[2,46]),o($Vr,[2,47]),o($Vr,[2,48]),o($Vr,[2,49]),o($Vr,[2,50]),o($Vr,[2,51]),o($Vr,[2,52]),{63:[1,68]},o($V5,[2,5]),{5:$Vs,29:69,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vy,39:$Vz,55:76,56:$VA,58:$VB},{32:81,71:$Vf,72:$Vg},{32:82,71:$Vf,72:$Vg},o($VC,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:$Vs,29:87,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},o($VC,[2,25]),o($VC,[2,39]),{31:[1,88]},{31:[1,89]},{5:$Vy,39:$Vz,55:90,56:$VA,58:$VB},o($VC,[2,43]),o($VC,[2,44]),o($VC,[2,45]),{32:91,71:$Vf,72:$Vg},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},o($VC,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},o($VC,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:$Vs,29:116,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:117,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:118,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:119,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vy,39:$Vz,55:120,56:$VA,58:$VB},{5:$Vy,39:$Vz,55:121,56:$VA,58:$VB},o($VC,[2,20]),o($VC,[2,21]),o($VC,[2,22]),o($VC,[2,23]),o($VC,[2,40]),o($VC,[2,41])],\ndefaultActions: {8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 19; \nbreak;\ncase 1: this.begin('type_directive'); return 20; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 12; \nbreak;\ncase 3: this.popState(); this.popState(); return 22; \nbreak;\ncase 4:return 21;\nbreak;\ncase 5:return 'title';\nbreak;\ncase 6: this.begin(\"acc_title\");return 14; \nbreak;\ncase 7: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 8: this.begin(\"acc_descr\");return 16; \nbreak;\ncase 9: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 10: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 11: this.popState(); \nbreak;\ncase 12:return \"acc_descr_multiline_value\";\nbreak;\ncase 13:return 5;\nbreak;\ncase 14:/* skip all whitespace */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16:/* skip comments */\nbreak;\ncase 17:return 8;\nbreak;\ncase 18:return 6;\nbreak;\ncase 19:return 28;\nbreak;\ncase 20:return 39;\nbreak;\ncase 21:return 31;\nbreak;\ncase 22:return 30;\nbreak;\ncase 23:return 33;\nbreak;\ncase 24:return 35;\nbreak;\ncase 25:return 37;\nbreak;\ncase 26:return 40;\nbreak;\ncase 27:return 41;\nbreak;\ncase 28:return 42;\nbreak;\ncase 29:return 43;\nbreak;\ncase 30:return 44;\nbreak;\ncase 31:return 45;\nbreak;\ncase 32:return 46;\nbreak;\ncase 33:return 47;\nbreak;\ncase 34:return 48;\nbreak;\ncase 35:return 49;\nbreak;\ncase 36:return 50;\nbreak;\ncase 37:return 51;\nbreak;\ncase 38:return 52;\nbreak;\ncase 39:return 53;\nbreak;\ncase 40:return 64;\nbreak;\ncase 41:return 65;\nbreak;\ncase 42:return 66;\nbreak;\ncase 43:return 67;\nbreak;\ncase 44:return 68;\nbreak;\ncase 45:return 69;\nbreak;\ncase 46:return 70;\nbreak;\ncase 47:return 56;\nbreak;\ncase 48:return 58;\nbreak;\ncase 49:return 60;\nbreak;\ncase 50:return 63;\nbreak;\ncase 51:return 62;\nbreak;\ncase 52: this.begin(\"string\"); \nbreak;\ncase 53: this.popState(); \nbreak;\ncase 54: return \"qString\"; \nbreak;\ncase 55: yy_.yytext = yy_.yytext.trim(); return 71;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/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,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?::)/i,/^(?:id\\b)/i,/^(?:text\\b)/i,/^(?:risk\\b)/i,/^(?:verifyMethod\\b)/i,/^(?:requirement\\b)/i,/^(?:functionalRequirement\\b)/i,/^(?:interfaceRequirement\\b)/i,/^(?:performanceRequirement\\b)/i,/^(?:physicalRequirement\\b)/i,/^(?:designConstraint\\b)/i,/^(?:low\\b)/i,/^(?:medium\\b)/i,/^(?:high\\b)/i,/^(?:analysis\\b)/i,/^(?:demonstration\\b)/i,/^(?:inspection\\b)/i,/^(?:test\\b)/i,/^(?:element\\b)/i,/^(?:contains\\b)/i,/^(?:copies\\b)/i,/^(?:derives\\b)/i,/^(?:satisfies\\b)/i,/^(?:verifies\\b)/i,/^(?:refines\\b)/i,/^(?:traces\\b)/i,/^(?:type\\b)/i,/^(?:docref\\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[11,12],\"inclusive\":false},\"acc_descr\":{\"rules\":[9],\"inclusive\":false},\"acc_title\":{\"rules\":[7],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"unqString\":{\"rules\":[],\"inclusive\":false},\"token\":{\"rules\":[],\"inclusive\":false},\"string\":{\"rules\":[53,54],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,18],$V8=[1,19],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,29],$Vd=[1,30],$Ve=[1,31],$Vf=[1,32],$Vg=[1,33],$Vh=[1,34],$Vi=[1,35],$Vj=[1,36],$Vk=[1,37],$Vl=[1,38],$Vm=[1,39],$Vn=[1,40],$Vo=[1,43],$Vp=[1,44],$Vq=[1,45],$Vr=[1,46],$Vs=[1,47],$Vt=[1,48],$Vu=[1,51],$Vv=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],$Vw=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,53,58,59,60,61,69,79],$Vx=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,52,53,58,59,60,61,69,79],$Vy=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,51,53,58,59,60,61,69,79],$Vz=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,53,58,59,60,61,69,79],$VA=[67,68,69],$VB=[1,121],$VC=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NEWLINE\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"openDirective\":11,\"typeDirective\":12,\"closeDirective\":13,\":\":14,\"argDirective\":15,\"participant\":16,\"actor\":17,\"AS\":18,\"restOfLine\":19,\"participant_actor\":20,\"signal\":21,\"autonumber\":22,\"NUM\":23,\"off\":24,\"activate\":25,\"deactivate\":26,\"note_statement\":27,\"links_statement\":28,\"link_statement\":29,\"properties_statement\":30,\"details_statement\":31,\"title\":32,\"legacy_title\":33,\"acc_title\":34,\"acc_title_value\":35,\"acc_descr\":36,\"acc_descr_value\":37,\"acc_descr_multiline_value\":38,\"loop\":39,\"end\":40,\"rect\":41,\"opt\":42,\"alt\":43,\"else_sections\":44,\"par\":45,\"par_sections\":46,\"critical\":47,\"option_sections\":48,\"break\":49,\"option\":50,\"and\":51,\"else\":52,\"note\":53,\"placement\":54,\"text2\":55,\"over\":56,\"actor_pair\":57,\"links\":58,\"link\":59,\"properties\":60,\"details\":61,\"spaceList\":62,\",\":63,\"left_of\":64,\"right_of\":65,\"signaltype\":66,\"+\":67,\"-\":68,\"ACTOR\":69,\"SOLID_OPEN_ARROW\":70,\"DOTTED_OPEN_ARROW\":71,\"SOLID_ARROW\":72,\"DOTTED_ARROW\":73,\"SOLID_CROSS\":74,\"DOTTED_CROSS\":75,\"SOLID_POINT\":76,\"DOTTED_POINT\":77,\"TXT\":78,\"open_directive\":79,\"type_directive\":80,\"arg_directive\":81,\"close_directive\":82,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NEWLINE\",7:\"SD\",14:\":\",16:\"participant\",18:\"AS\",19:\"restOfLine\",20:\"participant_actor\",22:\"autonumber\",23:\"NUM\",24:\"off\",25:\"activate\",26:\"deactivate\",32:\"title\",33:\"legacy_title\",34:\"acc_title\",35:\"acc_title_value\",36:\"acc_descr\",37:\"acc_descr_value\",38:\"acc_descr_multiline_value\",39:\"loop\",40:\"end\",41:\"rect\",42:\"opt\",43:\"alt\",45:\"par\",47:\"critical\",49:\"break\",50:\"option\",51:\"and\",52:\"else\",53:\"note\",56:\"over\",58:\"links\",59:\"link\",60:\"properties\",61:\"details\",63:\",\",64:\"left_of\",65:\"right_of\",67:\"+\",68:\"-\",69:\"ACTOR\",70:\"SOLID_OPEN_ARROW\",71:\"DOTTED_OPEN_ARROW\",72:\"SOLID_ARROW\",73:\"DOTTED_ARROW\",74:\"SOLID_CROSS\",75:\"DOTTED_CROSS\",76:\"SOLID_POINT\",77:\"DOTTED_POINT\",78:\"TXT\",79:\"open_directive\",80:\"type_directive\",81:\"arg_directive\",82:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[48,1],[48,4],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[62,2],[62,1],[57,3],[57,1],[54,1],[54,1],[21,5],[21,5],[21,4],[17,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[55,1],[11,1],[12,1],[15,1],[13,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.apply($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$=[]; \nbreak;\ncase 12:\n$$[$0-3].type='addParticipant';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 13:\n$$[$0-1].type='addParticipant';this.$=$$[$0-1];\nbreak;\ncase 14:\n$$[$0-3].type='addActor';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 15:\n$$[$0-1].type='addActor'; this.$=$$[$0-1];\nbreak;\ncase 17:\n this.$= {type:'sequenceIndex',sequenceIndex: Number($$[$0-2]), sequenceIndexStep:Number($$[$0-1]), sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};\nbreak;\ncase 18:\n this.$ = {type:'sequenceIndex',sequenceIndex: Number($$[$0-1]), sequenceIndexStep:1, sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};\nbreak;\ncase 19:\n this.$ = {type:'sequenceIndex', sequenceVisible:false, signalType:yy.LINETYPE.AUTONUMBER};\nbreak;\ncase 20:\nthis.$ = {type:'sequenceIndex', sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER}; \nbreak;\ncase 21:\nthis.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};\nbreak;\ncase 22:\nthis.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};\nbreak;\ncase 28:\nyy.setDiagramTitle($$[$0].substring(6));this.$=$$[$0].substring(6);\nbreak;\ncase 29:\nyy.setDiagramTitle($$[$0].substring(7));this.$=$$[$0].substring(7);\nbreak;\ncase 30:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 31: case 32:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 33:\n\n\t\t$$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});\n\t\t$$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 34:\n\n\t\t$$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });\n\t\t$$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 35:\n\n\t\t$$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});\n\t\t$$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 36:\n\n\t\t// Alt start\n\t\t$$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});\n\t\t// Content in alt is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 37:\n\n\t\t// Parallel start\n\t\t$$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});\n\t\t// Content in par is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 38:\n\n\t\t// critical start\n\t\t$$[$0-1].unshift({type: 'criticalStart', criticalText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.CRITICAL_START});\n\t\t// Content in critical is already in $$[$0-1]\n\t\t// critical end\n\t\t$$[$0-1].push({type: 'criticalEnd', signalType: yy.LINETYPE.CRITICAL_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 39:\n\n\t\t$$[$0-1].unshift({type: 'breakStart', breakText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.BREAK_START});\n\t\t$$[$0-1].push({type: 'breakEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.BREAK_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 42:\n this.$ = $$[$0-3].concat([{type: 'option', optionText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.CRITICAL_OPTION}, $$[$0]]); \nbreak;\ncase 44:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 46:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 47:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 48:\n\n\t\t// Coerce actor_pair into a [to, from, ...] array\n\t\t$$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);\n\t\t$$[$0-2][0] = $$[$0-2][0].actor;\n\t\t$$[$0-2][1] = $$[$0-2][1].actor;\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];\nbreak;\ncase 49:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 50:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 51:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 52:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 55:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 56:\n this.$ = $$[$0]; \nbreak;\ncase 57:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 58:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 59:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}\n\t ]\nbreak;\ncase 60:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}\n\t ]\nbreak;\ncase 61:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 62:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 63:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 64:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 65:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 66:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 67:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 68:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 69:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 70:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 71:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 72:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 73:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 74:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 75:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},o([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,47,49,53,58,59,60,61,69,79],$V4,{8:11}),{12:12,80:[1,13]},{80:[2,72]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{13:49,14:[1,50],82:$Vu},o([14,82],[2,73]),o($Vv,[2,6]),{6:41,10:52,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},o($Vv,[2,8]),o($Vv,[2,9]),{17:53,69:$Vt},{17:54,69:$Vt},{5:[1,55]},{5:[1,58],23:[1,56],24:[1,57]},{17:59,69:$Vt},{17:60,69:$Vt},{5:[1,61]},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},o($Vv,[2,28]),o($Vv,[2,29]),{35:[1,66]},{37:[1,67]},o($Vv,[2,32]),{19:[1,68]},{19:[1,69]},{19:[1,70]},{19:[1,71]},{19:[1,72]},{19:[1,73]},{19:[1,74]},o($Vv,[2,40]),{66:75,70:[1,76],71:[1,77],72:[1,78],73:[1,79],74:[1,80],75:[1,81],76:[1,82],77:[1,83]},{54:84,56:[1,85],64:[1,86],65:[1,87]},{17:88,69:$Vt},{17:89,69:$Vt},{17:90,69:$Vt},{17:91,69:$Vt},o([5,18,63,70,71,72,73,74,75,76,77,78],[2,62]),{5:[1,92]},{15:93,81:[1,94]},{5:[2,75]},o($Vv,[2,7]),{5:[1,96],18:[1,95]},{5:[1,98],18:[1,97]},o($Vv,[2,16]),{5:[1,100],23:[1,99]},{5:[1,101]},o($Vv,[2,20]),{5:[1,102]},{5:[1,103]},o($Vv,[2,23]),o($Vv,[2,24]),o($Vv,[2,25]),o($Vv,[2,26]),o($Vv,[2,27]),o($Vv,[2,30]),o($Vv,[2,31]),o($Vw,$V4,{8:104}),o($Vw,$V4,{8:105}),o($Vw,$V4,{8:106}),o($Vx,$V4,{44:107,8:108}),o($Vy,$V4,{46:109,8:110}),o($Vz,$V4,{48:111,8:112}),o($Vw,$V4,{8:113}),{17:116,67:[1,114],68:[1,115],69:$Vt},o($VA,[2,63]),o($VA,[2,64]),o($VA,[2,65]),o($VA,[2,66]),o($VA,[2,67]),o($VA,[2,68]),o($VA,[2,69]),o($VA,[2,70]),{17:117,69:$Vt},{17:119,57:118,69:$Vt},{69:[2,57]},{69:[2,58]},{55:120,78:$VB},{55:122,78:$VB},{55:123,78:$VB},{55:124,78:$VB},o($VC,[2,10]),{13:125,82:$Vu},{82:[2,74]},{19:[1,126]},o($Vv,[2,13]),{19:[1,127]},o($Vv,[2,15]),{5:[1,128]},o($Vv,[2,18]),o($Vv,[2,19]),o($Vv,[2,21]),o($Vv,[2,22]),{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,129],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,130],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,131],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,132]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,45],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,52:[1,133],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,134]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,43],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,51:[1,135],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,136]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,41],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,50:[1,137],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,138],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{17:139,69:$Vt},{17:140,69:$Vt},{55:141,78:$VB},{55:142,78:$VB},{55:143,78:$VB},{63:[1,144],78:[2,56]},{5:[2,49]},{5:[2,71]},{5:[2,50]},{5:[2,51]},{5:[2,52]},{5:[1,145]},{5:[1,146]},{5:[1,147]},o($Vv,[2,17]),o($Vv,[2,33]),o($Vv,[2,34]),o($Vv,[2,35]),o($Vv,[2,36]),{19:[1,148]},o($Vv,[2,37]),{19:[1,149]},o($Vv,[2,38]),{19:[1,150]},o($Vv,[2,39]),{55:151,78:$VB},{55:152,78:$VB},{5:[2,61]},{5:[2,47]},{5:[2,48]},{17:153,69:$Vt},o($VC,[2,11]),o($Vv,[2,12]),o($Vv,[2,14]),o($Vx,$V4,{8:108,44:154}),o($Vy,$V4,{8:110,46:155}),o($Vz,$V4,{8:112,48:156}),{5:[2,59]},{5:[2,60]},{78:[2,55]},{40:[2,46]},{40:[2,44]},{40:[2,42]}],\ndefaultActions: {7:[2,72],8:[2,1],9:[2,2],10:[2,3],51:[2,75],86:[2,57],87:[2,58],94:[2,74],120:[2,49],121:[2,71],122:[2,50],123:[2,51],124:[2,52],141:[2,61],142:[2,47],143:[2,48],151:[2,59],152:[2,60],153:[2,55],154:[2,46],155:[2,44],156:[2,42]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 79; \nbreak;\ncase 1: this.begin('type_directive'); return 80; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 82; \nbreak;\ncase 4:return 81;\nbreak;\ncase 5:return 5;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip same-line whitespace */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:return 23;\nbreak;\ncase 12: this.begin('ID'); return 16; \nbreak;\ncase 13: this.begin('ID'); return 20; \nbreak;\ncase 14: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 69; \nbreak;\ncase 15: this.popState(); this.popState(); this.begin('LINE'); return 18; \nbreak;\ncase 16: this.popState(); this.popState(); return 5; \nbreak;\ncase 17: this.begin('LINE'); return 39; \nbreak;\ncase 18: this.begin('LINE'); return 41; \nbreak;\ncase 19: this.begin('LINE'); return 42; \nbreak;\ncase 20: this.begin('LINE'); return 43; \nbreak;\ncase 21: this.begin('LINE'); return 52; \nbreak;\ncase 22: this.begin('LINE'); return 45; \nbreak;\ncase 23: this.begin('LINE'); return 51; \nbreak;\ncase 24: this.begin('LINE'); return 47; \nbreak;\ncase 25: this.begin('LINE'); return 50; \nbreak;\ncase 26: this.begin('LINE'); return 49; \nbreak;\ncase 27: this.popState(); return 19; \nbreak;\ncase 28:return 40;\nbreak;\ncase 29:return 64;\nbreak;\ncase 30:return 65;\nbreak;\ncase 31:return 58;\nbreak;\ncase 32:return 59;\nbreak;\ncase 33:return 60;\nbreak;\ncase 34:return 61;\nbreak;\ncase 35:return 56;\nbreak;\ncase 36:return 53;\nbreak;\ncase 37: this.begin('ID'); return 25; \nbreak;\ncase 38: this.begin('ID'); return 26; \nbreak;\ncase 39:return 32;\nbreak;\ncase 40:return 33;\nbreak;\ncase 41: this.begin(\"acc_title\");return 34; \nbreak;\ncase 42: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 43: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 44: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 45: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 46: this.popState(); \nbreak;\ncase 47:return \"acc_descr_multiline_value\";\nbreak;\ncase 48:return 7;\nbreak;\ncase 49:return 22;\nbreak;\ncase 50:return 24;\nbreak;\ncase 51:return 63;\nbreak;\ncase 52:return 5;\nbreak;\ncase 53: yy_.yytext = yy_.yytext.trim(); return 69; \nbreak;\ncase 54:return 72;\nbreak;\ncase 55:return 73;\nbreak;\ncase 56:return 70;\nbreak;\ncase 57:return 71;\nbreak;\ncase 58:return 74;\nbreak;\ncase 59:return 75;\nbreak;\ncase 60:return 76;\nbreak;\ncase 61:return 77;\nbreak;\ncase 62:return 78;\nbreak;\ncase 63:return 67;\nbreak;\ncase 64:return 68;\nbreak;\ncase 65:return 5;\nbreak;\ncase 66:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[0-9]+(?=[ \\n]+))/i,/^(?:participant\\b)/i,/^(?:actor\\b)/i,/^(?:[^\\->:\\n,;]+?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i,/^(?:as\\b)/i,/^(?:(?:))/i,/^(?:loop\\b)/i,/^(?:rect\\b)/i,/^(?:opt\\b)/i,/^(?:alt\\b)/i,/^(?:else\\b)/i,/^(?:par\\b)/i,/^(?:and\\b)/i,/^(?:critical\\b)/i,/^(?:option\\b)/i,/^(?:break\\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i,/^(?:end\\b)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:links\\b)/i,/^(?:link\\b)/i,/^(?:properties\\b)/i,/^(?:details\\b)/i,/^(?:over\\b)/i,/^(?:note\\b)/i,/^(?:activate\\b)/i,/^(?:deactivate\\b)/i,/^(?:title\\s[^#\\n;]+)/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,/^(?:sequenceDiagram\\b)/i,/^(?:autonumber\\b)/i,/^(?:off\\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\\)])/i,/^(?:--[\\)])/i,/^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[46,47],\"inclusive\":false},\"acc_descr\":{\"rules\":[44],\"inclusive\":false},\"acc_title\":{\"rules\":[42],\"inclusive\":false},\"open_directive\":{\"rules\":[1,8],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3,8],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4,8],\"inclusive\":false},\"ID\":{\"rules\":[7,8,14],\"inclusive\":false},\"ALIAS\":{\"rules\":[7,8,15,16],\"inclusive\":false},\"LINE\":{\"rules\":[7,8,27],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,45,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,33],$Vc=[1,23],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,35],$Vl=[1,36],$Vm=[1,37],$Vn=[1,38],$Vo=[1,34],$Vp=[1,41],$Vq=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vr=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vs=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vt=[4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NL\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"idStatement\":11,\"DESCR\":12,\"-->\":13,\"HIDE_EMPTY\":14,\"scale\":15,\"WIDTH\":16,\"COMPOSIT_STATE\":17,\"STRUCT_START\":18,\"STRUCT_STOP\":19,\"STATE_DESCR\":20,\"AS\":21,\"ID\":22,\"FORK\":23,\"JOIN\":24,\"CHOICE\":25,\"CONCURRENT\":26,\"note\":27,\"notePosition\":28,\"NOTE_TEXT\":29,\"direction\":30,\"acc_title\":31,\"acc_title_value\":32,\"acc_descr\":33,\"acc_descr_value\":34,\"acc_descr_multiline_value\":35,\"openDirective\":36,\"typeDirective\":37,\"closeDirective\":38,\":\":39,\"argDirective\":40,\"direction_tb\":41,\"direction_bt\":42,\"direction_rl\":43,\"direction_lr\":44,\"eol\":45,\";\":46,\"EDGE_STATE\":47,\"left_of\":48,\"right_of\":49,\"open_directive\":50,\"type_directive\":51,\"arg_directive\":52,\"close_directive\":53,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NL\",7:\"SD\",12:\"DESCR\",13:\"-->\",14:\"HIDE_EMPTY\",15:\"scale\",16:\"WIDTH\",17:\"COMPOSIT_STATE\",18:\"STRUCT_START\",19:\"STRUCT_STOP\",20:\"STATE_DESCR\",21:\"AS\",22:\"ID\",23:\"FORK\",24:\"JOIN\",25:\"CHOICE\",26:\"CONCURRENT\",27:\"note\",29:\"NOTE_TEXT\",31:\"acc_title\",32:\"acc_title_value\",33:\"acc_descr\",34:\"acc_descr_value\",35:\"acc_descr_multiline_value\",39:\":\",41:\"direction_tb\",42:\"direction_bt\",43:\"direction_rl\",44:\"direction_lr\",46:\";\",47:\"EDGE_STATE\",48:\"left_of\",49:\"right_of\",50:\"open_directive\",51:\"type_directive\",52:\"arg_directive\",53:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[45,1],[45,1],[11,1],[11,1],[28,1],[28,1],[36,1],[37,1],[40,1],[38,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n\n if($$[$0]!='nl'){\n $$[$0-1].push($$[$0]);this.$ = $$[$0-1]\n }\n // console.warn('Got document',$$[$0-1], $$[$0]);\n \nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$='nl';\nbreak;\ncase 10:\n /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};\nbreak;\ncase 11:\n /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};\nbreak;\ncase 12:\n\n /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};\n \nbreak;\ncase 13:\n\n /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-3], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0-1] ,type: 'default', description: ''}, description: $$[$0].substr(1).trim()};\n \nbreak;\ncase 17:\n\n /* console.warn('Adding document for state without id ', $$[$0-3]);*/\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }\n \nbreak;\ncase 18:\n\n var id=$$[$0];\n var description = $$[$0-2].trim();\n if($$[$0].match(':')){\n var parts = $$[$0].split(':');\n id=parts[0];\n description = [description, parts[1]];\n }\n this.$={stmt: 'state', id: id, type: 'default', description: description};\n\n \nbreak;\ncase 19:\n\n // console.warn('Adding document for state with id zxzx', $$[$0-3], $$[$0-2], yy.getDirection()); yy.addDocument($$[$0-3]);\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }\n \nbreak;\ncase 20:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'fork' }\n \nbreak;\ncase 21:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'join' }\n \nbreak;\ncase 22:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'choice' }\n \nbreak;\ncase 23:\n\n this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }\n \nbreak;\ncase 24:\n\n /* console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/\n this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};\n \nbreak;\ncase 28:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 29: case 30:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 33:\n yy.setDirection('TB');this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 34:\n yy.setDirection('BT');this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 35:\n yy.setDirection('RL'); this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 36:\n yy.setDirection('LR');this.$={stmt:'dir', value:'LR'};\nbreak;\ncase 39: case 40:\nthis.$=$$[$0];\nbreak;\ncase 43:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 44:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 45:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 46:\n yy.parseDirective('}%%', 'close_directive', 'state'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},o([1,4,5,14,15,17,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$V4,{8:11}),{37:12,51:[1,13]},{51:[2,43]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},{38:39,39:[1,40],53:$Vp},o([39,53],[2,44]),o($Vq,[2,6]),{6:28,10:42,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,8]),o($Vq,[2,9]),o($Vq,[2,10],{12:[1,43],13:[1,44]}),o($Vq,[2,14]),{16:[1,45]},o($Vq,[2,16],{18:[1,46]}),{21:[1,47]},o($Vq,[2,20]),o($Vq,[2,21]),o($Vq,[2,22]),o($Vq,[2,23]),{28:48,29:[1,49],48:[1,50],49:[1,51]},o($Vq,[2,26]),o($Vq,[2,27]),{32:[1,52]},{34:[1,53]},o($Vq,[2,30]),o($Vr,[2,39]),o($Vr,[2,40]),o($Vq,[2,33]),o($Vq,[2,34]),o($Vq,[2,35]),o($Vq,[2,36]),o($Vs,[2,31]),{40:54,52:[1,55]},o($Vs,[2,46]),o($Vq,[2,7]),o($Vq,[2,11]),{11:56,22:$Vb,47:$Vo},o($Vq,[2,15]),o($Vt,$V4,{8:57}),{22:[1,58]},{22:[1,59]},{21:[1,60]},{22:[2,41]},{22:[2,42]},o($Vq,[2,28]),o($Vq,[2,29]),{38:61,53:$Vp},{53:[2,45]},o($Vq,[2,12],{12:[1,62]}),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,63],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,18],{18:[1,64]}),{29:[1,65]},{22:[1,66]},o($Vs,[2,32]),o($Vq,[2,13]),o($Vq,[2,17]),o($Vt,$V4,{8:67}),o($Vq,[2,24]),o($Vq,[2,25]),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,68],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,19])],\ndefaultActions: {7:[2,43],8:[2,1],9:[2,2],10:[2,3],50:[2,41],51:[2,42],55:[2,45]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 41;\nbreak;\ncase 1:return 42;\nbreak;\ncase 2:return 43;\nbreak;\ncase 3:return 44;\nbreak;\ncase 4: this.begin('open_directive'); return 50; \nbreak;\ncase 5: this.begin('type_directive'); return 51; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 39; \nbreak;\ncase 7: this.popState(); this.popState(); return 53; \nbreak;\ncase 8:return 52;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */{ /*console.log('Crap after close');*/ }\nbreak;\ncase 11:return 5;\nbreak;\ncase 12:/* skip all whitespace */\nbreak;\ncase 13:/* skip same-line whitespace */\nbreak;\ncase 14:/* skip comments */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15; \nbreak;\ncase 17:return 16;\nbreak;\ncase 18:this.popState();\nbreak;\ncase 19: this.begin(\"acc_title\");return 31; \nbreak;\ncase 20: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 21: this.begin(\"acc_descr\");return 33; \nbreak;\ncase 22: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 23: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 24: this.popState(); \nbreak;\ncase 25:return \"acc_descr_multiline_value\";\nbreak;\ncase 26: /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE'); \nbreak;\ncase 27:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 28:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 29:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 30:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 31:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 32:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 33: return 41;\nbreak;\ncase 34: return 42;\nbreak;\ncase 35: return 43;\nbreak;\ncase 36: return 44;\nbreak;\ncase 37: /*console.log('Starting STATE_STRING zxzx');*/this.begin(\"STATE_STRING\");\nbreak;\ncase 38:this.popState();this.pushState('STATE_ID');return \"AS\";\nbreak;\ncase 39:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 40:this.popState();\nbreak;\ncase 41: /*console.log('Long description:', yy_.yytext);*/return \"STATE_DESCR\";\nbreak;\ncase 42:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;\nbreak;\ncase 43:this.popState();\nbreak;\ncase 44:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;\nbreak;\ncase 45: /*console.log('Ending struct');*/ this.popState(); return 19;\nbreak;\ncase 46:/* nothing */\nbreak;\ncase 47: this.begin('NOTE'); return 27; \nbreak;\ncase 48: this.popState();this.pushState('NOTE_ID');return 48;\nbreak;\ncase 49: this.popState();this.pushState('NOTE_ID');return 49;\nbreak;\ncase 50: this.popState();this.pushState('FLOATING_NOTE');\nbreak;\ncase 51:this.popState();this.pushState('FLOATING_NOTE_ID');return \"AS\";\nbreak;\ncase 52:/**/\nbreak;\ncase 53: /*console.log('Floating note text: ', yy_.yytext);*/return \"NOTE_TEXT\";\nbreak;\ncase 54:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 55: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;\nbreak;\ncase 56: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 29;\nbreak;\ncase 57: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 29;\nbreak;\ncase 58: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 59: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 60: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14; \nbreak;\ncase 61: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 47;\nbreak;\ncase 62: /*console.log('=>ID=',yy_.yytext);*/ return 22;\nbreak;\ncase 63: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12; \nbreak;\ncase 64:return 13;\nbreak;\ncase 65:return 26;\nbreak;\ncase 66:return 5;\nbreak;\ncase 67:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:[\\s]+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:scale\\s+)/i,/^(?:\\d+)/i,/^(?:\\s+width\\b)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:state\\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\\[\\[fork\\]\\])/i,/^(?:.*\\[\\[join\\]\\])/i,/^(?:.*\\[\\[choice\\]\\])/i,/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:[\"])/i,/^(?:\\s*as\\s+)/i,/^(?:[^\\n\\{]*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n\\s\\{]+)/i,/^(?:\\n)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?:[\\n])/i,/^(?:note\\s+)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:\")/i,/^(?:\\s*as\\s*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n]*)/i,/^(?:\\s*[^:\\n\\s\\-]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:[\\s\\S]*?end note\\b)/i,/^(?:stateDiagram\\s+)/i,/^(?:stateDiagram-v2\\s+)/i,/^(?:hide empty description\\b)/i,/^(?:\\[\\*\\])/i,/^(?:[^:\\n\\s\\-\\{]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"LINE\":{\"rules\":[13,14],\"inclusive\":false},\"close_directive\":{\"rules\":[13,14],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8,13,14],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7,13,14],\"inclusive\":false},\"open_directive\":{\"rules\":[5,13,14],\"inclusive\":false},\"struct\":{\"rules\":[13,14,26,33,34,35,36,45,46,47,61,62,63,64,65],\"inclusive\":false},\"FLOATING_NOTE_ID\":{\"rules\":[54],\"inclusive\":false},\"FLOATING_NOTE\":{\"rules\":[51,52,53],\"inclusive\":false},\"NOTE_TEXT\":{\"rules\":[56,57],\"inclusive\":false},\"NOTE_ID\":{\"rules\":[55],\"inclusive\":false},\"NOTE\":{\"rules\":[48,49,50],\"inclusive\":false},\"acc_descr_multiline\":{\"rules\":[24,25],\"inclusive\":false},\"acc_descr\":{\"rules\":[22],\"inclusive\":false},\"acc_title\":{\"rules\":[20],\"inclusive\":false},\"SCALE\":{\"rules\":[17,18],\"inclusive\":false},\"ALIAS\":{\"rules\":[],\"inclusive\":false},\"STATE_ID\":{\"rules\":[39],\"inclusive\":false},\"STATE_STRING\":{\"rules\":[40,41],\"inclusive\":false},\"FORK_STATE\":{\"rules\":[],\"inclusive\":false},\"STATE\":{\"rules\":[13,14,27,28,29,30,31,32,37,38,42,43,44],\"inclusive\":false},\"ID\":{\"rules\":[13,14],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,12,14,15,16,19,21,23,26,44,47,58,59,60,61,62,63,64,66,67],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,17,18,20,22,23,24,26],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,24],$Va=[4,6,9,11,17,18,20,22,23,24,26];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"journey\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"title\":17,\"acc_title\":18,\"acc_title_value\":19,\"acc_descr\":20,\"acc_descr_value\":21,\"acc_descr_multiline_value\":22,\"section\":23,\"taskName\":24,\"taskData\":25,\"open_directive\":26,\"type_directive\":27,\"arg_directive\":28,\"close_directive\":29,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"journey\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",17:\"title\",18:\"acc_title\",19:\"acc_title_value\",20:\"acc_descr\",21:\"acc_descr_value\",22:\"acc_descr_multiline_value\",23:\"section\",24:\"taskName\",25:\"taskData\",26:\"open_directive\",27:\"type_directive\",28:\"arg_directive\",29:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 11:\nyy.setDiagramTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 12:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 13: case 14:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 15:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 16:\nyy.addTask($$[$0-1], $$[$0]);this.$='task';\nbreak;\ncase 18:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 19:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 20:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 21:\n yy.parseDirective('}%%', 'close_directive', 'journey'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,26:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,26:$V1},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:$V3,18:$V4,20:$V5,22:$V6,23:$V7,24:$V8,26:$V1},{1:[2,2]},{14:22,15:[1,23],29:$V9},o([15,29],[2,19]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:21,10:25,12:4,17:$V3,18:$V4,20:$V5,22:$V6,23:$V7,24:$V8,26:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),{19:[1,26]},{21:[1,27]},o($V2,[2,14]),o($V2,[2,15]),{25:[1,28]},o($V2,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},o($V2,[2,5]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,16]),o($Va,[2,9]),{14:32,29:$V9},{29:[2,20]},{11:[1,33]},o($Va,[2,10])],\ndefaultActions: {5:[2,18],7:[2,2],24:[2,21],31:[2,20]},\nparseError: 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},\nparse: 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 lexer = 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 lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.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 function lex() {\n var token;\n token = tstack.pop() || lexer.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 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 (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.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: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: 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(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.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}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError: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 },\n\n// resets the lexer, sets new input\nsetInput: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 },\n\n// consumes and returns one char from the input\ninput: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\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= 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\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\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 ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\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 },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\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.\nreject: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 }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput: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 },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput: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 },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\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\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 ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n 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 // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n 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; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\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 },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState: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 },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules: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 },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState: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 },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 26; \nbreak;\ncase 1: this.begin('type_directive'); return 27; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 3: this.popState(); this.popState(); return 29; \nbreak;\ncase 4:return 28;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:return 11;\nbreak;\ncase 8:/* skip whitespace */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:return 4;\nbreak;\ncase 11:return 17;\nbreak;\ncase 12: this.begin(\"acc_title\");return 18; \nbreak;\ncase 13: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 14: this.begin(\"acc_descr\");return 20; \nbreak;\ncase 15: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 16: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 17: this.popState(); \nbreak;\ncase 18:return \"acc_descr_multiline_value\";\nbreak;\ncase 19:return 23;\nbreak;\ncase 20:return 24;\nbreak;\ncase 21:return 25;\nbreak;\ncase 22:return 15;\nbreak;\ncase 23:return 6;\nbreak;\ncase 24:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:journey\\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,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"acc_descr_multiline\":{\"rules\":[17,18],\"inclusive\":false},\"acc_descr\":{\"rules\":[15],\"inclusive\":false},\"acc_title\":{\"rules\":[13],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/**\n * This method will add a basic title and description element to a chart. The yy parser will need to\n * respond to getAccTitle and getAccDescription, where the title is the title element on the chart,\n * which is generally not displayed and the accDescription is the description element on the chart,\n * which is never displayed.\n *\n * The following charts display their title as a visual and accessibility element: gantt\n *\n * @param yy_parser\n * @param svg\n * @param id\n */\nexport default function addSVGAccessibilityFields(yy_parser, svg, id) {\n if (typeof svg.insert === 'undefined') {\n return;\n }\n\n let title_string = yy_parser.getAccTitle();\n let description = yy_parser.getAccDescription();\n svg.attr('role', 'img').attr('aria-labelledby', 'chart-title-' + id + ' chart-desc-' + id);\n svg\n .insert('desc', ':first-child')\n .attr('id', 'chart-desc-' + id)\n .text(description);\n svg\n .insert('title', ':first-child')\n .attr('id', 'chart-title-' + id)\n .text(title_string);\n}\n","import { sanitizeText as _sanitizeText } from './diagrams/common/common';\nimport { getConfig } from './config';\nlet title = '';\nlet diagramTitle = '';\nlet description = '';\nconst sanitizeText = (txt) => _sanitizeText(txt, getConfig());\n\nexport const clear = function () {\n title = '';\n description = '';\n diagramTitle = '';\n};\n\nexport const setAccTitle = function (txt) {\n title = sanitizeText(txt).replace(/^\\s+/g, '');\n};\n\nexport const getAccTitle = function () {\n return title || diagramTitle;\n};\n\nexport const setAccDescription = function (txt) {\n description = sanitizeText(txt).replace(/\\n\\s+/g, '\\n');\n};\n\nexport const getAccDescription = function () {\n return description;\n};\n\nexport const setDiagramTitle = function (txt) {\n diagramTitle = sanitizeText(txt);\n};\n\nexport const getDiagramTitle = function () {\n return diagramTitle;\n};\n\nexport default {\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle: getDiagramTitle,\n getAccDescription,\n setAccDescription,\n clear,\n};\n","import { assignWithDepth } from './utils';\nimport { log } from './logger';\nimport theme from './themes';\nimport config from './defaultConfig';\n\nexport const defaultConfig = Object.freeze(config);\n\nlet siteConfig = assignWithDepth({}, defaultConfig);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n // start with config beeing the siteConfig\n let cfg = assignWithDepth({}, siteCfg);\n // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);\n\n // Join directives\n let sumOfDirectives = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n\n // Apply the data from the directive where the the overrides the themeVariables\n sumOfDirectives = assignWithDepth(sumOfDirectives, d);\n }\n\n cfg = assignWithDepth(cfg, sumOfDirectives);\n\n if (sumOfDirectives.theme && theme[sumOfDirectives.theme]) {\n const tmpConfigFromInitialize = assignWithDepth({}, configFromInitialize);\n const themeVariables = assignWithDepth(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n\n currentConfig = cfg;\n return cfg;\n};\n\n/**\n * ## setSiteConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |\n * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |\n *\n * **Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls\n * to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig)\n * will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this\n * function _Default value: At default, will mirror Global Config_\n *\n * @param conf - The base currentConfig to use as siteConfig\n * @returns {object} - The siteConfig\n */\nexport const setSiteConfig = (conf) => {\n siteConfig = assignWithDepth({}, defaultConfig);\n siteConfig = assignWithDepth(siteConfig, conf);\n\n if (conf.theme && theme[conf.theme]) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n\n currentConfig = updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\n\nexport const saveConfigFromInitialize = (conf) => {\n configFromInitialize = assignWithDepth({}, conf);\n};\n\nexport const updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n\n return siteConfig;\n};\n/**\n * ## getSiteConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------------------- | ----------- | -------------------------------- |\n * | setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig |\n *\n * **Notes**: Returns **any** values in siteConfig.\n *\n * @returns {object} - The siteConfig\n */\nexport const getSiteConfig = () => {\n return assignWithDepth({}, siteConfig);\n};\n/**\n * ## setConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |\n * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |\n *\n * **Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure\n * keys. Any values found in conf with key found in siteConfig.secure will be replaced with the\n * corresponding siteConfig value.\n *\n * @param {any} conf - The potential currentConfig\n * @returns {any} - The currentConfig merged with the sanitized conf\n */\nexport const setConfig = (conf) => {\n // sanitize(conf);\n // Object.keys(conf).forEach(key => {\n // const manipulator = manipulators[key];\n // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];\n // });\n\n assignWithDepth(currentConfig, conf);\n\n return getConfig();\n};\n\n/**\n * ## getConfig\n *\n * | Function | Description | Type | Return Values |\n * | --------- | ------------------------- | ----------- | ------------------------------ |\n * | getConfig | Obtains the currentConfig | Get Request | Any Values from current Config |\n *\n * **Notes**: Returns **any** the currentConfig\n *\n * @returns {any} - The currentConfig\n */\nexport const getConfig = () => {\n return assignWithDepth({}, currentConfig);\n};\n/**\n * ## sanitize\n *\n * | Function | Description | Type | Values |\n * | -------- | -------------------------------------- | ----------- | ------ |\n * | sanitize | Sets the siteConfig to desired values. | Put Request | None |\n *\n * Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies\n * options in-place\n *\n * @param {any} options - The potential setConfig parameter\n */\nexport const sanitize = (options) => {\n // Checking that options are not in the list of excluded options\n Object.keys(siteConfig.secure).forEach((key) => {\n if (typeof options[siteConfig.secure[key]] !== 'undefined') {\n // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script\n // can exploit the logger's attempt to stringify the value and execute arbitrary code\n log.debug(\n `Denied attempt to modify a secure key ${siteConfig.secure[key]}`,\n options[siteConfig.secure[key]]\n );\n delete options[siteConfig.secure[key]];\n }\n });\n\n // Check that there no attempts of prototype pollution\n Object.keys(options).forEach((key) => {\n if (key.indexOf('__') === 0) {\n delete options[key];\n }\n });\n // Check that there no attempts of xss, there should be no tags at all in the directive\n // blocking data urls as base64 urls can contain svgs with inline script tags\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'string') {\n if (\n options[key].indexOf('<') > -1 ||\n options[key].indexOf('>') > -1 ||\n options[key].indexOf('url(data:') > -1\n ) {\n delete options[key];\n }\n }\n if (typeof options[key] === 'object') {\n sanitize(options[key]);\n }\n });\n};\n\n/**\n * Pushes in a directive to the configuration\n *\n * @param {object} directive The directive to push in\n */\nexport const addDirective = (directive) => {\n if (directive.fontFamily) {\n if (!directive.themeVariables) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n } else {\n if (!directive.themeVariables.fontFamily) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n }\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\n\n/**\n * ## reset\n *\n * | Function | Description | Type | Required | Values |\n * | -------- | ---------------------------- | ----------- | -------- | ------ |\n * | reset | Resets currentConfig to conf | Put Request | Required | None |\n *\n * ## conf\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- |\n * | conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array |\n *\n * **Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`)\n */\nexport const reset = () => {\n // Replace current config with siteConfig\n directives = [];\n updateCurrentConfig(siteConfig, directives);\n};\n","import intersectRect from './intersect/intersect-rect';\nimport { log } from '../logger';\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\nimport { evaluate } from '../diagrams/common/common';\n\nconst rect = (parent, node) => {\n log.trace('Creating subgraph rect for ', node.id, node);\n\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'cluster' + (node.class ? ' ' + node.class : ''))\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2 - node.padding / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n log.trace('Data ', node, JSON.stringify(node));\n // center the rect around its coordinate\n rect\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - width / 2)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width)\n .attr('height', node.height + padding);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 + node.padding / 3) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * Non visible cluster where the note is group with its\n *\n * @param {any} parent\n * @param {any} node\n * @returns {any} ShapeSvg\n */\nconst noteGroup = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding)\n .attr('fill', 'none');\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n const innerRect = shapeSvg.append('rect');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n // center the rect around its coordinate\n rect\n .attr('class', 'outer')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width + padding)\n .attr('height', node.height + padding);\n innerRect\n .attr('class', 'inner')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', width + padding)\n .attr('height', node.height + padding - bbox.height - 3);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y -\n node.height / 2 -\n node.padding / 3 +\n (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'divider')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\n\nlet clusterElems = {};\n\nexport const insertCluster = (elem, node) => {\n log.trace('Inserting cluster');\n const shape = node.shape || 'rect';\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nexport const getClusterTitleWidth = (elem, node) => {\n const label = createLabel(node.labelText, node.labelStyle, undefined, true);\n elem.node().appendChild(label);\n const width = label.getBBox().width;\n elem.node().removeChild(label);\n return width;\n};\n\nexport const clear = () => {\n clusterElems = {};\n};\n\nexport const positionCluster = (node) => {\n log.info('Position cluster (' + node.id + ', ' + node.x + ', ' + node.y + ')');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { getConfig } from '../config';\nimport { sanitizeText, evaluate } from '../diagrams/common/common';\n\nconst sanitizeTxt = (txt) => sanitizeText(txt, getConfig());\n\n/**\n * @param dom\n * @param styleFn\n */\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\n/**\n * @param {any} node\n * @returns {SVGForeignObjectElement} Node\n */\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));\n const div = fo.append('xhtml:div');\n\n const label = node.label;\n const labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';\n div.html(\n '' +\n label +\n ''\n );\n\n applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n return fo.node();\n}\n\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || '';\n if (typeof vertexText === 'object') vertexText = vertexText[0];\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n log.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace('fill:', 'color:'),\n };\n let vertexNode = addHtmlLabel(node);\n // vertexNode.parentNode.removeChild(vertexNode);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n svgLabel.setAttribute('style', style.replace('color:', 'fill:'));\n let rows = [];\n if (typeof vertexText === 'string') {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n\n for (let j = 0; j < rows.length; j++) {\n const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n tspan.setAttribute('dy', '1em');\n tspan.setAttribute('x', '0');\n if (isTitle) {\n tspan.setAttribute('class', 'title-row');\n } else {\n tspan.setAttribute('class', 'row');\n }\n tspan.textContent = rows[j].trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\n\nexport default createLabel;\n","import { log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\nimport { evaluate } from '../diagrams/common/common';\n\nlet edgeLabels = {};\nlet terminalLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\n\nexport const insertEdgeLabel = (elem, edge) => {\n // Create the actual text element\n const labelElement = createLabel(edge.label, edge.labelStyle);\n\n // Create outer g, edgeLabel, this will be positioned after graph layout\n const edgeLabel = elem.insert('g').attr('class', 'edgeLabel');\n\n // Create inner g, label, this will be positioned now for centering the text\n const label = edgeLabel.insert('g').attr('class', 'label');\n label.node().appendChild(labelElement);\n\n // Center the label\n let bbox = labelElement.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n // Make element accessible by id for positioning\n edgeLabels[edge.id] = edgeLabel;\n\n // Update the abstract data of the edge with the new information about its width and height\n edge.width = bbox.width;\n edge.height = bbox.height;\n\n let fo;\n if (edge.startLabelLeft) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelRight.insert('g').attr('class', 'inner');\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelRight.insert('g').attr('class', 'inner');\n\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n};\n\n/**\n * @param {any} fo\n * @param {any} value\n */\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + 'px';\n fo.style.height = '12px';\n }\n}\n\nexport const positionEdgeLabel = (edge, paths) => {\n log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // // debugger;\n const pos = utils.calcLabelPosition(path);\n log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');\n // x = pos.x;\n // y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n\n //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n 'start_right',\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n};\n\nconst outsideNode = (node, point) => {\n // log.warn('Checking bounds ', node, point);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point.x - x);\n const dy = Math.abs(point.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\n\nexport const intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\n // const dy = Math.abs(y - insidePoint.y);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n\n // const edges = {\n // x1: x - w,\n // x2: x + w,\n // y1: y - h,\n // y2: y + h\n // };\n\n // if (\n // outsidePoint.x === edges.x1 ||\n // outsidePoint.x === edges.x2 ||\n // outsidePoint.y === edges.y1 ||\n // outsidePoint.y === edges.y2\n // ) {\n // log.warn('abc89 calc equals on edge', outsidePoint, edges);\n // return outsidePoint;\n // }\n\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n // log.warn();\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { // eslint-disable-line\n // Intersection is top or bottom of rect.\n // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = (R * q) / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q,\n };\n\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n\n return res;\n } else {\n // Intersection onn sides of rect\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n // r = outsidePoint.x - w - x;\n r = x - w - outsidePoint.x;\n }\n let q = (Q * r) / R;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n\n return { x: _x, y: _y };\n }\n};\n/**\n * This function will page a path and node where the last point(s) in the path is inside the node\n * and return an update path ending by the border of the node.\n *\n * @param {Array} _points\n * @param {any} boundryNode\n * @returns {Array} Points\n */\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn('abc88 cutPathAtIntersect', _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point) => {\n // const node = clusterDb[edge.toCluster].node;\n log.info('abc88 checking point', point, boundryNode);\n\n // check if point is inside the boundry rect\n if (!outsideNode(boundryNode, point) && !isInside) {\n // First point inside the rect found\n // Calc the intersection coord between the point anf the last point outside the rect\n const inter = intersection(boundryNode, lastPointOutside, point);\n log.warn('abc88 inside', point, lastPointOutside, inter);\n log.warn('abc88 intersection', inter);\n\n // // Check case where the intersection is the same as the last point\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n });\n // // if (!pointPresent) {\n if (!points.find((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn('abc88 no intersect', inter, points);\n }\n // points.push(inter);\n isInside = true;\n } else {\n // Outside\n log.warn('abc88 outside', point, lastPointOutside);\n lastPointOutside = point;\n // points.push(point);\n if (!isInside) points.push(point);\n }\n });\n log.warn('abc88 returning points', points);\n return points;\n};\n\n//(edgePaths, e, edge, clusterDb, diagramtype, graph)\nexport const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n\n log.info('abc88 InsertEdge: ', edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n 'Last point',\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info('to cluster abc88', clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n // log.trace('edge', edge);\n // points = [];\n // let lastPointOutside; // = edge.points[0];\n // let isInside = false;\n // edge.points.forEach(point => {\n // const node = clusterDb[edge.toCluster].node;\n // log.warn('checking from', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.trace('inside', edge.toCluster, point, lastPointOutside);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // points.push(inter);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // isInside = true;\n // } else {\n // // outside\n // lastPointOutside = point;\n // if (!isInside) points.push(point);\n // }\n // });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n log.info('from cluster abc88', clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n\n pointsHasChanged = true;\n }\n\n // The data for our line\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n\n // This is the accessor function we talked about above\n let curve;\n // Currently only flowcharts get the curve from the settings, perhaps this should\n // be expanded to a common setting? Restricting it for now in order not to cause side-effects that\n // have not been thought through\n if (diagramType === 'graph' || diagramType === 'flowchart') {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n // curve = curveLinear;\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curve);\n\n // Contruct stroke classes based on properties\n let strokeClasses;\n switch (edge.thickness) {\n case 'normal':\n strokeClasses = 'edge-thickness-normal';\n break;\n case 'thick':\n strokeClasses = 'edge-thickness-thick';\n break;\n default:\n strokeClasses = '';\n }\n switch (edge.pattern) {\n case 'solid':\n strokeClasses += ' edge-pattern-solid';\n break;\n case 'dotted':\n strokeClasses += ' edge-pattern-dotted';\n break;\n case 'dashed':\n strokeClasses += ' edge-pattern-dashed';\n break;\n }\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', edge.id)\n .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))\n .attr('style', edge.style);\n\n // DEBUG code, adds a red circle at each edge coordinate\n // edge.points.forEach(point => {\n // elem\n // .append('circle')\n // .style('stroke', 'red')\n // .style('fill', 'red')\n // .attr('r', 1)\n // .attr('cx', point.x)\n // .attr('cy', point.y);\n // });\n\n let url = '';\n if (getConfig().state.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n log.info('arrowTypeStart', edge.arrowTypeStart);\n log.info('arrowTypeEnd', edge.arrowTypeEnd);\n\n switch (edge.arrowTypeStart) {\n case 'arrow_cross':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');\n break;\n default:\n }\n switch (edge.arrowTypeEnd) {\n case 'arrow_cross':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');\n break;\n default:\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\n","import dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport insertMarkers from './markers';\nimport { updateNodeBounds } from './shapes/util';\nimport {\n clear as clearGraphlib,\n clusterDb,\n adjustClustersAndEdges,\n findNonClusterChild,\n sortNodesByHierarchy,\n} from './mermaid-graphlib';\nimport { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes';\nimport { insertCluster, clear as clearClusters } from './clusters';\nimport { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges';\nimport { log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace('Dir in recursive render - dir:', dir);\n\n const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line\n if (!graph.nodes()) {\n log.info('No nodes found for', graph);\n } else {\n log.info('Recursive render XXX', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace('Recursive edges', graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line\n const edgePaths = elem.insert('g').attr('class', 'edgePaths');\n const edgeLabels = elem.insert('g').attr('class', 'edgeLabels');\n const nodes = elem.insert('g').attr('class', 'nodes');\n\n // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated\n // to the abstract node and is later used by dagre for the layout\n graph.nodes().forEach(function (v) {\n const node = graph.node(v);\n if (typeof parentCluster !== 'undefined') {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n // data.clusterPositioning = true;\n log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace('Setting parent', v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node.width, graph.node(v));\n const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n\n log.warn('Recursive render complete ', newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n // This is a cluster but not to be rendered recursively\n // Render as before\n log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n // insertCluster(clusters, graph.node(v));\n } else {\n log.info('Node - the non recursive path', v, node.id, node);\n insertNode(nodes, graph.node(v), dir);\n }\n }\n });\n\n // Insert labels, this will insert them into the dom so that the width can be calculated\n // Also figure out which edges point to/from clusters and adjust them accordingly\n // Edges from/to clusters really points to the first child in the cluster.\n // TODO: pick optimal child in the cluster to us as link anchor\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e)));\n\n // Check if link is either from or to a cluster\n log.info('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n\n graph.edges().forEach(function (e) {\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n });\n log.info('#############################################');\n log.info('### Layout ###');\n log.info('#############################################');\n log.info(graph);\n dagre.layout(graph);\n log.info('Graph after layout:', graphlib.json.write(graph));\n // Move the nodes to the correct place\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function (v) {\n const node = graph.node(v);\n log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));\n log.info(\n 'Position ' + v + ': (' + node.x,\n ',' + node.y,\n ') width: ',\n node.width,\n ' height: ',\n node.height\n );\n if (node && node.clusterNode) {\n // clusterDb[node.id].node = node;\n\n positionNode(node);\n } else {\n // Non cluster node\n if (graph.children(v).length > 0) {\n // A cluster in the non-recursive way\n // positionCluster(node);\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n\n // Move the edge labels to the correct place after layout\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);\n\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n\n graph.nodes().forEach(function (v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === 'group') {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\n\nexport const render = (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clearNodes();\n clearEdges();\n clearClusters();\n clearGraphlib();\n\n log.warn('Graph at first:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));\n recursiveRender(elem, graph, diagramtype);\n};\n\n// const shapeDefinitions = {};\n// export const addShape = ({ shapeType: fun }) => {\n// shapeDefinitions[shapeType] = fun;\n// };\n\n// const arrowDefinitions = {};\n// export const addArrow = ({ arrowType: fun }) => {\n// arrowDefinitions[arrowType] = fun;\n// };\n","/*\n * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!\n */\n\nimport node from './intersect-node.js';\nimport circle from './intersect-circle.js';\nimport ellipse from './intersect-ellipse.js';\nimport polygon from './intersect-polygon.js';\nimport rect from './intersect-rect.js';\n\nexport default {\n node,\n circle,\n ellipse,\n polygon,\n rect,\n};\n","import intersectEllipse from './intersect-ellipse';\n\n/**\n * @param node\n * @param rx\n * @param point\n */\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n\nexport default intersectCircle;\n","/**\n * @param node\n * @param rx\n * @param ry\n * @param point\n */\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: https://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n\nexport default intersectEllipse;\n","/**\n * Returns the point at which two lines, p and q, intersect or returns undefined if they do not intersect.\n *\n * @param p1\n * @param p2\n * @param q1\n * @param q2\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\n/**\n * @param r1\n * @param r2\n */\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n\nexport default intersectLine;\n","module.exports = intersectNode;\n\n/**\n * @param node\n * @param point\n */\nfunction intersectNode(node, point) {\n // console.info('Intersect Node');\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nimport intersectLine from './intersect-line';\n\nexport default intersectPolygon;\n\n/**\n * Returns the point ({x, y}) at which the point argument intersects with the node argument assuming\n * that it has the shape specified by polygon.\n *\n * @param node\n * @param polyPoints\n * @param point\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === 'function') {\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","const intersectRect = (node, point) => {\r\n var x = node.x;\r\n var y = node.y;\r\n\r\n // Rectangle intersection algorithm from:\r\n // https://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\r\n var dx = point.x - x;\r\n var dy = point.y - y;\r\n var w = node.width / 2;\r\n var h = node.height / 2;\r\n\r\n var sx, sy;\r\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\r\n // Intersection is top or bottom of rect.\r\n if (dy < 0) {\r\n h = -h;\r\n }\r\n sx = dy === 0 ? 0 : (h * dx) / dy;\r\n sy = h;\r\n } else {\r\n // Intersection is left or right of rect.\r\n if (dx < 0) {\r\n w = -w;\r\n }\r\n sx = w;\r\n sy = dx === 0 ? 0 : (w * dy) / dx;\r\n }\r\n\r\n return { x: x + sx, y: y + sy };\r\n};\r\n\r\nexport default intersectRect;\r\n","/** Setup arrow head and define the marker. The result is appended to the svg. */\n\nimport { log } from '../logger';\n\n// Only add the number of markers that the diagram needs\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\n\nconst extension = (elem, type, id) => {\n log.trace('Making markers for ', id);\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionStart')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionEnd')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n};\n\nconst composition = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionStart')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionEnd')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst aggregation = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationStart')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationEnd')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst dependency = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyStart')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyEnd')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\nconst point = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-pointEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n elem\n .append('marker')\n .attr('id', type + '-pointStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 0)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 5 L 10 10 L 10 0 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst circle = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-circleEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 11)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-circleStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', -1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst cross = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-crossEnd')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', 12)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-crossStart')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', -1)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n};\nconst barb = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-barbEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 14)\n .attr('markerUnits', 'strokeWidth')\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');\n};\n\n// TODO rename the class diagram markers to something shape descriptive and semantic free\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n point,\n circle,\n cross,\n barb,\n};\nexport default insertMarkers;\n","/** Decorates with functions required by mermaids dagre-wrapper. */\nimport { log } from '../logger';\nimport graphlib from 'graphlib';\n\nexport let clusterDb = {};\nlet decendants = {};\nlet parents = {};\n\nexport const clear = () => {\n decendants = {};\n parents = {};\n clusterDb = {};\n};\n\nconst isDecendant = (id, ancenstorId) => {\n // if (id === ancenstorId) return true;\n\n log.trace(\n 'In isDecendant',\n ancenstorId,\n ' ',\n id,\n ' = ',\n decendants[ancenstorId].indexOf(id) >= 0\n );\n if (decendants[ancenstorId].indexOf(id) >= 0) return true;\n\n return false;\n};\n\nconst edgeInCluster = (edge, clusterId) => {\n log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);\n log.info('Edge is ', edge);\n // Edges to/from the cluster is not in the cluster, they are in the parent\n if (edge.v === clusterId) return false;\n if (edge.w === clusterId) return false;\n\n if (!decendants[clusterId]) {\n log.debug('Tilt, ', clusterId, ',not in decendants');\n return false;\n }\n log.info('Here ');\n\n if (decendants[clusterId].indexOf(edge.v) >= 0) return true;\n if (isDecendant(edge.v, clusterId)) return true;\n if (isDecendant(edge.w, clusterId)) return true;\n if (decendants[clusterId].indexOf(edge.w) >= 0) return true;\n\n return false;\n};\n\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n 'Copying children of ',\n clusterId,\n 'root',\n rootId,\n 'data',\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n\n // Include cluster node if it is not the root\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n\n log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);\n\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn('Setting parent', node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n\n if (clusterId !== rootId && node !== clusterId) {\n log.debug('Setting parent', node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);\n log.debug(\n 'Not Setting parent for node=',\n node,\n 'cluster!==rootId',\n clusterId !== rootId,\n 'node!==clusterId',\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug('Copying Edges', edges);\n edges.forEach((edge) => {\n log.info('Edge', edge);\n const data = graph.edge(edge.v, edge.w, edge.name);\n log.info('Edge data', data, rootId);\n try {\n // Do not copy edges in and out of the root cluster, they belong to the parent graph\n if (edgeInCluster(edge, rootId)) {\n log.info('Copying as ', edge.v, edge.w, data, edge.name);\n newGraph.setEdge(edge.v, edge.w, data, edge.name);\n log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n 'Skipping copy of edge ',\n edge.v,\n '-->',\n edge.w,\n ' rootId: ',\n rootId,\n ' clusterId:',\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug('Removing node', node);\n graph.removeNode(node);\n });\n};\nexport const extractDecendants = (id, graph) => {\n // log.debug('Extracting ', id);\n const children = graph.children(id);\n let res = [].concat(children);\n\n for (let i = 0; i < children.length; i++) {\n parents[children[i]] = id;\n res = res.concat(extractDecendants(children[i], graph));\n }\n\n return res;\n};\n\n/**\n * Validates the graph, checking that all parent child relation points to existing nodes and that\n * edges between nodes also ia correct. When not correct the function logs the discrepancies.\n *\n * @param graph\n */\nexport const validate = (graph) => {\n const edges = graph.edges();\n log.trace('Edges: ', edges);\n for (let i = 0; i < edges.length; i++) {\n if (graph.children(edges[i].v).length > 0) {\n log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');\n return false;\n }\n if (graph.children(edges[i].w).length > 0) {\n log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');\n return false;\n }\n }\n return true;\n};\n\n/**\n * Finds a child that is not a cluster. When faking a edge between a node and a cluster.\n *\n * @param {Finds a} id\n * @param {any} graph\n */\nexport const findNonClusterChild = (id, graph) => {\n // const node = graph.node(id);\n log.trace('Searching', id);\n // const children = graph.children(id).reverse();\n const children = graph.children(id); //.reverse();\n log.trace('Searching children of id ', id, children);\n if (children.length < 1) {\n log.trace('This is a valid node', id);\n return id;\n }\n for (let i = 0; i < children.length; i++) {\n const _id = findNonClusterChild(children[i], graph);\n if (_id) {\n log.trace('Found replacement for', id, ' => ', _id);\n return _id;\n }\n }\n};\n\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n // If the cluster has no external connections\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n\n // Return the replacement node\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\n\nexport const adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug('Opting out, no graph ');\n return;\n } else {\n log.debug('Opting in, graph ');\n }\n // Go through the nodes and for each cluster found, save a replacement node, this can be used when\n // faking a link to a cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n 'Cluster identified',\n id,\n ' Replacement id in edges: ',\n findNonClusterChild(id, graph)\n );\n decendants[id] = extractDecendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n\n // Check incoming and outgoing edges for each cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug('Cluster identified', id, decendants);\n edges.forEach((edge) => {\n // log.debug('Edge, decendants: ', edge, decendants[id]);\n\n // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)\n if (edge.v !== id && edge.w !== id) {\n // Any edge where either the one of the nodes is decending to the cluster but not the other\n // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {\n\n const d1 = isDecendant(edge.v, id);\n const d2 = isDecendant(edge.w, id);\n\n // d1 xor d2 - if either d1 is true and d2 is false or the other way around\n if (d1 ^ d2) {\n log.warn('Edge: ', edge, ' leaves cluster ', id);\n log.warn('Decendants of XXX ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug('Not a cluster ', id, decendants);\n }\n });\n\n // For clusters with incoming and/or outgoing edges translate those edges to a real node\n // in the cluster in order to fake the edge\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));\n\n let v = e.v;\n let w = e.w;\n // Check if link is either from or to a cluster\n log.warn(\n 'Fix XXX',\n clusterDb,\n 'ids:',\n e.v,\n e.w,\n 'Translateing: ',\n clusterDb[e.v],\n ' --- ',\n clusterDb[e.w]\n );\n if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {\n log.warn('Fixing and trixing link to self - removing XXX', e.v, e.w, e.name);\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n const specialId = e.w + '---' + e.v;\n graph.setNode(specialId, {\n domId: specialId,\n id: specialId,\n labelStyle: '',\n labelText: edge.label,\n padding: 0,\n shape: 'labelRect',\n style: '',\n });\n const edge1 = JSON.parse(JSON.stringify(edge));\n const edge2 = JSON.parse(JSON.stringify(edge));\n edge1.label = '';\n edge1.arrowTypeEnd = 'none';\n edge2.label = '';\n edge1.fromCluster = e.v;\n edge2.toCluster = e.v;\n\n graph.setEdge(v, specialId, edge1, e.name + '-cyclic-special');\n graph.setEdge(specialId, w, edge2, e.name + '-cyclic-special');\n } else if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) edge.fromCluster = e.v;\n if (w !== e.w) edge.toCluster = e.w;\n log.warn('Fix Replacing with XXX', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\n extractor(graph, 0);\n\n log.trace(clusterDb);\n\n // Remove references to extracted cluster\n // graph.edges().forEach(edge => {\n // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {\n // graph.removeEdge(edge);\n // }\n // });\n};\n\nexport const extractor = (graph, depth) => {\n log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D'));\n if (depth > 10) {\n log.error('Bailing out');\n return;\n }\n // For clusters without incoming and/or outgoing edges, create a new cluster-node\n // containing the nodes and edges in the custer in a new graph\n // for (let i = 0;)\n let nodes = graph.nodes();\n let hasChildren = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n\n if (!hasChildren) {\n log.debug('Done, no node has children', graph.nodes());\n return;\n }\n // const clusters = Object.keys(clusterDb);\n // clusters.forEach(clusterId => {\n log.debug('Nodes = ', nodes, depth);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n log.debug(\n 'Extracting node',\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children('D'),\n ' Depth ',\n depth\n );\n // Note that the node might have been removed after the Object.keys call so better check\n // that it still is in the game\n if (!clusterDb[node]) {\n // Skip if the node is not a cluster\n log.debug('Not a cluster', node, depth);\n // break;\n } else if (\n !clusterDb[node].externalConnections &&\n // !graph.parent(node) &&\n graph.children(node) &&\n graph.children(node).length > 0\n ) {\n log.warn(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';\n if (clusterDb[node]) {\n if (clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn('Fixing dir', clusterDb[node].clusterData.dir, dir);\n }\n }\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir, // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n log.warn('Old graph before copy', graphlib.json.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph,\n });\n log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.warn(\n 'Cluster ** ',\n node,\n ' **not meeting the criteria !externalConnections:',\n !clusterDb[node].externalConnections,\n ' no parent: ',\n !graph.parent(node),\n ' children ',\n graph.children(node) && graph.children(node).length > 0,\n graph.children('D'),\n depth\n );\n log.debug(clusterDb);\n }\n }\n\n nodes = graph.nodes();\n log.warn('New list of nodes', nodes);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const data = graph.node(node);\n log.warn(' Now next level', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) return [];\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = result.concat(sorted);\n });\n\n return result;\n};\n\nexport const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util';\nimport { getConfig } from '../config';\nimport intersect from './intersect/index.js';\nimport createLabel from './createLabel';\nimport note from './shapes/note';\nimport { parseMember } from '../diagrams/class/svgDraw';\nimport { evaluate, sanitizeText as sanitize } from '../diagrams/common/common';\n\nconst sanitizeText = (txt) => sanitize(txt, getConfig());\n\nconst question = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 },\n ];\n\n log.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr('style', node.style);\n updateNodeBounds(node, questionElem);\n\n node.intersect = function (point) {\n log.warn('Intersect called');\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst choice = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 },\n ];\n\n const choice = shapeSvg.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n );\n // center the circle around its coordinate\n choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);\n node.width = 28;\n node.height = 28;\n\n node.intersect = function (point) {\n return intersect.circle(node, 14, point);\n };\n\n return shapeSvg;\n};\n\nconst hexagon = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr('style', node.style);\n updateNodeBounds(node, hex);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_left_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n\n node.width = w + h;\n node.height = h;\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_right = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_left = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (2 * h) / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - (2 * h) / 6, y: -h },\n { x: -h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w + (2 * h) / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst inv_trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: (-2 * h) / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_right_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst cylinder = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n\n const shape =\n 'M 0,' +\n ry +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n -w +\n ' 0 l 0,' +\n h +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 l 0,' +\n -h;\n\n const el = shapeSvg\n .attr('label-offset-y', ry)\n .insert('path', ':first-child')\n .attr('style', node.style)\n .attr('d', shape)\n .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');\n\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n const pos = intersect.rect(node, point);\n const x = pos.x - node.x;\n\n if (\n rx != 0 &&\n (Math.abs(x) < node.width / 2 ||\n (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry))\n ) {\n // ellipsis equation: x*x / a*a + y*y / b*b = 1\n // solve for y to get adjustion value for pos.y\n let y = ry * ry * (1 - (x * x) / (rx * rx));\n if (y != 0) y = Math.sqrt(y);\n y = ry - y;\n if (point.y - node.y > 0) y = -y;\n\n pos.y += y;\n }\n\n return pos;\n };\n\n return shapeSvg;\n};\n\nconst rect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect\n .attr('class', 'basic label-container')\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', totalWidth)\n .attr('height', totalHeight);\n\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);\n propKeys.delete('borders');\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst labelRect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'label', true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Hide the rect we are only after the label\n const totalWidth = 0;\n const totalHeight = 0;\n rect.attr('width', totalWidth).attr('height', totalHeight);\n shapeSvg.attr('class', 'label edgeLabel');\n\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);\n propKeys.delete('borders');\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * @param rect\n * @param borders\n * @param totalWidth\n * @param totalHeight\n */\nfunction applyNodePropertyBorders(rect, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length);\n strokeDashArray.push(0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0);\n strokeDashArray.push(length);\n };\n if (borders.includes('t')) {\n log.debug('add top border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('r')) {\n log.debug('add right border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes('b')) {\n log.debug('add bottom border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('l')) {\n log.debug('add left border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect.attr('stroke-dasharray', strokeDashArray.join(' '));\n}\n\nconst rectWithTitle = (parent, node) => {\n // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n // const innerRect = shapeSvg.insert('rect');\n const innerLine = shapeSvg.insert('line');\n\n const label = shapeSvg.insert('g').attr('class', 'label');\n\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;\n\n let title = '';\n if (typeof text2 === 'object') {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info('Label text abc79', title, text2, typeof text2 === 'object');\n\n const text = label.node().appendChild(createLabel(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n log.info('Text 2', text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label\n .node()\n .appendChild(\n createLabel(textRows.join ? textRows.join('
') : textRows, node.labelStyle, true, true)\n );\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n // bbox = label.getBBox();\n // log.info(descr);\n const halfPadding = node.padding / 2;\n select(descr).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n ', ' +\n (titleBox.height + halfPadding + 5) +\n ')'\n );\n select(text).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n ', ' +\n 0 +\n ')'\n );\n // Get the size of the label\n\n // Bounding box for title and text\n bbox = label.node().getBBox();\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n innerLine\n .attr('class', 'divider')\n .attr('x1', -bbox.width / 2 - halfPadding)\n .attr('x2', bbox.width / 2 + halfPadding)\n .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst stadium = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n\n // add the rect\n const rect = shapeSvg\n .insert('rect', ':first-child')\n .attr('style', node.style)\n .attr('rx', h / 2)\n .attr('ry', h / 2)\n .attr('x', -w / 2)\n .attr('y', -h / 2)\n .attr('width', w)\n .attr('height', h);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst circle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point);\n };\n\n return shapeSvg;\n};\n\nconst doublecircle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const gap = 5;\n const circleGroup = shapeSvg.insert('g', ':first-child');\n const outerCircle = circleGroup.insert('circle');\n const innerCircle = circleGroup.insert('circle');\n\n // center the circle around its coordinate\n outerCircle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding + gap)\n .attr('width', bbox.width + node.padding + gap * 2)\n .attr('height', bbox.height + node.padding + gap * 2);\n\n innerCircle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('DoubleCircle main');\n\n updateNodeBounds(node, outerCircle);\n\n node.intersect = function (point) {\n log.info('DoubleCircle intersect', node, bbox.width / 2 + halfPadding + gap, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point);\n };\n\n return shapeSvg;\n};\n\nconst subroutine = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst start = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n let width = 70;\n let height = 10;\n\n if (dir === 'LR') {\n width = 10;\n height = 70;\n }\n\n const shape = shapeSvg\n .append('rect')\n .attr('x', (-1 * width) / 2)\n .attr('y', (-1 * height) / 2)\n .attr('width', width)\n .attr('height', height)\n .attr('class', 'fork-join');\n\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst end = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n const topLine = shapeSvg.insert('line');\n const bottomLine = shapeSvg.insert('line');\n let maxWidth = 0;\n let maxHeight = rowPadding;\n\n const labelContainer = shapeSvg.insert('g').attr('class', 'label');\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n\n // 1. Create the labels\n const interfaceLabelText = node.classData.annotations[0]\n ? '«' + node.classData.annotations[0] + '»'\n : '';\n const interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr('width', interfaceBBox.width);\n dv.attr('height', interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n let classTitleString = node.classData.id;\n\n if (node.classData.type !== undefined && node.classData.type !== '') {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += '<' + node.classData.type + '>';\n } else {\n classTitleString += '<' + node.classData.type + '>';\n }\n }\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr('class', 'classTitle');\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr('width', classTitleBBox.width);\n dv.attr('height', classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedInfo = parseMember(str);\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedInfo = parseMember(str);\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n\n classMethods.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n // 2. Position the labels\n\n // position the interface label\n if (hasInterface) {\n let diffX = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n 'transform',\n 'translate( ' + ((-1 * maxWidth) / 2 + diffX) + ', ' + (-1 * maxHeight) / 2 + ')'\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n // Position the class title label\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n 'transform',\n 'translate( ' +\n ((-1 * maxWidth) / 2 + diffX) +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n\n topLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' +\n -maxWidth / 2 +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos + lineHeight / 2) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n\n verticalPos += lineHeight;\n bottomLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' + -maxWidth / 2 + ', ' + ((-1 * maxHeight) / 2 + verticalPos) + ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n //\n // let bbox;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = interfaceLabel.children[0];\n // const dv = select(interfaceLabel);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // bbox = labelContainer.getBBox();\n\n // log.info('Text 2', text2);\n // const textRows = text2.slice(1, text2.length);\n // let titleBox = text.getBBox();\n // const descr = label\n // .node()\n // .appendChild(createLabel(textRows.join('
'), node.labelStyle, true, true));\n\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = descr.children[0];\n // const dv = select(descr);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // // bbox = label.getBBox();\n // // log.info(descr);\n // select(descr).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n // ', ' +\n // (titleBox.height + halfPadding + 5) +\n // ')'\n // );\n // select(text).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n // ', ' +\n // 0 +\n // ')'\n // );\n // // Get the size of the label\n\n // // Bounding box for title and text\n // bbox = label.node().getBBox();\n\n // // Center the label\n // label.attr(\n // 'transform',\n // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n // );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -maxWidth / 2 - halfPadding)\n .attr('y', -(maxHeight / 2) - halfPadding)\n .attr('width', maxWidth + node.padding)\n .attr('height', maxHeight + node.padding);\n\n // innerLine\n // .attr('class', 'divider')\n // .attr('x1', -bbox.width / 2 - halfPadding)\n // .attr('x2', bbox.width / 2 + halfPadding)\n // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = {\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box,\n};\n\nlet nodeElems = {};\n\nexport const insertNode = (elem, node, dir) => {\n let newEl;\n let el;\n\n // Add link when appropriate\n if (node.link) {\n let target;\n if (getConfig().securityLevel === 'sandbox') {\n target = '_top';\n } else if (node.linkTarget) {\n target = node.linkTarget || '_blank';\n }\n newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', target);\n el = shapes[node.shape](newEl, node, dir);\n } else {\n el = shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr('title', node.tooltip);\n }\n if (node.class) {\n el.attr('class', 'node default ' + node.class);\n }\n\n nodeElems[node.id] = newEl;\n\n if (node.haveCallback) {\n nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');\n }\n};\nexport const setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nexport const clear = () => {\n nodeElems = {};\n};\n\nexport const positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n 'Transforming node',\n node.diff,\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')'\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x + diff - node.width / 2) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n return diff;\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { log } from '../../logger'; // eslint-disable-line\nimport intersect from '../intersect/index.js';\n\nconst note = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.info('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nexport default note;\n","import createLabel from '../createLabel';\nimport { getConfig } from '../../config';\nimport { decodeEntities } from '../../mermaidAPI';\nimport { select } from 'd3';\nimport { evaluate, sanitizeText } from '../../diagrams/common/common';\nexport const labelHelper = (parent, node, _classes, isNode) => {\n let classes;\n if (!_classes) {\n classes = 'node default';\n } else {\n classes = _classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);\n\n const labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0];\n\n const text = label\n .node()\n .appendChild(\n createLabel(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const halfPadding = node.padding / 2;\n\n // Center the label\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n return { shapeSvg, bbox, halfPadding, label };\n};\n\nexport const updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\n\n/**\n * @param parent\n * @param w\n * @param h\n * @param points\n */\nexport function insertPolygonShape(parent, w, h, points) {\n return parent\n .insert('polygon', ':first-child')\n .attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n )\n .attr('class', 'label-container')\n .attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');\n}\n","import theme from './themes';\n/**\n * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click\n * here](8.6.0_docs.md)].**\n *\n * ## **What follows are config instructions for older versions**\n *\n * These are the default options which can be overridden with the initialization call like so:\n *\n * **Example 1:**

 mermaid.initialize({ flowchart:{ htmlLabels: false } }); 
\n *\n * **Example 2:**
  
\n *\n * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).\n * A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /**\n * Theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\".
 \"theme\": \"forest\",\n   * \"themeCSS\": \".node rect { fill: red; }\" 
\n */\n theme: 'default',\n themeVariables: theme['default'].getThemeVariables(),\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diagram */\n maxTextSize: 50000,\n darkMode: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |\n * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- |\n * | logLevel | This option decides the amount of logging to be used. | string \\| number | Required | 1, 2, 3, 4, 5 |\n *\n * **Notes:**\n *\n * - Debug: 1\n * - Info: 2\n * - Warn: 3\n * - Error: 4\n * - Fatal: 5 (default)\n */\n logLevel: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- |\n * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) tags in text are encoded, click functionality is disabled\n * - **loose**: tags in text are allowed, click functionality is enabled\n * - **antiscript**: html tags in text are allowed, (only script element is removed), click\n * functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |\n * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n\n /**\n * This option controls which currentConfig keys are considered _secure_ and can only be changed\n * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the\n * `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n *\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based\n * on a seed. If set to false, the IDs are generated based on the current date and thus are not\n * deterministic. This is the default behaviour.\n *\n * **Notes**:\n *\n * This matters if your files are checked into sourcecontrol e.g. git and should not change unless\n * content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but\n * deterministicIds is true, a simple number iterator is used. You can set this attribute to base\n * the seed on a static string.\n */\n deterministicIDSeed: undefined,\n\n /** The object containing configurations specific for flowcharts */\n flowchart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the\n * vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal\n * spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |\n *\n * **Notes:**\n *\n * Default Value: 'basis'\n */\n curve: 'basis',\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n\n /** The object containing configurations specific for sequence diagrams */\n sequence: {\n hideUnusedParticipants: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------- | ------- | -------- | ------------------ |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n actorMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 65,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ---------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------ | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------- | -------- | ----------- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n mirrorActors: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |\n *\n * **Notes:**\n *\n * Default value: false.\n */\n forceMenus: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ------------------------------------ | ------- | -------- | ----------- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n *\n * Default value: false\n */\n rightAngles: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ------------------------------- | ------- | -------- | ----------- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:** Default value: false\n */\n showSequenceNumbers: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n * **Notes:** **Default value 14**..\n */\n actorFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |\n * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: \"'Open Sans\", sans-serif'\n */\n actorFontFamily: '\"Open Sans\", sans-serif',\n\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:** Default value: 400.\n */\n actorFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 14\n */\n noteFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |\n * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:** Default value: 400\n */\n noteFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n noteAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:** Default value: 16\n */\n messageFontSize: 16,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:** Default value: 400.\n */\n messageFontWeight: 400,\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: false.\n */\n wrap: false,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 50.\n */\n labelBoxWidth: 50,\n\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 20.\n */\n labelBoxHeight: 20,\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n noteFont: function () {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight,\n };\n },\n actorFont: function () {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight,\n };\n },\n },\n\n /** The object containing configurations specific for gantt diagrams */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n barHeight: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n barGap: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n topPadding: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n rightPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n leftPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n gridLineStartPadding: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ------------------ |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n fontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------- | ------- | -------- | ------------------ |\n * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n sectionFontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n numberSectionStyles: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | --------------------------- | ---- | -------- | ---------------- |\n * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: '%Y-%m-%d',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ----------- |\n * | topAxis | See notes | Boolean | 4 | True, False |\n *\n * **Notes:** when this flag is set date labels will be added to the top of the chart\n *\n * **Default value false**.\n */\n topAxis: false,\n\n useWidth: undefined,\n },\n\n /** The object containing configurations specific for journey diagrams */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n leftMargin: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ---- | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------- | ---- | -------- | ----------- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open Sans\", sans-serif',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n\n // text placement as: tspan | fo | old only text as before\n textPlacement: 'fo',\n actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],\n\n sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],\n sectionColours: ['#fff'],\n },\n class: {\n arrowMarkerAbsolute: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes**:\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n\n /** The object containing configurations specific for entity relationship diagrams */\n er: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: 'TB',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |\n * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:** Expressed in pixels. Default value: 100\n */\n minEntityWidth: 100,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Expressed in pixels Default value: 75\n */\n minEntityHeight: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |\n * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding between text in an entity box and the enclosing box borders,\n * expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------ | -------- | -------------------- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'gray'\n */\n stroke: 'gray',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------- | ------ | -------- | -------------------- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'honeydew'\n */\n fill: 'honeydew',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels) Default value: 12\n */\n fontSize: 12,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for pie diagrams */\n pie: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for req diagrams */\n requirement: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n rect_fill: '#f9f9f9',\n text_color: '#333',\n rect_border_size: '0.5px',\n rect_border_color: '#bbb',\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20,\n },\n gitGraph: {\n diagramPadding: 8,\n nodeLabel: {\n width: 75,\n height: 100,\n x: -25,\n y: 0,\n },\n mainBranchName: 'main',\n mainBranchOrder: 0,\n showCommitLabel: true,\n showBranches: true,\n rotateCommitLabel: true,\n },\n\n /** The object containing configurations specific for c4 diagrams */\n c4: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------- | ------- | -------- | ------------------ |\n * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n c4ShapeMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------- | ------- | -------- | ------------------ |\n * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n c4ShapePadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | width | Width of person boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 216\n */\n width: 216,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------- | ------- | -------- | ------------------ |\n * | height | Height of person boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 60\n */\n height: 60,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------- | ------- | -------- | ------------------ |\n * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** How many shapes to place in each row.\n *\n * Default value: 4\n */\n c4ShapeInRow: 4,\n\n nextLinePaddingX: 0,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ------------------ |\n * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** How many boundarys to place in each row.\n *\n * Default value: 2\n */\n c4BoundaryInRow: 2,\n\n /**\n * This sets the font size of Person shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n personFontSize: 14,\n /**\n * This sets the font family of Person shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n personFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Person shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n personFontWeight: 'normal',\n\n /**\n * This sets the font size of External Person shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_personFontSize: 14,\n /**\n * This sets the font family of External Person shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_personFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Person shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_personFontWeight: 'normal',\n\n /**\n * This sets the font size of System shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n systemFontSize: 14,\n /**\n * This sets the font family of System shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n systemFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n systemFontWeight: 'normal',\n\n /**\n * This sets the font size of External System shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_systemFontSize: 14,\n /**\n * This sets the font family of External System shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_systemFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_systemFontWeight: 'normal',\n\n /**\n * This sets the font size of System DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n system_dbFontSize: 14,\n /**\n * This sets the font family of System DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n system_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n system_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of External System DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_system_dbFontSize: 14,\n /**\n * This sets the font family of External System DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_system_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_system_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of System Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n system_queueFontSize: 14,\n /**\n * This sets the font family of System Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n system_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n system_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of External System Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_system_queueFontSize: 14,\n /**\n * This sets the font family of External System Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_system_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_system_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of Boundary shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n boundaryFontSize: 14,\n /**\n * This sets the font family of Boundary shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n boundaryFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Boundary shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n boundaryFontWeight: 'normal',\n\n /**\n * This sets the font size of Message shape for the diagram\n *\n * **Notes:** Default value: 12.\n */\n messageFontSize: 12,\n /**\n * This sets the font family of Message shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n messageFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Message shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n messageFontWeight: 'normal',\n\n /**\n * This sets the font size of Container shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n containerFontSize: 14,\n /**\n * This sets the font family of Container shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n containerFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n containerFontWeight: 'normal',\n\n /**\n * This sets the font size of External Container shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_containerFontSize: 14,\n /**\n * This sets the font family of External Container shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_containerFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_containerFontWeight: 'normal',\n\n /**\n * This sets the font size of Container DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n container_dbFontSize: 14,\n /**\n * This sets the font family of Container DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n container_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n container_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of External Container DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_container_dbFontSize: 14,\n /**\n * This sets the font family of External Container DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_container_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_container_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of Container Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n container_queueFontSize: 14,\n /**\n * This sets the font family of Container Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n container_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n container_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_container_queueFontSize: 14,\n /**\n * This sets the font family of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_container_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_container_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of Component shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n componentFontSize: 14,\n /**\n * This sets the font family of Component shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n componentFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n componentFontWeight: 'normal',\n\n /**\n * This sets the font size of External Component shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_componentFontSize: 14,\n /**\n * This sets the font family of External Component shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_componentFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_componentFontWeight: 'normal',\n\n /**\n * This sets the font size of Component DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n component_dbFontSize: 14,\n /**\n * This sets the font family of Component DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n component_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n component_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of External Component DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_component_dbFontSize: 14,\n /**\n * This sets the font family of External Component DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_component_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_component_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of Component Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n component_queueFontSize: 14,\n /**\n * This sets the font family of Component Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n component_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n component_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_component_queueFontSize: 14,\n /**\n * This sets the font family of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_component_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_component_queueFontWeight: 'normal',\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: true.\n */\n wrap: true,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n\n personFont: function () {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight,\n };\n },\n\n external_personFont: function () {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight,\n };\n },\n\n systemFont: function () {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight,\n };\n },\n\n external_systemFont: function () {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight,\n };\n },\n\n system_dbFont: function () {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight,\n };\n },\n\n external_system_dbFont: function () {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight,\n };\n },\n\n system_queueFont: function () {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight,\n };\n },\n\n external_system_queueFont: function () {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight,\n };\n },\n\n containerFont: function () {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight,\n };\n },\n\n external_containerFont: function () {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight,\n };\n },\n\n container_dbFont: function () {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight,\n };\n },\n\n external_container_dbFont: function () {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight,\n };\n },\n\n container_queueFont: function () {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight,\n };\n },\n\n external_container_queueFont: function () {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight,\n };\n },\n\n componentFont: function () {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight,\n };\n },\n\n external_componentFont: function () {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight,\n };\n },\n\n component_dbFont: function () {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight,\n };\n },\n\n external_component_dbFont: function () {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight,\n };\n },\n\n component_queueFont: function () {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight,\n };\n },\n\n external_component_queueFont: function () {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight,\n };\n },\n\n boundaryFont: function () {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight,\n };\n },\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n\n // ' Colors\n // ' ##################################\n person_bg_color: '#08427B',\n person_border_color: '#073B6F',\n external_person_bg_color: '#686868',\n external_person_border_color: '#8A8A8A',\n system_bg_color: '#1168BD',\n system_border_color: '#3C7FC0',\n system_db_bg_color: '#1168BD',\n system_db_border_color: '#3C7FC0',\n system_queue_bg_color: '#1168BD',\n system_queue_border_color: '#3C7FC0',\n external_system_bg_color: '#999999',\n external_system_border_color: '#8A8A8A',\n external_system_db_bg_color: '#999999',\n external_system_db_border_color: '#8A8A8A',\n external_system_queue_bg_color: '#999999',\n external_system_queue_border_color: '#8A8A8A',\n container_bg_color: '#438DD5',\n container_border_color: '#3C7FC0',\n container_db_bg_color: '#438DD5',\n container_db_border_color: '#3C7FC0',\n container_queue_bg_color: '#438DD5',\n container_queue_border_color: '#3C7FC0',\n external_container_bg_color: '#B3B3B3',\n external_container_border_color: '#A6A6A6',\n external_container_db_bg_color: '#B3B3B3',\n external_container_db_border_color: '#A6A6A6',\n external_container_queue_bg_color: '#B3B3B3',\n external_container_queue_border_color: '#A6A6A6',\n component_bg_color: '#85BBF0',\n component_border_color: '#78A8D8',\n component_db_bg_color: '#85BBF0',\n component_db_border_color: '#78A8D8',\n component_queue_bg_color: '#85BBF0',\n component_queue_border_color: '#78A8D8',\n external_component_bg_color: '#CCCCCC',\n external_component_border_color: '#BFBFBF',\n external_component_db_bg_color: '#CCCCCC',\n external_component_db_border_color: '#BFBFBF',\n external_component_queue_bg_color: '#CCCCCC',\n external_component_queue_border_color: '#BFBFBF',\n },\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nconst keyify = (obj, prefix = '') =>\n Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === 'object' && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], '')];\n }\n return [...res, prefix + el];\n }, []);\n\nexport const configKeys = keyify(config, '');\nexport default config;\n","import mermaidAPI from '../../mermaidAPI';\nimport * as configApi from '../../config';\nimport { log } from '../../logger';\nimport { sanitizeText } from '../common/common';\nimport { setAccTitle, getAccTitle, getAccDescription, setAccDescription } from '../../commonDb';\n\nlet c4ShapeArray = [];\nlet boundaryParseStack = [''];\nlet currentBoundaryParse = 'global';\nlet parentBoundaryParse = '';\nlet boundarys = [\n {\n alias: 'global',\n label: { text: 'global' },\n type: { text: 'global' },\n tags: null,\n link: null,\n parentBoundary: '',\n },\n];\nlet rels = [];\nlet title = '';\nlet wrapEnabled = false;\nlet description = '';\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\nvar c4Type;\n\nexport const getC4Type = function () {\n return c4Type;\n};\n\nexport const setC4Type = function (c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, configApi.getConfig());\n c4Type = sanitizedText;\n};\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\n//type, from, to, label, ?techn, ?descr, ?sprite, ?tags, $link\nexport const addRel = function (type, from, to, label, techn, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (\n type === undefined ||\n type === null ||\n from === undefined ||\n from === null ||\n to === undefined ||\n to === null ||\n label === undefined ||\n label === null\n )\n return;\n\n let rel = {};\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n\n if (techn === undefined || techn === null) {\n rel.techn = { text: '' };\n } else {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n\n if (descr === undefined || descr === null) {\n rel.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n};\n\n//type, alias, label, ?descr, ?sprite, ?tags, $link\nexport const addPersonOrSystem = function (typeC4Shape, alias, label, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n personOrSystem.label = { text: '' };\n } else {\n personOrSystem.label = { text: label };\n }\n\n if (descr === undefined || descr === null) {\n personOrSystem.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n};\n\n//type, alias, label, ?techn, ?descr ?sprite, ?tags, $link\nexport const addContainer = function (typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let container = {};\n const old = c4ShapeArray.find((container) => container.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n container.label = { text: '' };\n } else {\n container.label = { text: label };\n }\n\n if (techn === undefined || techn === null) {\n container.techn = { text: '' };\n } else {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n\n if (descr === undefined || descr === null) {\n container.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n};\n\n//type, alias, label, ?techn, ?descr ?sprite, ?tags, $link\nexport const addComponent = function (typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let component = {};\n const old = c4ShapeArray.find((component) => component.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n component.label = { text: '' };\n } else {\n component.label = { text: label };\n }\n\n if (techn === undefined || techn === null) {\n component.techn = { text: '' };\n } else {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n\n if (descr === undefined || descr === null) {\n component.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n};\n\n//alias, label, ?type, ?tags, $link\nexport const addPersonOrSystemBoundary = function (alias, label, type, tags, link) {\n // if (parentBoundary === null) return;\n\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let boundary = {};\n const old = boundarys.find((boundary) => boundary.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n boundary.label = { text: '' };\n } else {\n boundary.label = { text: label };\n }\n\n if (type === undefined || type === null) {\n boundary.type = { text: 'system' };\n } else {\n if (typeof type === 'object') {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\n\n//alias, label, ?type, ?tags, $link\nexport const addContainerBoundary = function (alias, label, type, tags, link) {\n // if (parentBoundary === null) return;\n\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let boundary = {};\n const old = boundarys.find((boundary) => boundary.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n boundary.label = { text: '' };\n } else {\n boundary.label = { text: label };\n }\n\n if (type === undefined || type === null) {\n boundary.type = { text: 'container' };\n } else {\n if (typeof type === 'object') {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\n\n//alias, label, ?type, ?descr, ?sprite, ?tags, $link\nexport const addDeploymentNode = function (\n nodeType,\n alias,\n label,\n type,\n descr,\n sprite,\n tags,\n link\n) {\n // if (parentBoundary === null) return;\n\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let boundary = {};\n const old = boundarys.find((boundary) => boundary.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n boundary.label = { text: '' };\n } else {\n boundary.label = { text: label };\n }\n\n if (type === undefined || type === null) {\n boundary.type = { text: 'node' };\n } else {\n if (typeof type === 'object') {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n\n if (descr === undefined || descr === null) {\n boundary.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\n\nexport const popBoundaryParseStack = function () {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n};\n\n//elementName, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite\nexport const updateElStyle = function (\n typeC4Shape,\n elementName,\n bgColor,\n fontColor,\n borderColor,\n shadowing,\n shape,\n sprite,\n techn,\n legendText,\n legendSprite\n) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === undefined) {\n old = boundarys.find((element) => element.alias === elementName);\n if (old === undefined) {\n return;\n }\n }\n if (bgColor !== undefined && bgColor !== null) {\n if (typeof bgColor === 'object') {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== undefined && fontColor !== null) {\n if (typeof fontColor === 'object') {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== undefined && borderColor !== null) {\n if (typeof borderColor === 'object') {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== undefined && shadowing !== null) {\n if (typeof shadowing === 'object') {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== undefined && shape !== null) {\n if (typeof shape === 'object') {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== undefined && sprite !== null) {\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== undefined && techn !== null) {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== undefined && legendText !== null) {\n if (typeof legendText === 'object') {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== undefined && legendSprite !== null) {\n if (typeof legendSprite === 'object') {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n};\n\n//textColor, lineColor, ?offsetX, ?offsetY\nexport const updateRelStyle = function (\n typeC4Shape,\n from,\n to,\n textColor,\n lineColor,\n offsetX,\n offsetY\n) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === undefined) {\n return;\n }\n if (textColor !== undefined && textColor !== null) {\n if (typeof textColor === 'object') {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== undefined && lineColor !== null) {\n if (typeof lineColor === 'object') {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== undefined && offsetX !== null) {\n if (typeof offsetX === 'object') {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== undefined && offsetY !== null) {\n if (typeof offsetY === 'object') {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n};\n\n//?c4ShapeInRow, ?c4BoundaryInRow\nexport const updateLayoutConfig = function (typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow;\n let c4BoundaryInRowValue = c4BoundaryInRow;\n\n if (typeof c4ShapeInRowParam === 'object') {\n let [key, value] = Object.entries(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === 'object') {\n let [key, value] = Object.entries(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n\n if (c4ShapeInRowValue >= 1) c4ShapeInRow = c4ShapeInRowValue;\n if (c4BoundaryInRowValue >= 1) c4BoundaryInRow = c4BoundaryInRowValue;\n};\n\nexport const getC4ShapeInRow = function () {\n return c4ShapeInRow;\n};\nexport const getC4BoundaryInRow = function () {\n return c4BoundaryInRow;\n};\nexport const getCurrentBoundaryParse = function () {\n return currentBoundaryParse;\n};\n\nexport const getParentBoundaryParse = function () {\n return parentBoundaryParse;\n};\n\nexport const getC4ShapeArray = function (parentBoundary) {\n if (parentBoundary === undefined || parentBoundary === null) return c4ShapeArray;\n else\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n};\nexport const getC4Shape = function (alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n};\nexport const getC4ShapeKeys = function (parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n};\n\nexport const getBoundarys = function (parentBoundary) {\n if (parentBoundary === undefined || parentBoundary === null) return boundarys;\n else return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);\n};\n\nexport const getRels = function () {\n return rels;\n};\n\nexport const getTitle = function () {\n return title;\n};\n\nexport const setWrap = function (wrapSetting) {\n wrapEnabled = wrapSetting;\n};\n\nexport const autoWrap = function () {\n return wrapEnabled;\n};\n\nexport const clear = function () {\n c4ShapeArray = [];\n boundarys = [\n {\n alias: 'global',\n label: { text: 'global' },\n type: { text: 'global' },\n tags: null,\n link: null,\n parentBoundary: '',\n },\n ];\n parentBoundaryParse = '';\n currentBoundaryParse = 'global';\n boundaryParseStack = [''];\n rels = [];\n\n boundaryParseStack = [''];\n title = '';\n wrapEnabled = false;\n description = '';\n c4ShapeInRow = 4;\n c4BoundaryInRow = 2;\n};\n\nexport const LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n};\n\nexport const ARROWTYPE = {\n FILLED: 0,\n OPEN: 1,\n};\n\nexport const PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2,\n};\n\nexport const setTitle = function (txt) {\n let sanitizedText = sanitizeText(txt, configApi.getConfig());\n title = sanitizedText;\n};\n\nexport default {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n parseDirective,\n getConfig: () => configApi.getConfig().c4,\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type,\n // apply,\n};\n","import { select } from 'd3';\nimport svgDraw, { drawText, fixLifeLineHeights } from './svgDraw';\nimport { log } from '../../logger';\nimport { parser } from './parser/c4Diagram';\nimport common from '../common/common';\nimport c4Db from './c4Db';\nimport * as configApi from '../../config';\nimport utils, {\n wrapLabel,\n calculateTextWidth,\n calculateTextHeight,\n assignWithDepth,\n configureSvgSize,\n} from '../../utils';\nimport addSVGAccessibilityFields from '../../accessibility';\n\nlet globalBoundaryMaxX = 0,\n globalBoundaryMaxY = 0;\n\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\n\nparser.yy = c4Db;\n\nlet conf = {};\n\nclass Bounds {\n constructor() {\n this.name = '';\n this.data = {};\n this.data.startx = undefined;\n this.data.stopx = undefined;\n this.data.starty = undefined;\n this.data.stopy = undefined;\n this.data.widthLimit = undefined;\n\n this.nextData = {};\n this.nextData.startx = undefined;\n this.nextData.stopx = undefined;\n this.nextData.starty = undefined;\n this.nextData.stopy = undefined;\n this.nextData.cnt = 0;\n\n setConf(parser.yy.getConfig());\n }\n\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n\n updateVal(obj, key, val, fun) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx =\n this.nextData.startx === this.nextData.stopx\n ? this.nextData.stopx + c4Shape.margin\n : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (\n _startx >= this.data.widthLimit ||\n _stopx >= this.data.widthLimit ||\n this.nextData.cnt > c4ShapeInRow\n ) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n\n this.updateVal(this.data, 'startx', _startx, Math.min);\n this.updateVal(this.data, 'starty', _starty, Math.min);\n this.updateVal(this.data, 'stopx', _stopx, Math.max);\n this.updateVal(this.data, 'stopy', _stopy, Math.max);\n\n this.updateVal(this.nextData, 'startx', _startx, Math.min);\n this.updateVal(this.nextData, 'starty', _starty, Math.min);\n this.updateVal(this.nextData, 'stopx', _stopx, Math.max);\n this.updateVal(this.nextData, 'stopy', _stopy, Math.max);\n }\n\n init() {\n this.name = '';\n this.data = {\n startx: undefined,\n stopx: undefined,\n starty: undefined,\n stopy: undefined,\n widthLimit: undefined,\n };\n this.nextData = {\n startx: undefined,\n stopx: undefined,\n starty: undefined,\n stopy: undefined,\n cnt: 0,\n };\n setConf(parser.yy.getConfig());\n }\n\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n}\n\nexport const setConf = function (cnf) {\n assignWithDepth(conf, cnf);\n\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\n\nconst c4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + 'FontFamily'],\n fontSize: cnf[typeC4Shape + 'FontSize'],\n fontWeight: cnf[typeC4Shape + 'FontWeight'],\n };\n};\n\nconst boundaryFont = (cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight,\n };\n};\n\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight,\n };\n};\n\n/**\n * @param textType\n * @param c4Shape\n * @param c4ShapeTextWrap\n * @param textConf\n * @param textLimitWidth\n */\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;\n // c4Shape[textType].width = calculateTextWidth(c4Shape[textType].text, textConf);\n c4Shape[textType].width = textLimitWidth;\n // c4Shape[textType].height = c4Shape[textType].textLines * textConf.fontSize;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (let i = 0; i < lines.length; i++) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(lines[i], textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(lines[i], textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n // c4Shapes[textType].height = c4Shapes[textType].textLines * textConf.fontSize;\n }\n }\n}\n\nexport const drawBoundary = function (diagram, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n\n boundary.label.y = conf.c4ShapeMargin - 35;\n\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = 'bold';\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH('label', boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n\n svgDraw.drawBoundary(diagram, boundary, conf);\n};\n\nexport const drawC4ShapeArray = function (currentBounds, diagram, c4ShapeArray, c4ShapeKeys) {\n // Upper Y is relative point\n let Y = 0;\n // Draw the c4ShapeArray\n for (let i = 0; i < c4ShapeKeys.length; i++) {\n Y = 0;\n const c4Shape = c4ShapeArray[c4ShapeKeys[i]];\n\n // calc c4 shape type width and height\n\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n '<<' + c4Shape.typeC4Shape.text + '>>',\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n\n // set image width and height c4Shape.x + c4Shape.width / 2 - 24, c4Shape.y + 28\n // let imageWidth = 0,\n // imageHeight = 0,\n // imageY = 0;\n //\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n case 'external_person':\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n\n // Y = conf.c4ShapePadding + c4Shape.image.height;\n\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = 'bold';\n calcC4ShapeTextWH('label', c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape['label'].Y = Y + 8;\n Y = c4Shape['label'].Y + c4Shape['label'].height;\n\n if (c4Shape.type && c4Shape.type.text !== '') {\n c4Shape.type.text = '[' + c4Shape.type.text + ']';\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH('type', c4Shape, c4ShapeTextWrap, c4ShapeTypeConf, textLimitWidth);\n c4Shape['type'].Y = Y + 5;\n Y = c4Shape['type'].Y + c4Shape['type'].height;\n } else if (c4Shape.techn && c4Shape.techn.text !== '') {\n c4Shape.techn.text = '[' + c4Shape.techn.text + ']';\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH('techn', c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape['techn'].Y = Y + 5;\n Y = c4Shape['techn'].Y + c4Shape['techn'].height;\n }\n\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n\n if (c4Shape.descr && c4Shape.descr.text !== '') {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH('descr', c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape['descr'].Y = Y + 20;\n Y = c4Shape['descr'].Y + c4Shape['descr'].height;\n\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape['descr'].textLines * 5;\n }\n\n rectWidth = rectWidth + conf.c4ShapePadding;\n // let rectHeight =\n\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n\n currentBounds.insert(c4Shape);\n\n const height = svgDraw.drawC4Shape(diagram, c4Shape, conf);\n }\n\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n};\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n}\n\n/* * *\n * Get the intersection of the line between the center point of a rectangle and a point outside the rectangle.\n * Algorithm idea.\n * Using a point outside the rectangle as the coordinate origin, the graph is divided into four quadrants, and each quadrant is divided into two cases, with separate treatment on the coordinate axes\n * 1. The case of coordinate axes.\n * 1. The case of the negative x-axis\n * 2. The case of the positive x-axis\n * 3. The case of the positive y-axis\n * 4. The negative y-axis case\n * 2. Quadrant cases.\n * 2.1. first quadrant: the case where the line intersects the left side of the rectangle; the case where it intersects the lower side of the rectangle\n * 2.2. second quadrant: the case where the line intersects the right side of the rectangle; the case where it intersects the lower edge of the rectangle\n * 2.3. third quadrant: the case where the line intersects the right side of the rectangle; the case where it intersects the upper edge of the rectangle\n * 2.4. fourth quadrant: the case where the line intersects the left side of the rectangle; the case where it intersects the upper side of the rectangle\n *\n */\nlet getIntersectPoint = function (fromNode, endPoint) {\n let x1 = fromNode.x;\n\n let y1 = fromNode.y;\n\n let x2 = endPoint.x;\n\n let y2 = endPoint.y;\n\n let fromCenterX = x1 + fromNode.width / 2;\n\n let fromCenterY = y1 + fromNode.height / 2;\n\n let dx = Math.abs(x1 - x2);\n\n let dy = Math.abs(y1 - y2);\n\n let tanDYX = dy / dx;\n\n let fromDYX = fromNode.height / fromNode.width;\n\n let returnPoint = null;\n\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + (tanDYX * fromNode.width) / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - ((dx / dy) * fromNode.height) / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n //\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + (tanDYX * fromNode.width) / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + ((dx / dy) * fromNode.height) / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - (tanDYX * fromNode.width) / 2);\n } else {\n returnPoint = new Point(fromCenterX + ((fromNode.height / 2) * dx) / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - (fromNode.width / 2) * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - ((fromNode.height / 2) * dx) / dy, y1);\n }\n }\n return returnPoint;\n};\n\nlet getIntersectPoints = function (fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint: startPoint, endPoint: endPoint };\n};\n\nexport const drawRels = function (diagram, rels, getC4ShapeObj) {\n let i = 0;\n for (let rel of rels) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = parser.yy.getC4Type();\n if (diagramType === 'C4Dynamic') rel.label.text = i + ': ' + rel.label.text;\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH('label', rel, relTextWrap, relConf, textLimitWidth);\n\n if (rel.techn && rel.techn.text !== '') {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH('techn', rel, relTextWrap, relConf, textLimitWidth);\n }\n\n if (rel.descr && rel.descr.text !== '') {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH('descr', rel, relTextWrap, relConf, textLimitWidth);\n }\n\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw.drawRels(diagram, rels, conf);\n};\n\n/**\n * @param diagram\n * @param parentBoundaryAlias\n * @param parentBounds\n * @param currentBoundarys\n */\nfunction drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentBoundarys) {\n let currentBounds = new Bounds();\n // Calculate the width limit of the boundar. label/type 的长度,\n currentBounds.data.widthLimit =\n parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundarys.length);\n // Math.min(\n // conf.width * conf.c4ShapeInRow + conf.c4ShapeMargin * conf.c4ShapeInRow * 2,\n // parentBounds.data.widthLimit / Math.min(conf.c4BoundaryInRow, currentBoundarys.length)\n // );\n for (let i = 0; i < currentBoundarys.length; i++) {\n let currentBoundary = currentBoundarys[i];\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = 'bold';\n calcC4ShapeTextWH(\n 'label',\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary['label'].Y = Y + 8;\n Y = currentBoundary['label'].Y + currentBoundary['label'].height;\n\n if (currentBoundary.type && currentBoundary.type.text !== '') {\n currentBoundary.type.text = '[' + currentBoundary.type.text + ']';\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n 'type',\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary['type'].Y = Y + 5;\n Y = currentBoundary['type'].Y + currentBoundary['type'].height;\n }\n\n if (currentBoundary.descr && currentBoundary.descr.text !== '') {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n 'descr',\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary['descr'].Y = Y + 20;\n Y = currentBoundary['descr'].Y + currentBoundary['descr'].height;\n }\n\n if (i == 0 || i % c4BoundaryInRow === 0) {\n // Calculate the drawing start point of the currentBoundarys.\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n // Calculate the drawing start point of the currentBoundarys.\n let _x =\n currentBounds.data.stopx !== currentBounds.data.startx\n ? currentBounds.data.stopx + conf.diagramMarginX\n : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = parser.yy.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = parser.yy.getC4ShapeKeys(currentBoundary.alias);\n\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundarys = parser.yy.getBoundarys(parentBoundaryAlias);\n\n if (nextCurrentBoundarys.length > 0) {\n // draw boundary inside currentBoundary\n // bounds.init();\n // parentBoundaryWidthLimit = bounds.data.stopx - bounds.startx;\n drawInsideBoundary(diagram, parentBoundaryAlias, currentBounds, nextCurrentBoundarys);\n }\n // draw boundary\n if (currentBoundary.alias !== 'global') drawBoundary(diagram, currentBoundary, currentBounds);\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\n\n/**\n * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text.\n *\n * @param {any} text\n * @param {any} id\n */\nexport const draw = function (text, id) {\n conf = configApi.getConfig().c4;\n const securityLevel = configApi.getConfig().securityLevel;\n // Handle root and Document for when rendering in sanbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n\n let db = parser.yy;\n\n parser.yy.clear();\n parser.yy.setWrap(conf.wrap);\n parser.parse(text + '\\n');\n\n c4ShapeInRow = db.getC4ShapeInRow();\n c4BoundaryInRow = db.getC4BoundaryInRow();\n\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n\n const diagram =\n securityLevel === 'sandbox' ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n\n svgDraw.insertComputerIcon(diagram);\n svgDraw.insertDatabaseIcon(diagram);\n svgDraw.insertClockIcon(diagram);\n\n let screenBounds = new Bounds();\n\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n\n const title = parser.yy.getTitle();\n const c4type = parser.yy.getC4Type();\n let currentBoundarys = parser.yy.getBoundarys('');\n // switch (c4type) {\n // case 'C4Context':\n drawInsideBoundary(diagram, '', screenBounds, currentBoundarys);\n // break;\n // }\n\n // The arrow head definition is attached to the svg once\n svgDraw.insertArrowHead(diagram);\n svgDraw.insertArrowEnd(diagram);\n svgDraw.insertArrowCrossHead(diagram);\n svgDraw.insertArrowFilledHead(diagram);\n\n drawRels(diagram, parser.yy.getRels(), parser.yy.getC4Shape);\n\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n\n const box = screenBounds.data;\n\n // Make sure the height of the diagram supports long menus.\n let boxHeight = box.stopy - box.starty;\n\n let height = boxHeight + 2 * conf.diagramMarginY;\n\n // Make sure the width of the diagram supports wide menus.\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n\n if (title) {\n diagram\n .append('text')\n .text(title)\n .attr('x', (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX)\n .attr('y', box.starty + conf.diagramMarginY);\n }\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n const extraVertForTitle = title ? 60 : 0;\n diagram.attr(\n 'viewBox',\n box.startx -\n conf.diagramMarginX +\n ' -' +\n (conf.diagramMarginY + extraVertForTitle) +\n ' ' +\n width +\n ' ' +\n (height + extraVertForTitle)\n );\n\n addSVGAccessibilityFields(parser.yy, diagram, id);\n log.debug(`models:`, box);\n};\n\nexport default {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary,\n setConf,\n draw,\n};\n","const getStyles = (options) =>\n `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`;\n\nexport default getStyles;\n","import common from '../common/common';\nimport { addFunction } from '../../interactionDb';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\nexport const drawRect = 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\n if (rectData.attrs !== 'undefined' && rectData.attrs !== null) {\n for (let attrKey in rectData.attrs) rectElem.attr(attrKey, rectData.attrs[attrKey]);\n }\n\n if (rectData.class !== 'undefined') {\n rectElem.attr('class', rectData.class);\n }\n\n return rectElem;\n};\n\nexport const drawImage = function (elem, width, height, x, y, link) {\n const imageElem = elem.append('image');\n imageElem.attr('width', width);\n imageElem.attr('height', height);\n imageElem.attr('x', x);\n imageElem.attr('y', y);\n let sanitizedLink = link.startsWith('data:image/png;base64') ? link : sanitizeUrl(link);\n imageElem.attr('xlink:href', sanitizedLink);\n};\n\nexport const drawEmbeddedImage = function (elem, x, y, link) {\n const imageElem = elem.append('use');\n imageElem.attr('x', x);\n imageElem.attr('y', y);\n var sanitizedLink = sanitizeUrl(link);\n imageElem.attr('xlink:href', '#' + sanitizedLink);\n};\n\nexport const drawText = function (elem, textData) {\n let prevTextHeight = 0,\n textHeight = 0;\n const lines = textData.text.split(common.lineBreakRegex);\n\n let textElems = [];\n let dy = 0;\n let yfunc = () => textData.y;\n if (\n typeof textData.valign !== 'undefined' &&\n typeof textData.textMargin !== 'undefined' &&\n textData.textMargin > 0\n ) {\n switch (textData.valign) {\n case 'top':\n case 'start':\n yfunc = () => Math.round(textData.y + textData.textMargin);\n break;\n case 'middle':\n case 'center':\n yfunc = () =>\n Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);\n break;\n case 'bottom':\n case 'end':\n yfunc = () =>\n Math.round(\n textData.y +\n (prevTextHeight + textHeight + 2 * textData.textMargin) -\n textData.textMargin\n );\n break;\n }\n }\n if (\n typeof textData.anchor !== 'undefined' &&\n typeof textData.textMargin !== 'undefined' &&\n typeof textData.width !== 'undefined'\n ) {\n switch (textData.anchor) {\n case 'left':\n case 'start':\n textData.x = Math.round(textData.x + textData.textMargin);\n textData.anchor = 'start';\n textData.dominantBaseline = 'text-after-edge';\n textData.alignmentBaseline = 'middle';\n break;\n case 'middle':\n case 'center':\n textData.x = Math.round(textData.x + textData.width / 2);\n textData.anchor = 'middle';\n textData.dominantBaseline = 'middle';\n textData.alignmentBaseline = 'middle';\n break;\n case 'right':\n case 'end':\n textData.x = Math.round(textData.x + textData.width - textData.textMargin);\n textData.anchor = 'end';\n textData.dominantBaseline = 'text-before-edge';\n textData.alignmentBaseline = 'middle';\n break;\n }\n }\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i];\n if (\n typeof textData.textMargin !== 'undefined' &&\n textData.textMargin === 0 &&\n typeof textData.fontSize !== 'undefined'\n ) {\n dy = i * textData.fontSize;\n }\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', yfunc());\n if (typeof textData.anchor !== 'undefined') {\n textElem\n .attr('text-anchor', textData.anchor)\n .attr('dominant-baseline', textData.dominantBaseline)\n .attr('alignment-baseline', textData.alignmentBaseline);\n }\n if (typeof textData.fontFamily !== 'undefined') {\n textElem.style('font-family', textData.fontFamily);\n }\n if (typeof textData.fontSize !== 'undefined') {\n textElem.style('font-size', textData.fontSize);\n }\n if (typeof textData.fontWeight !== 'undefined') {\n textElem.style('font-weight', textData.fontWeight);\n }\n if (typeof textData.fill !== 'undefined') {\n textElem.attr('fill', textData.fill);\n }\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n if (typeof textData.dy !== 'undefined') {\n textElem.attr('dy', textData.dy);\n } else if (dy !== 0) {\n textElem.attr('dy', dy);\n }\n\n if (textData.tspan) {\n const span = textElem.append('tspan');\n span.attr('x', textData.x);\n if (typeof textData.fill !== 'undefined') {\n span.attr('fill', textData.fill);\n }\n span.text(line);\n } else {\n textElem.text(line);\n }\n if (\n typeof textData.valign !== 'undefined' &&\n typeof textData.textMargin !== 'undefined' &&\n textData.textMargin > 0\n ) {\n textHeight += (textElem._groups || textElem)[0][0].getBBox().height;\n prevTextHeight = textHeight;\n }\n\n textElems.push(textElem);\n }\n\n return textElems;\n};\n\nexport const drawLabel = function (elem, txtObject) {\n /**\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} cut\n * @returns {any}\n */\n function genPoints(x, y, width, height, cut) {\n return (\n x +\n ',' +\n y +\n ' ' +\n (x + width) +\n ',' +\n y +\n ' ' +\n (x + width) +\n ',' +\n (y + height - cut) +\n ' ' +\n (x + width - cut * 1.2) +\n ',' +\n (y + height) +\n ' ' +\n x +\n ',' +\n (y + height)\n );\n }\n const polygon = elem.append('polygon');\n polygon.attr('points', genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));\n polygon.attr('class', 'labelBox');\n\n txtObject.y = txtObject.y + txtObject.height / 2;\n\n drawText(elem, txtObject);\n return polygon;\n};\n\nexport const drawRels = (elem, rels, conf) => {\n const relsElem = elem.append('g');\n let i = 0;\n for (let rel of rels) {\n let textColor = rel.textColor ? rel.textColor : '#444444';\n let strokeColor = rel.lineColor ? rel.lineColor : '#444444';\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n\n let url = '';\n if (i === 0) {\n let line = relsElem.append('line');\n line.attr('x1', rel.startPoint.x);\n line.attr('y1', rel.startPoint.y);\n line.attr('x2', rel.endPoint.x);\n line.attr('y2', rel.endPoint.y);\n\n line.attr('stroke-width', '1');\n line.attr('stroke', strokeColor);\n line.style('fill', 'none');\n if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)');\n if (rel.type === 'birel' || rel.type === 'rel_b')\n line.attr('marker-start', 'url(' + url + '#arrowend)');\n i = -1;\n } else {\n let line = relsElem.append('path');\n line\n .attr('fill', 'none')\n .attr('stroke-width', '1')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,starty Qcontrolx,controly stopx,stopy '\n .replaceAll('startx', rel.startPoint.x)\n .replaceAll('starty', rel.startPoint.y)\n .replaceAll(\n 'controlx',\n rel.startPoint.x +\n (rel.endPoint.x - rel.startPoint.x) / 2 -\n (rel.endPoint.x - rel.startPoint.x) / 4\n )\n .replaceAll('controly', rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2)\n .replaceAll('stopx', rel.endPoint.x)\n .replaceAll('stopy', rel.endPoint.y)\n );\n if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)');\n if (rel.type === 'birel' || rel.type === 'rel_b')\n line.attr('marker-start', 'url(' + url + '#arrowend)');\n }\n\n let messageConf = conf.messageFont();\n _drawTextCandidateFunc(conf)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) +\n Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 +\n offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) +\n Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 +\n offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n\n if (rel.techn && rel.techn.text !== '') {\n messageConf = conf.messageFont();\n _drawTextCandidateFunc(conf)(\n '[' + rel.techn.text + ']',\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) +\n Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 +\n offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) +\n Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 +\n conf.messageFontSize +\n 5 +\n offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, 'font-style': 'italic' },\n messageConf\n );\n }\n }\n};\n\n/**\n * Draws an boundary in the diagram\n *\n * @param {any} elem - The diagram we'll draw to.\n * @param {any} boundary - The boundary to draw.\n * @param {any} conf - DrawText implementation discriminator object\n */\nconst drawBoundary = function (elem, boundary, conf) {\n const boundaryElem = elem.append('g');\n\n let fillColor = boundary.bgColor ? boundary.bgColor : 'none';\n let strokeColor = boundary.borderColor ? boundary.borderColor : '#444444';\n let fontColor = boundary.fontColor ? boundary.fontColor : 'black';\n\n let attrsValue = { 'stroke-width': 1.0, 'stroke-dasharray': '7.0,7.0' };\n if (boundary.nodeType) attrsValue = { 'stroke-width': 1.0 };\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue,\n };\n\n drawRect(boundaryElem, rectData);\n\n // draw label\n let boundaryConf = conf.boundaryFont();\n boundaryConf.fontWeight = 'bold';\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: '#444444' },\n boundaryConf\n );\n\n // draw type\n if (boundary.type && boundary.type.text !== '') {\n boundaryConf = conf.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: '#444444' },\n boundaryConf\n );\n }\n\n // draw descr\n if (boundary.descr && boundary.descr.text !== '') {\n boundaryConf = conf.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: '#444444' },\n boundaryConf\n );\n }\n};\n\nexport const drawC4Shape = function (elem, c4Shape, conf) {\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf[c4Shape.typeC4Shape.text + '_bg_color'];\n let strokeColor = c4Shape.borderColor\n ? c4Shape.borderColor\n : conf[c4Shape.typeC4Shape.text + '_border_color'];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : '#FFFFFF';\n\n let personImg =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=';\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n personImg =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=';\n break;\n case 'external_person':\n personImg =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=';\n break;\n }\n\n const c4ShapeElem = elem.append('g');\n c4ShapeElem.attr('class', 'person-man');\n\n // \n // draw rect of c4Shape\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n case 'external_person':\n case 'system':\n case 'external_system':\n case 'container':\n case 'external_container':\n case 'component':\n case 'external_component':\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.style = 'stroke:' + strokeColor + ';stroke-width:0.5;';\n rect.rx = 2.5;\n rect.ry = 2.5;\n drawRect(c4ShapeElem, rect);\n break;\n case 'system_db':\n case 'external_system_db':\n case 'container_db':\n case 'external_container_db':\n case 'component_db':\n case 'external_component_db':\n c4ShapeElem\n .append('path')\n .attr('fill', fillColor)\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height'\n .replaceAll('startx', c4Shape.x)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('half', c4Shape.width / 2)\n .replaceAll('height', c4Shape.height)\n );\n c4ShapeElem\n .append('path')\n .attr('fill', 'none')\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10'\n .replaceAll('startx', c4Shape.x)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('half', c4Shape.width / 2)\n );\n break;\n case 'system_queue':\n case 'external_system_queue':\n case 'container_queue':\n case 'external_container_queue':\n case 'component_queue':\n case 'external_component_queue':\n c4ShapeElem\n .append('path')\n .attr('fill', fillColor)\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half'\n .replaceAll('startx', c4Shape.x)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('width', c4Shape.width)\n .replaceAll('half', c4Shape.height / 2)\n );\n c4ShapeElem\n .append('path')\n .attr('fill', 'none')\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half'\n .replaceAll('startx', c4Shape.x + c4Shape.width)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('half', c4Shape.height / 2)\n );\n break;\n }\n\n // draw type of c4Shape\n let c4ShapeFontConf = getC4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeElem\n .append('text')\n .attr('fill', fontColor)\n .attr('font-family', c4ShapeFontConf.fontFamily)\n .attr('font-size', c4ShapeFontConf.fontSize - 2)\n .attr('font-style', 'italic')\n .attr('lengthAdjust', 'spacing')\n .attr('textLength', c4Shape.typeC4Shape.width)\n .attr('x', c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2)\n .attr('y', c4Shape.y + c4Shape.typeC4Shape.Y)\n .text('<<' + c4Shape.typeC4Shape.text + '>>');\n\n // draw image/sprite\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n case 'external_person':\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n\n // draw label\n let textFontConf = conf[c4Shape.typeC4Shape.text + 'Font']();\n textFontConf.fontWeight = 'bold';\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n\n // draw techn/type\n textFontConf = conf[c4Shape.typeC4Shape.text + 'Font']();\n textFontConf.fontColor = fontColor;\n\n if (c4Shape.thchn && c4Shape.thchn.text !== '') {\n _drawTextCandidateFunc(conf)(\n c4Shape.thchn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.thchn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, 'font-style': 'italic' },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== '') {\n _drawTextCandidateFunc(conf)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, 'font-style': 'italic' },\n textFontConf\n );\n }\n\n // draw descr\n if (c4Shape.descr && c4Shape.descr.text !== '') {\n textFontConf = conf.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n\n return c4Shape.height;\n};\n\nexport const insertDatabaseIcon = function (elem) {\n elem\n .append('defs')\n .append('symbol')\n .attr('id', 'database')\n .attr('fill-rule', 'evenodd')\n .attr('clip-rule', 'evenodd')\n .append('path')\n .attr('transform', 'scale(.5)')\n .attr(\n 'd',\n 'M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z'\n );\n};\n\nexport const insertComputerIcon = function (elem) {\n elem\n .append('defs')\n .append('symbol')\n .attr('id', 'computer')\n .attr('width', '24')\n .attr('height', '24')\n .append('path')\n .attr('transform', 'scale(.5)')\n .attr(\n 'd',\n 'M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z'\n );\n};\n\nexport const insertClockIcon = function (elem) {\n elem\n .append('defs')\n .append('symbol')\n .attr('id', 'clock')\n .attr('width', '24')\n .attr('height', '24')\n .append('path')\n .attr('transform', 'scale(.5)')\n .attr(\n 'd',\n 'M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z'\n );\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param elem\n */\nexport const insertArrowHead = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'arrowhead')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z'); // this is actual shape for arrowhead\n};\nexport const insertArrowEnd = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'arrowend')\n .attr('refX', 1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 10 0 L 0 5 L 10 10 z'); // this is actual shape for arrowhead\n};\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {any} elem\n */\nexport const insertArrowFilledHead = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'filled-head')\n .attr('refX', 18)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n/**\n * Setup node number. The result is appended to the svg.\n *\n * @param {any} elem\n */\nexport const insertDynamicNumber = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'sequencenumber')\n .attr('refX', 15)\n .attr('refY', 15)\n .attr('markerWidth', 60)\n .attr('markerHeight', 40)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', 15)\n .attr('cy', 15)\n .attr('r', 6);\n // .style(\"fill\", '#f00');\n};\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {any} elem\n */\nexport const insertArrowCrossHead = function (elem) {\n const defs = elem.append('defs');\n const marker = defs\n .append('marker')\n .attr('id', 'crosshead')\n .attr('markerWidth', 15)\n .attr('markerHeight', 8)\n .attr('orient', 'auto')\n .attr('refX', 16)\n .attr('refY', 4);\n\n // The arrow\n marker\n .append('path')\n .attr('fill', 'black')\n .attr('stroke', '#000000')\n .style('stroke-dasharray', '0, 0')\n .attr('stroke-width', '1px')\n .attr('d', 'M 9,2 V 6 L16,4 Z');\n\n // The cross\n marker\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', '#000000')\n .style('stroke-dasharray', '0, 0')\n .attr('stroke-width', '1px')\n .attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7');\n // this is actual shape for arrowhead\n};\n\nexport const getTextObj = function () {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: undefined,\n style: '#666',\n width: undefined,\n height: undefined,\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: undefined,\n };\n};\n\nexport const getNoteRect = function () {\n return {\n x: 0,\n y: 0,\n fill: '#EDF2AE',\n stroke: '#666',\n width: 100,\n anchor: 'start',\n height: 100,\n rx: 0,\n ry: 0,\n };\n};\n\nconst getC4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + 'FontFamily'],\n fontSize: cnf[typeC4Shape + 'FontSize'],\n fontWeight: cnf[typeC4Shape + 'FontWeight'],\n };\n};\n\nconst _drawTextCandidateFunc = (function () {\n /**\n * @param {any} content\n * @param {any} g\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} textAttrs\n */\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g\n .append('text')\n .attr('x', x + width / 2)\n .attr('y', y + height / 2 + 5)\n .style('text-anchor', 'middle')\n .text(content);\n _setTextAttrs(text, textAttrs);\n }\n\n /**\n * @param {any} content\n * @param {any} g\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} textAttrs\n * @param {any} conf\n */\n function byTspan(content, g, x, y, width, height, textAttrs, conf) {\n const { fontSize, fontFamily, fontWeight } = conf;\n\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - (fontSize * (lines.length - 1)) / 2;\n const text = g\n .append('text')\n .attr('x', x + width / 2)\n .attr('y', y)\n .style('text-anchor', 'middle')\n .attr('dominant-baseline', 'middle')\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n text\n .append('tspan')\n // .attr('x', x + width / 2)\n .attr('dy', dy)\n .text(lines[i])\n // .attr('y', y + height / 2)\n .attr('alignment-baseline', 'mathematical');\n\n _setTextAttrs(text, textAttrs);\n }\n }\n\n /**\n * @param {any} content\n * @param {any} g\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} textAttrs\n * @param {any} conf\n */\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const s = g.append('switch');\n const f = s\n .append('foreignObject')\n .attr('x', x)\n .attr('y', y)\n .attr('width', width)\n .attr('height', height);\n\n const text = f\n .append('xhtml:div')\n .style('display', 'table')\n .style('height', '100%')\n .style('width', '100%');\n\n text\n .append('div')\n .style('display', 'table-cell')\n .style('text-align', 'center')\n .style('vertical-align', 'middle')\n .text(content);\n\n byTspan(content, s, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n\n /**\n * @param {any} toText\n * @param {any} fromTextAttrsDict\n */\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n // eslint-disable-line\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n\n return function (conf) {\n return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;\n };\n})();\n\nexport default {\n drawRect,\n drawText,\n drawLabel,\n drawBoundary,\n drawC4Shape,\n drawRels,\n drawImage,\n drawEmbeddedImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon,\n getTextObj,\n getNoteRect,\n sanitizeUrl,\n};\n","import { select } from 'd3';\nimport { log } from '../../logger';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport utils from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\nimport {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n clear as commonClear,\n} from '../../commonDb';\n\nconst MERMAID_DOM_ID_PREFIX = 'classid-';\n\nlet relations = [];\nlet classes = {};\nlet classCounter = 0;\n\nlet funs = [];\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, configApi.getConfig());\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst splitClassNameAndType = function (id) {\n let genericType = '';\n let className = id;\n\n if (id.indexOf('~') > 0) {\n let split = id.split('~');\n className = split[0];\n\n genericType = common.sanitizeText(split[1], configApi.getConfig());\n }\n\n return { className: className, type: genericType };\n};\n\n/**\n * Function called by parser when a node definition has been found.\n *\n * @param id\n * @public\n */\nexport const addClass = function (id) {\n let classId = splitClassNameAndType(id);\n // Only add class if not exists\n if (typeof classes[classId.className] !== 'undefined') return;\n\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter,\n };\n\n classCounter++;\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const classKeys = Object.keys(classes);\n for (let i = 0; i < classKeys.length; i++) {\n if (classes[classKeys[i]].id === id) {\n return classes[classKeys[i]].domId;\n }\n }\n};\n\nexport const clear = function () {\n relations = [];\n classes = {};\n funs = [];\n funs.push(setupToolTips);\n commonClear();\n};\n\nexport const getClass = function (id) {\n return classes[id];\n};\nexport const getClasses = function () {\n return classes;\n};\n\nexport const getRelations = function () {\n return relations;\n};\n\nexport const addRelation = function (relation) {\n log.debug('Adding relation: ' + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n\n relation.relationTitle1 = common.sanitizeText(\n relation.relationTitle1.trim(),\n configApi.getConfig()\n );\n\n relation.relationTitle2 = common.sanitizeText(\n relation.relationTitle2.trim(),\n configApi.getConfig()\n );\n\n relations.push(relation);\n};\n\n/**\n * Adds an annotation to the specified class Annotations mark special properties of the given type\n * (like 'interface' or 'service')\n *\n * @param className The class name\n * @param annotation The name of the annotation without any brackets\n * @public\n */\nexport const addAnnotation = function (className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\n\n/**\n * Adds a member to the specified class\n *\n * @param className The class name\n * @param member The full name of the member. If the member is enclosed in <> it is\n * treated as an annotation If the member is ending with a closing bracket ) it is treated as a\n * method Otherwise the member will be treated as a normal property\n * @public\n */\nexport const addMember = function (className, member) {\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes[validatedClassName];\n\n if (typeof member === 'string') {\n // Member can contain white spaces, we trim them out\n const memberString = member.trim();\n\n if (memberString.startsWith('<<') && memberString.endsWith('>>')) {\n // Remove leading and trailing brackets\n // theClass.annotations.push(memberString.substring(2, memberString.length - 2));\n theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(')') > 0) {\n theClass.methods.push(sanitizeText(memberString));\n } else if (memberString) {\n theClass.members.push(sanitizeText(memberString));\n }\n }\n};\n\nexport const addMembers = function (className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n};\n\nexport const cleanupLabel = function (label) {\n if (label.substring(0, 1) === ':') {\n return common.sanitizeText(label.substr(1).trim(), configApi.getConfig());\n } else {\n return sanitizeText(label.trim());\n }\n};\n\n/**\n * Called by parser when a special node is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param className Class to add\n */\nexport const setCssClass = function (ids, className) {\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].cssClasses.push(className);\n }\n });\n};\n\n/**\n * Called by parser when a tooltip is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param tooltip Tooltip to add\n */\nconst setTooltip = function (ids, tooltip) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (id) {\n if (typeof tooltip !== 'undefined') {\n classes[id].tooltip = common.sanitizeText(tooltip, config);\n }\n });\n};\n\n/**\n * Called by parser when a link is found. Adds the URL to the vertex data.\n *\n * @param ids Comma separated list of ids\n * @param linkStr URL to create a link for\n * @param target Target of the link, _blank by default as originally defined in the svgDraw.js file\n */\nexport const setLink = function (ids, linkStr, target) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].link = utils.formatUrl(linkStr, config);\n if (config.securityLevel === 'sandbox') {\n classes[id].linkTarget = '_top';\n } else if (typeof target === 'string') {\n classes[id].linkTarget = sanitizeText(target);\n } else {\n classes[id].linkTarget = '_blank';\n }\n }\n });\n setCssClass(ids, 'clickable');\n};\n\n/**\n * Called by parser when a click definition is found. Registers an event handler.\n *\n * @param ids Comma separated list of ids\n * @param functionName Function to be called on click\n * @param functionArgs Function args the function should be called with\n */\nexport const setClickEvent = function (ids, functionName, functionArgs) {\n ids.split(',').forEach(function (id) {\n setClickFunc(id, functionName, functionArgs);\n classes[id].haveCallback = true;\n });\n setCssClass(ids, 'clickable');\n};\n\nconst setClickFunc = function (domId, functionName, functionArgs) {\n const config = configApi.getConfig();\n let id = domId;\n let elemId = lookUpDomId(id);\n\n if (config.securityLevel !== 'loose') {\n return;\n }\n if (typeof functionName === 'undefined') {\n return;\n }\n if (typeof classes[id] !== 'undefined') {\n let argList = [];\n if (typeof functionArgs === 'string') {\n /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n /* Removes all double quotes at the start and end of an argument */\n /* This preserves all starting and ending whitespace inside */\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n\n /* if no arguments passed into callback, default to passing in id */\n if (argList.length === 0) {\n argList.push(elemId);\n }\n\n funs.push(function () {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n 'click',\n function () {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\n\nexport const bindFunctions = function (element) {\n funs.forEach(function (fun) {\n fun(element);\n });\n};\n\nexport const lineType = {\n LINE: 0,\n DOTTED_LINE: 1,\n};\n\nexport const relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n};\n\nconst setupToolTips = function (element) {\n let tooltipElem = select('.mermaidTooltip');\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);\n }\n\n const svg = select(element).select('svg');\n\n const nodes = svg.selectAll('g.node');\n nodes\n .on('mouseover', function () {\n const el = select(this);\n const title = el.attr('title');\n // Dont try to draw a tooltip if no data is provided\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n\n tooltipElem.transition().duration(200).style('opacity', '.9');\n tooltipElem\n .text(el.attr('title'))\n .style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px')\n .style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');\n el.classed('hover', true);\n })\n .on('mouseout', function () {\n tooltipElem.transition().duration(500).style('opacity', 0);\n const el = select(this);\n el.classed('hover', false);\n });\n};\nfuns.push(setupToolTips);\n\nlet direction = 'TB';\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\n\nexport default {\n parseDirective,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: () => configApi.getConfig().class,\n addClass,\n bindFunctions,\n clear,\n getClass,\n getClasses,\n addAnnotation,\n getRelations,\n addRelation,\n getDirection,\n setDirection,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n setLink,\n setTooltip,\n lookUpDomId,\n};\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport classDb, { lookUpDomId } from './classDb';\nimport { parser } from './parser/classDiagram';\nimport svgDraw from './svgDraw';\nimport { getConfig } from '../../config';\nimport { render } from '../../dagre-wrapper/index.js';\n// import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';\nimport { curveLinear } from 'd3';\nimport { interpolateToCurve, getStylesFromArray, setupGraphViewbox } from '../../utils';\nimport common from '../common/common';\nimport addSVGAccessibilityFields from '../../accessibility';\n\nparser.yy = classDb;\n\nlet idCache = {};\nconst padding = 20;\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\n\nconst conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Function that adds the vertices found during parsing to the graph to be rendered.\n *\n * @param {Object<\n * string,\n * { cssClasses: string[]; text: string; id: string; type: string; domId: string }\n * >} classes\n * Object containing the vertices.\n * @param {SVGGElement} g The graph that is to be drawn.\n */\nexport const addClasses = function (classes, g) {\n // const svg = select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(classes);\n log.info('keys:', keys);\n log.info(classes);\n\n // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition\n keys.forEach(function (id) {\n const vertex = classes[id];\n\n /**\n * Variable for storing the classes for the vertex\n *\n * @type {string}\n */\n let cssClassStr = '';\n if (vertex.cssClasses.length > 0) {\n cssClassStr = cssClassStr + ' ' + vertex.cssClasses.join(' ');\n }\n // if (vertex.classes.length > 0) {\n // classStr = vertex.classes.join(' ');\n // }\n\n const styles = { labelStyle: '' }; //getStylesFromArray(vertex.styles);\n\n // Use vertex id as text in the box if no text is provided by the graph definition\n let vertexText = vertex.text !== undefined ? vertex.text : vertex.id;\n\n // We create a SVG label, either by delegating to addHtmlLabel or manually\n // let vertexNode;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const node = {\n // label: vertexText.replace(\n // /fa[lrsb]?:fa-[\\w-]+/g,\n // s => ``\n // )\n // };\n // vertexNode = addHtmlLabel(svg, node).node();\n // vertexNode.parentNode.removeChild(vertexNode);\n // } else {\n // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n // const rows = vertexText.split(common.lineBreakRegex);\n\n // for (let j = 0; j < rows.length; j++) {\n // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n // tspan.setAttribute('dy', '1em');\n // tspan.setAttribute('x', '1');\n // tspan.textContent = rows[j];\n // svgLabel.appendChild(tspan);\n // }\n // vertexNode = svgLabel;\n // }\n\n let radious = 0;\n let _shape = '';\n // Set the shape based parameters\n switch (vertex.type) {\n case 'class':\n _shape = 'class_box';\n break;\n default:\n _shape = 'class_box';\n }\n // Add the node\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: sanitizeText(vertexText),\n classData: vertex,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n domId: vertex.domId,\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n\n log.info('setNode', {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: vertexText,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n });\n};\n\n/**\n * Add edges to graph based on parsed graph definition\n *\n * @param relations\n * @param {object} g The graph object\n */\nexport const addRelations = function (relations, g) {\n let cnt = 0;\n\n let defaultStyle;\n let defaultLabelStyle;\n\n // if (typeof relations.defaultStyle !== 'undefined') {\n // const defaultStyles = getStylesFromArray(relations.defaultStyle);\n // defaultStyle = defaultStyles.style;\n // defaultLabelStyle = defaultStyles.labelStyle;\n // }\n\n relations.forEach(function (edge) {\n cnt++;\n const edgeData = {};\n //Set relationship style and line type\n edgeData.classes = 'relation';\n edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';\n\n edgeData.id = 'id' + cnt;\n // Set link type for rendering\n if (edge.type === 'arrow_open') {\n edgeData.arrowhead = 'none';\n } else {\n edgeData.arrowhead = 'normal';\n }\n\n log.info(edgeData, edge);\n //Set edge extra labels\n //edgeData.startLabelLeft = edge.relationTitle1;\n edgeData.startLabelRight = edge.relationTitle1 === 'none' ? '' : edge.relationTitle1;\n edgeData.endLabelLeft = edge.relationTitle2 === 'none' ? '' : edge.relationTitle2;\n //edgeData.endLabelRight = edge.relationTitle2;\n\n //Set relation arrow types\n edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);\n edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);\n let style = '';\n let labelStyle = '';\n\n if (typeof edge.style !== 'undefined') {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n style = 'fill:none';\n if (typeof defaultStyle !== 'undefined') {\n style = defaultStyle;\n }\n if (typeof defaultLabelStyle !== 'undefined') {\n labelStyle = defaultLabelStyle;\n }\n }\n\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n\n if (typeof edge.interpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (typeof relations.defaultInterpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(relations.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n\n edge.text = edge.title;\n if (typeof edge.text === 'undefined') {\n if (typeof edge.style !== 'undefined') {\n edgeData.arrowheadStyle = 'fill: #333';\n }\n } else {\n edgeData.arrowheadStyle = 'fill: #333';\n edgeData.labelpos = 'c';\n\n if (getConfig().flowchart.htmlLabels) {\n // eslint-disable-line\n edgeData.labelType = 'html';\n edgeData.label = '' + edge.text + '';\n } else {\n edgeData.labelType = 'text';\n edgeData.label = edge.text.replace(common.lineBreakRegex, '\\n');\n\n if (typeof edge.style === 'undefined') {\n edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';\n }\n\n edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');\n }\n }\n // Add the edge to the graph\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Merges the value of `conf` with the passed `cnf`\n *\n * @param {object} cnf Config to merge\n */\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n */\nexport const draw = function (text, id) {\n log.info('Drawing class - ', id);\n classDb.clear();\n // const parser = classDb.parser;\n // parser.yy = classDb;\n\n // Parse the graph definition\n // try {\n parser.parse(text);\n // } catch (err) {\n // log.debug('Parsing failed');\n // }\n\n // Fetch the default direction, use TD if none was found\n //let dir = 'TD';\n\n const conf = getConfig().flowchart;\n const securityLevel = getConfig().securityLevel;\n log.info('config:', conf);\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n\n // Create the input mermaid.graph\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: classDb.getDirection(),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n // let subG;\n // const subGraphs = flowDb.getSubGraphs();\n // log.info('Subgraphs - ', subGraphs);\n // for (let i = subGraphs.length - 1; i >= 0; i--) {\n // subG = subGraphs[i];\n // log.info('Subgraph - ', subG);\n // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);\n // }\n\n // Fetch the vertices/nodes and edges/links from the parsed graph definition\n const classes = classDb.getClasses();\n const relations = classDb.getRelations();\n\n log.info(relations);\n addClasses(classes, g, id);\n addRelations(relations, g);\n\n // Add custom shapes\n // flowChartShapes.addToRenderV2(addShape);\n\n // Set up an SVG group so that we can translate the final graph.\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const svg = root.select(`[id=\"${id}\"]`);\n svg.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n // Run the renderer. This is what draws the final graph.\n const element = root.select('#' + id + ' g');\n render(element, g, ['aggregation', 'extension', 'composition', 'dependency'], 'classDiagram', id);\n\n setupGraphViewbox(g, svg, conf.diagramPadding, conf.useMaxWidth);\n\n // Add label rects for non html labels\n if (!conf.htmlLabels) {\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (let k = 0; k < labels.length; k++) {\n const label = labels[k];\n\n // Get dimensions of label\n const dim = label.getBBox();\n\n const rect = doc.createElementNS('http://www.w3.org/2000/svg', 'rect');\n rect.setAttribute('rx', 0);\n rect.setAttribute('ry', 0);\n rect.setAttribute('width', dim.width);\n rect.setAttribute('height', dim.height);\n // rect.setAttribute('style', 'fill:#e8e8e8;');\n\n label.insertBefore(rect, label.firstChild);\n }\n }\n\n addSVGAccessibilityFields(parser.yy, svg, id);\n // If node has a link, wrap it in an anchor SVG object.\n // const keys = Object.keys(classes);\n // keys.forEach(function(key) {\n // const vertex = classes[key];\n\n // if (vertex.link) {\n // const node = select('#' + id + ' [id=\"' + key + '\"]');\n // if (node) {\n // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');\n\n // const linkNode = node.insert(function() {\n // return link;\n // }, ':first-child');\n\n // const shape = node.select('.label-container');\n // if (shape) {\n // linkNode.append(function() {\n // return shape.node();\n // });\n // }\n\n // const label = node.select('.label');\n // if (label) {\n // linkNode.append(function() {\n // return label.node();\n // });\n // }\n // }\n // }\n // });\n};\n\n/**\n * Gets the arrow marker for a type index\n *\n * @param {number} type The type to look for\n * @returns {'aggregation' | 'extension' | 'composition' | 'dependency'} The arrow marker\n */\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = 'aggregation';\n break;\n case 1:\n marker = 'extension';\n break;\n case 2:\n marker = 'composition';\n break;\n case 3:\n marker = 'dependency';\n break;\n default:\n marker = 'none';\n }\n return marker;\n}\n\nexport default {\n setConf,\n draw,\n};\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport classDb, { lookUpDomId } from './classDb';\nimport { parser } from './parser/classDiagram';\nimport svgDraw from './svgDraw';\nimport { configureSvgSize } from '../../utils';\nimport { getConfig } from '../../config';\nimport addSVGAccessibilityFields from '../../accessibility';\n\nparser.yy = classDb;\n\nlet idCache = {};\nconst padding = 20;\n\nconst conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {SVGSVGElement} elem The SVG element to append to\n */\nconst insertMarkers = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n\n/**\n * Merges the value of `conf` with the passed `cnf`\n *\n * @param {object} cnf Config to merge\n */\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n */\nexport const draw = function (text, id) {\n idCache = {};\n parser.yy.clear();\n parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n const securityLevel = getConfig().securityLevel;\n // Handle root and Document for when rendering in sanbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n\n // Fetch the default direction, use TD if none was found\n const diagram = root.select(`[id='${id}']`);\n diagram.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = classDb.getClasses();\n const keys = Object.keys(classes);\n\n for (let i = 0; i < keys.length; i++) {\n const classDef = classes[keys[i]];\n const node = svgDraw.drawClass(diagram, classDef, conf);\n idCache[node.id] = node;\n\n // Add nodes to the graph. The first argument is the node id. The second is\n // metadata about the node. In this case we're going to add labels to each of\n // our nodes.\n g.setNode(node.id, node);\n\n log.info('Org height: ' + node.height);\n }\n\n const relations = classDb.getRelations();\n relations.forEach(function (relation) {\n log.info(\n 'tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation: relation,\n },\n relation.title || 'DEFAULT'\n );\n });\n\n dagre.layout(g);\n g.nodes().forEach(function (v) {\n if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {\n log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));\n root\n .select('#' + lookUpDomId(v))\n .attr(\n 'transform',\n 'translate(' +\n (g.node(v).x - g.node(v).width / 2) +\n ',' +\n (g.node(v).y - g.node(v).height / 2) +\n ' )'\n );\n }\n });\n\n g.edges().forEach(function (e) {\n if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {\n log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);\n }\n });\n\n const svgBounds = diagram.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram.attr('viewBox', vBox);\n addSVGAccessibilityFields(parser.yy, diagram, id);\n};\n\nexport default {\n setConf,\n draw,\n};\n","const getStyles = (options) =>\n `g.classGroup text {\n fill: ${options.nodeBorder};\n fill: ${options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n`;\n\nexport default getStyles;\n","import { line, curveBasis } from 'd3';\nimport { lookUpDomId, relationType } from './classDb';\nimport utils from '../../utils';\nimport { log } from '../../logger';\n\nlet edgeCount = 0;\nexport const drawEdge = function (elem, path, relation, conf) {\n const getRelationType = function (type) {\n switch (type) {\n case relationType.AGGREGATION:\n return 'aggregation';\n case relationType.EXTENSION:\n return 'extension';\n case relationType.COMPOSITION:\n return 'composition';\n case relationType.DEPENDENCY:\n return 'dependency';\n }\n };\n\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n\n // The data for our line\n const lineData = path.points;\n\n // This is the accessor function we talked about above\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curveBasis);\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', 'edge' + edgeCount)\n .attr('class', 'relation');\n let url = '';\n if (conf.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n\n if (relation.relation.lineType == 1) {\n svgPath.attr('class', 'relation dashed-line');\n }\n if (relation.relation.type1 !== 'none') {\n svgPath.attr(\n 'marker-start',\n 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')'\n );\n }\n if (relation.relation.type2 !== 'none') {\n svgPath.attr(\n 'marker-end',\n 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')'\n );\n }\n\n let x, y;\n const l = path.points.length;\n // Calculate Label position\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== 'none',\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== 'none',\n path.points,\n path.points[l - 1]\n );\n\n log.debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));\n log.debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));\n\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n\n if (typeof relation.title !== 'undefined') {\n const g = elem.append('g').attr('class', 'classLabel');\n const label = g\n .append('text')\n .attr('class', 'label')\n .attr('x', x)\n .attr('y', y)\n .attr('fill', 'red')\n .attr('text-anchor', 'middle')\n .text(relation.title);\n\n window.label = label;\n const bounds = label.node().getBBox();\n\n g.insert('rect', ':first-child')\n .attr('class', 'box')\n .attr('x', bounds.x - conf.padding / 2)\n .attr('y', bounds.y - conf.padding / 2)\n .attr('width', bounds.width + conf.padding)\n .attr('height', bounds.height + conf.padding);\n }\n\n log.info('Rendering relation ' + JSON.stringify(relation));\n if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type1')\n .attr('x', p1_card_x)\n .attr('y', p1_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle1);\n }\n if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type2')\n .attr('x', p2_card_x)\n .attr('y', p2_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle2);\n }\n\n edgeCount++;\n};\n\n/**\n * Renders a class diagram\n *\n * @param {SVGSVGElement} elem The element to draw it into\n * @param classDef\n * @param conf\n * @todo Add more information in the JSDOC here\n */\nexport const drawClass = function (elem, classDef, conf) {\n log.info('Rendering class ' + classDef);\n\n const id = classDef.id;\n const classInfo = {\n id: id,\n label: classDef.id,\n width: 0,\n height: 0,\n };\n\n // add class group\n const g = elem.append('g').attr('id', lookUpDomId(id)).attr('class', 'classGroup');\n\n // add title\n let title;\n if (classDef.link) {\n title = g\n .append('svg:a')\n .attr('xlink:href', classDef.link)\n .attr('target', classDef.linkTarget)\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n } else {\n title = g\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n }\n\n // add annotations\n let isFirst = true;\n classDef.annotations.forEach(function (member) {\n const titleText2 = title.append('tspan').text('«' + member + '»');\n if (!isFirst) titleText2.attr('dy', conf.textHeight);\n isFirst = false;\n });\n\n let classTitleString = classDef.id;\n\n if (classDef.type !== undefined && classDef.type !== '') {\n classTitleString += '<' + classDef.type + '>';\n }\n\n const classTitle = title.append('tspan').text(classTitleString).attr('class', 'title');\n\n // If class has annotations the title needs to have an offset of the text height\n if (!isFirst) classTitle.attr('dy', conf.textHeight);\n\n const titleHeight = title.node().getBBox().height;\n\n const membersLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);\n\n const members = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + conf.dividerMargin + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n classDef.members.forEach(function (member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n\n const membersBox = members.node().getBBox();\n\n const methodsLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n\n const methods = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n\n classDef.methods.forEach(function (method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n\n const classBox = g.node().getBBox();\n var cssClassStr = ' ';\n\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(' ');\n }\n\n const rect = g\n .insert('rect', ':first-child')\n .attr('x', 0)\n .attr('y', 0)\n .attr('width', classBox.width + 2 * conf.padding)\n .attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin)\n .attr('class', cssClassStr);\n\n const rectWidth = rect.node().getBBox().width;\n\n // Center title\n // We subtract the width of each text element from the class box width and divide it by 2\n title.node().childNodes.forEach(function (x) {\n x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);\n });\n\n if (classDef.tooltip) {\n title.insert('title').text(classDef.tooltip);\n }\n\n membersLine.attr('x2', rectWidth);\n methodsLine.attr('x2', rectWidth);\n\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n\n return classInfo;\n};\n\nexport const parseMember = function (text) {\n const fieldRegEx = /^(\\+|-|~|#)?(\\w+)(~\\w+~|\\[\\])?\\s+(\\w+) *(\\*|\\$)?$/;\n const methodRegEx = /^([+|\\-|~|#])?(\\w+) *\\( *(.*)\\) *(\\*|\\$)? *(\\w*[~|[\\]]*\\s*\\w*~?)$/;\n\n let fieldMatch = text.match(fieldRegEx);\n let methodMatch = text.match(methodRegEx);\n\n if (fieldMatch && !methodMatch) {\n return buildFieldDisplay(fieldMatch);\n } else if (methodMatch) {\n return buildMethodDisplay(methodMatch);\n } else {\n return buildLegacyDisplay(text);\n }\n};\n\nconst buildFieldDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let fieldType = parsedText[2] ? parsedText[2].trim() : '';\n let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let fieldName = parsedText[4] ? parsedText[4].trim() : '';\n let classifier = parsedText[5] ? parsedText[5].trim() : '';\n\n displayText = visibility + fieldType + genericType + ' ' + fieldName;\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildMethodDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let methodName = parsedText[2] ? parsedText[2].trim() : '';\n let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let classifier = parsedText[4] ? parsedText[4].trim() : '';\n let returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';\n\n displayText = visibility + methodName + '(' + parameters + ')' + returnType;\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildLegacyDisplay = function (text) {\n // if for some reason we dont have any match, use old format to parse text\n let displayText = '';\n let cssStyle = '';\n let memberText = '';\n let returnType = '';\n let methodStart = text.indexOf('(');\n let methodEnd = text.indexOf(')');\n\n if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {\n let visibility = '';\n let methodName = '';\n\n let firstChar = text.substring(0, 1);\n if (firstChar.match(/\\w/)) {\n methodName = text.substring(0, methodStart).trim();\n } else {\n if (firstChar.match(/\\+|-|~|#/)) {\n visibility = firstChar;\n }\n\n methodName = text.substring(1, methodStart).trim();\n }\n\n let parameters = text.substring(methodStart + 1, methodEnd);\n let classifier = text.substring(methodEnd + 1, 1);\n cssStyle = parseClassifier(classifier);\n\n displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';\n\n if (methodEnd < memberText.length) {\n returnType = text.substring(methodEnd + 2).trim();\n if (returnType !== '') {\n returnType = ' : ' + parseGenericTypes(returnType);\n }\n }\n } else {\n // finally - if all else fails, just send the text back as written (other than parsing for generic types)\n displayText = parseGenericTypes(text);\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\n/**\n * Adds a for a member in a diagram\n *\n * @param {SVGElement} textEl The element to append to\n * @param {string} txt The member\n * @param {boolean} isFirst\n * @param {{ padding: string; textHeight: string }} conf The configuration for the member\n */\nconst addTspan = function (textEl, txt, isFirst, conf) {\n let member = parseMember(txt);\n\n const tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);\n\n if (member.cssStyle !== '') {\n tSpan.attr('style', member.cssStyle);\n }\n\n if (!isFirst) {\n tSpan.attr('dy', conf.textHeight);\n }\n};\n\n/**\n * Makes generics in typescript syntax\n *\n * @example Array of array of strings in typescript syntax\n * // returns \"Array>\"\n * parseGenericTypes('Array~Array~string~~');\n *\n * @param {string} text The text to convert\n * @returns {string} The converted string\n */\nconst parseGenericTypes = function (text) {\n let cleanedText = text;\n\n if (text.indexOf('~') != -1) {\n cleanedText = cleanedText.replace('~', '<');\n cleanedText = cleanedText.replace('~', '>');\n\n return parseGenericTypes(cleanedText);\n } else {\n return cleanedText;\n }\n};\n\n/**\n * Gives the styles for a classifier\n *\n * @param {'+' | '-' | '#' | '~' | '*' | '$'} classifier The classifier string\n * @returns {string} Styling for the classifier\n */\nconst parseClassifier = function (classifier) {\n switch (classifier) {\n case '*':\n return 'font-style:italic;';\n case '$':\n return 'text-decoration:underline;';\n default:\n return '';\n }\n};\n\nexport default {\n drawClass,\n drawEdge,\n parseMember,\n};\n","import DOMPurify from 'dompurify';\n\n/**\n * Gets the number of lines in a string\n *\n * @param {string | undefined} s The string to check the lines for\n * @returns {number} The number of lines in that string\n */\nexport const getRows = (s) => {\n if (!s) return 1;\n let str = breakToPlaceholder(s);\n str = str.replace(/\\\\n/g, '#br#');\n return str.split('#br#');\n};\n\nexport const removeEscapes = (text) => {\n let newStr = text.replace(/\\\\u[\\dA-F]{4}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16));\n });\n\n newStr = newStr.replace(/\\\\x([0-9a-f]{2})/gi, (_, c) => String.fromCharCode(parseInt(c, 16)));\n newStr = newStr.replace(/\\\\[\\d\\d\\d]{3}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\/g, ''), 8));\n });\n newStr = newStr.replace(/\\\\[\\d\\d\\d]{2}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\/g, ''), 8));\n });\n\n return newStr;\n};\n\n/**\n * Removes script tags from a text\n *\n * @param {string} txt The text to sanitize\n * @returns {string} The safer text\n */\nexport const removeScript = (txt) => {\n var rs = '';\n var idx = 0;\n\n while (idx >= 0) {\n idx = txt.indexOf('= 0) {\n rs += txt.substr(0, idx);\n txt = txt.substr(idx + 1);\n\n idx = txt.indexOf('');\n if (idx >= 0) {\n idx += 9;\n txt = txt.substr(idx);\n }\n } else {\n rs += txt;\n idx = -1;\n break;\n }\n }\n let decodedText = removeEscapes(rs);\n decodedText = decodedText.replaceAll(/script>/gi, '#');\n decodedText = decodedText.replaceAll(/javascript:/gi, '#');\n decodedText = decodedText.replaceAll(/javascript&colon/gi, '#');\n decodedText = decodedText.replaceAll(/onerror=/gi, 'onerror:');\n decodedText = decodedText.replaceAll(/`;\n } else {\n if (cnf.securityLevel !== 'loose') {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: ['foreignobject'],\n ADD_ATTR: ['dominant-baseline'],\n });\n }\n }\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n case 'classDiagram':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n log.debug('CB = undefined!');\n }\n attachFunctions();\n\n const tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id;\n const node = select(tmpElementSelector).node();\n if (node !== null && typeof node.remove === 'function') {\n select(tmpElementSelector).node().remove();\n }\n\n return svgCode;\n};\n\nlet currentDirective = {};\n\nconst parseDirective = function (p, statement, context, type) {\n try {\n if (statement !== undefined) {\n statement = statement.trim();\n switch (context) {\n case 'open_directive':\n currentDirective = {};\n break;\n case 'type_directive':\n currentDirective.type = statement.toLowerCase();\n break;\n case 'arg_directive':\n currentDirective.args = JSON.parse(statement);\n break;\n case 'close_directive':\n handleDirective(p, currentDirective, type);\n currentDirective = null;\n break;\n }\n }\n } catch (error) {\n log.error(\n `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`\n );\n log.error(error.message);\n }\n};\n\nconst handleDirective = function (p, directive, type) {\n log.debug(`Directive type=${directive.type} with args:`, directive.args);\n switch (directive.type) {\n case 'init':\n case 'initialize': {\n ['config'].forEach((prop) => {\n if (typeof directive.args[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n directive.args[type] = directive.args[prop];\n delete directive.args[prop];\n }\n });\n log.debug('sanitize in handleDirective', directive.args);\n directiveSanitizer(directive.args);\n log.debug('sanitize in handleDirective (done)', directive.args);\n reinitialize(directive.args);\n configApi.addDirective(directive.args);\n break;\n }\n case 'wrap':\n case 'nowrap':\n if (p && p['setWrap']) {\n p.setWrap(directive.type === 'wrap');\n }\n break;\n case 'themeCss':\n log.warn('themeCss encountered');\n break;\n default:\n log.warn(\n `Unhandled directive: source: '%%{${directive.type}: ${JSON.stringify(\n directive.args ? directive.args : {}\n )}}%%`,\n directive\n );\n break;\n }\n};\n\n/** @param {any} conf */\nfunction updateRendererConfigs(conf) {\n // Todo remove, all diagrams should get config on demand from the config object, no need for this\n\n // gitGraphRenderer.setConf(conf.git); // Todo Remove all of these\n flowRenderer.setConf(conf.flowchart);\n flowRendererV2.setConf(conf.flowchart);\n if (typeof conf['sequenceDiagram'] !== 'undefined') {\n sequenceRenderer.setConf(assignWithDepth(conf.sequence, conf['sequenceDiagram']));\n }\n sequenceRenderer.setConf(conf.sequence);\n ganttRenderer.setConf(conf.gantt);\n classRenderer.setConf(conf.class);\n stateRenderer.setConf(conf.state);\n stateRendererV2.setConf(conf.state);\n infoRenderer.setConf(conf.class);\n // pieRenderer.setConf(conf.class);\n erRenderer.setConf(conf.er);\n journeyRenderer.setConf(conf.journey);\n requirementRenderer.setConf(conf.requirement);\n errorRenderer.setConf(conf.class);\n}\n\n/** To be removed */\nfunction reinitialize() {\n // `mermaidAPI.reinitialize: v${pkg.version}`,\n // JSON.stringify(options),\n // options.themeVariables.primaryColor;\n // // if (options.theme && theme[options.theme]) {\n // // options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);\n // // }\n // // Set default options\n // const config =\n // typeof options === 'object' ? configApi.setConfig(options) : configApi.getSiteConfig();\n // updateRendererConfigs(config);\n // setLogLevel(config.logLevel);\n // log.debug('mermaidAPI.reinitialize: ', config);\n}\n\n/** @param {any} options */\nfunction initialize(options) {\n // console.warn(`mermaidAPI.initialize: v${pkg.version} `, options);\n\n // Handle legacy location of font-family configuration\n if (options && options.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = { fontFamily: options.fontFamily };\n } else {\n if (!options.themeVariables.fontFamily) {\n options.themeVariables = { fontFamily: options.fontFamily };\n }\n }\n }\n // Set default options\n configApi.saveConfigFromInitialize(options);\n\n if (options && options.theme && theme[options.theme]) {\n // Todo merge with user options\n options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);\n } else {\n if (options) options.themeVariables = theme.default.getThemeVariables(options.themeVariables);\n }\n\n const config =\n typeof options === 'object' ? configApi.setSiteConfig(options) : configApi.getSiteConfig();\n\n updateRendererConfigs(config);\n setLogLevel(config.logLevel);\n // log.debug('mermaidAPI.initialize: ', config);\n}\n\nconst mermaidAPI = Object.freeze({\n render,\n parse,\n parseDirective,\n initialize,\n reinitialize,\n getConfig: configApi.getConfig,\n setConfig: configApi.setConfig,\n getSiteConfig: configApi.getSiteConfig,\n updateSiteConfig: configApi.updateSiteConfig,\n reset: () => {\n // console.warn('reset');\n configApi.reset();\n // const siteConfig = configApi.getSiteConfig();\n // updateRendererConfigs(siteConfig);\n },\n globalReset: () => {\n configApi.reset(configApi.defaultConfig);\n updateRendererConfigs(configApi.getConfig());\n },\n defaultConfig: configApi.defaultConfig,\n});\n\nsetLogLevel(configApi.getConfig().logLevel);\nconfigApi.reset(configApi.getConfig());\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *\n * ```html\n * \n * ```\n */\n","import classDiagram from './diagrams/class/styles';\nimport er from './diagrams/er/styles';\nimport flowchart from './diagrams/flowchart/styles';\nimport gantt from './diagrams/gantt/styles';\nimport gitGraph from './diagrams/git/styles';\nimport info from './diagrams/info/styles';\nimport pie from './diagrams/pie/styles';\nimport requirement from './diagrams/requirement/styles';\nimport sequence from './diagrams/sequence/styles';\nimport stateDiagram from './diagrams/state/styles';\nimport journey from './diagrams/user-journey/styles';\nimport c4 from './diagrams/c4/styles';\nimport { log } from './logger';\n\nconst themes = {\n flowchart,\n 'flowchart-v2': flowchart,\n sequence,\n gantt,\n classDiagram,\n 'classDiagram-v2': classDiagram,\n class: classDiagram,\n stateDiagram,\n state: stateDiagram,\n gitGraph,\n info,\n pie,\n er,\n journey,\n requirement,\n c4,\n};\n\nexport const calcThemeVariables = (theme, userOverRides) => {\n log.info('userOverides', userOverRides);\n return theme.calcColors(userOverRides);\n};\n\nconst getStyles = (type, userStyles, options) => {\n return ` {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ${options.errorBkgColor};\n }\n .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n .marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${themes[type](options)}\n\n ${userStyles}\n`;\n};\n\nexport default getStyles;\n","import { getThemeVariables as baseThemeVariables } from './theme-base';\nimport { getThemeVariables as darkThemeVariables } from './theme-dark';\nimport { getThemeVariables as defaultThemeVariables } from './theme-default';\nimport { getThemeVariables as forestThemeVariables } from './theme-forest';\nimport { getThemeVariables as neutralThemeVariables } from './theme-neutral';\n\nexport default {\n base: {\n getThemeVariables: baseThemeVariables,\n },\n dark: {\n getThemeVariables: darkThemeVariables,\n },\n default: {\n getThemeVariables: defaultThemeVariables,\n },\n forest: {\n getThemeVariables: forestThemeVariables,\n },\n neutral: {\n getThemeVariables: neutralThemeVariables,\n },\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /** # Base variables */\n /**\n * - Background - used to know what the background color is of the diagram. This is used for\n * deducing colors for instance line color. Default value is #f4f4f4.\n */\n this.background = '#f4f4f4';\n this.darkMode = false;\n\n this.primaryColor = '#fff4dd';\n\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = '#333';\n\n // dark\n\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n }\n updateColors() {\n // The || is to make sure that if the variable has been defined by a user override that value is to be used\n\n /* Main */\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#eee' : '#333'); // invert(this.primaryColor);\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor =\n this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor =\n this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || '#fff5ad';\n this.noteTextColor = this.noteTextColor || '#333';\n\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n\n /* Flowchart variables */\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground =\n this.edgeLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || 'grey';\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || 'white';\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || '#eeeeee';\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || 'lightgrey';\n this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';\n this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';\n this.critBorderColor = this.critBorderColor || '#ff8888';\n this.critBkgColor = this.critBkgColor || 'red';\n this.todayLineColor = this.todayLineColor || 'red';\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || '#003163';\n\n /* Sequence Diagram variables */\n\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n /* The color of the text tables of the states*/\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n\n /* class */\n this.classText = this.classText || this.textColor;\n\n /* user-journey */\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground =\n this.relationLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: +120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor =\n this.branchLabelColor || (this.darkMode ? 'black' : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, darken, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n this.background = '#333';\n this.primaryColor = '#1f2020';\n this.secondaryColor = lighten(this.primaryColor, 16);\n\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.mainBkg = '#1f2020';\n this.secondBkg = 'calculated';\n this.mainContrastColor = 'lightgrey';\n this.darkTextColor = lighten(invert('#323D47'), 10);\n this.lineColor = 'calculated';\n this.border1 = '#81B1DB';\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = 'calculated';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n this.labelBackground = '#181818';\n this.textColor = '#ccc';\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#F9FFFE';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = 'calculated';\n this.activationBkgColor = 'calculated';\n this.sequenceNumberColor = 'black';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = darken('#EAE8D9', 30);\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = '#EAE8D9';\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = 'calculated';\n this.taskTextColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = '#81B1DB';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#E83737';\n this.critBkgColor = '#E83737';\n this.taskTextDarkColor = 'calculated';\n this.todayLineColor = '#DB5757';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'calculated';\n\n this.errorBkgColor = '#a44141';\n this.errorTextColor = '#ddd';\n }\n updateColors() {\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n\n /* Sequence Diagram variables */\n\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n\n /* Gantt chart variables */\n\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#555';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = '#f4f4f4'; // this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || '#0b0000';\n this.pie2 = this.pie2 || '#4d1037';\n this.pie3 = this.pie3 || '#3f5258';\n this.pie4 = this.pie4 || '#4f2f1b';\n this.pie5 = this.pie5 || '#6e0a0a';\n this.pie6 = this.pie6 || '#3b0048';\n this.pie7 = this.pie7 || '#995a01';\n this.pie8 = this.pie8 || '#154706';\n this.pie9 = this.pie9 || '#161722';\n this.pie10 = this.pie10 || '#00296f';\n this.pie11 = this.pie11 || '#01629c';\n this.pie12 = this.pie12 || '#010029';\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* class */\n this.classText = this.primaryTextColor;\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground =\n this.relationLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = lighten(this.secondaryColor, 20);\n this.git1 = lighten(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: +60 }), 10);\n this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: +120 }), 20);\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, rgba, adjust, darken } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\nclass Theme {\n constructor() {\n /* Base variables */\n this.background = '#f4f4f4';\n this.primaryColor = '#ECECFF';\n\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = '#ffffde';\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.background = 'white';\n this.mainBkg = '#ECECFF';\n this.secondBkg = '#ffffde';\n this.lineColor = '#333333';\n this.border1 = '#9370DB';\n this.border2 = '#aaaa33';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n this.labelBackground = '#e8e8e8';\n this.textColor = '#333';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = 'calculated';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = 'calculated';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#fff400';\n this.taskBorderColor = '#534fbc';\n this.taskBkgColor = '#8a90dd';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = '#534fbc';\n this.activeTaskBkgColor = '#bfc7ff';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n this.updateColors();\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1; // border 1\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f0f0f0';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -20 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -40 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: +120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /* Base vales */\n this.background = '#f4f4f4';\n this.primaryColor = '#cde498';\n this.secondaryColor = '#cdffb2';\n this.background = 'white';\n this.mainBkg = '#cde498';\n this.secondBkg = '#cdffb2';\n this.lineColor = 'green';\n this.border1 = '#13540c';\n this.border2 = '#6eaa49';\n this.arrowheadColor = 'green';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n\n this.tertiaryColor = lighten('#cde498', 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n /* Flowchart variables */\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#333';\n this.edgeLabelBackground = '#e8e8e8';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = '#333';\n this.signalTextColor = '#333';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = '#326932';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = '#6eaa49';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#6eaa49';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = '#487e3a';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f0f0f0';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: +40, l: -40 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -50 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: +120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { adjust } from 'khroma';\r\n\r\nexport const mkBorder = (col, darkMode) =>\r\n darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\r\n","import { invert, darken, lighten, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\n// const Color = require ( 'khroma/dist/color' ).default\n// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => \"#EAF2FB\"\n\nclass Theme {\n constructor() {\n this.primaryColor = '#eee';\n this.contrast = '#707070';\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = '#ffffff';\n\n // this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n // this.altBackground = lighten(this.contrast, 55);\n this.mainBkg = '#eee';\n this.secondBkg = 'calculated';\n this.lineColor = '#666';\n this.border1 = '#999';\n this.border2 = 'calculated';\n this.note = '#ffa';\n this.text = '#333';\n this.critical = '#d42';\n this.done = '#bbb';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'white';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = 'calculated';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = 'calculated';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = '#999';\n this.noteBkgColor = '#666';\n this.noteTextColor = '#fff';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n\n this.taskBorderColor = darken(this.contrast, 10);\n\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n\n this.todayLineColor = this.critBkgColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || '#000';\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f4f4f4';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || '#000';\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = '#222';\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n // /* pie */\n this.pie1 = this.pie1 || '#F4F4F4';\n this.pie2 = this.pie2 || '#555';\n this.pie3 = this.pie3 || '#BBB';\n this.pie4 = this.pie4 || '#777';\n this.pie5 = this.pie5 || '#999';\n this.pie6 = this.pie6 || '#DDD';\n this.pie7 = this.pie7 || '#FFF';\n this.pie8 = this.pie8 || '#DDD';\n this.pie9 = this.pie9 || '#BBB';\n this.pie10 = this.pie10 || '#999';\n this.pie11 = this.pie11 || '#777';\n this.pie12 = this.pie12 || '#555';\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n // this.pie1 = this.pie1 || '#212529';\n // this.pie2 = this.pie2 || '#343A40';\n // this.pie3 = this.pie3 || '#495057';\n // this.pie4 = this.pie4 || '#6C757D';\n // this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n // this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n // this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n // this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n // this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n // this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });\n // this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n // this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = darken(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.pie8 || adjust(this.primaryColor, { h: +120 });\n\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = 'white';\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = 'white';\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { sanitizeUrl } from '@braintree/sanitize-url';\nimport {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select,\n} from 'd3';\nimport common from './diagrams/common/common';\nimport { configKeys } from './defaultConfig';\nimport { log } from './logger';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore,\n};\nconst directive =\n /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen =\n /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit Detects the init config object from the text\n *\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * Or\n *\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {any} cnf\n * @returns {object} The json object representing the init passed to mermaid.initialize()\n */\nexport const detectInit = function (text, cnf) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n\n if (Array.isArray(inits)) {\n let args = inits.map((init) => init.args);\n directiveSanitizer(args);\n\n results = assignWithDepth(results, [...args]);\n } else {\n results = inits.args;\n }\n if (results) {\n let type = detectType(text, cnf);\n ['config'].forEach((prop) => {\n if (typeof results[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n results[type] = results[prop];\n delete results[prop];\n }\n });\n }\n\n // Todo: refactor this, these results are never used\n return results;\n};\n\n/**\n * @function detectDirective Detects the directive from the text. Text can be single line or\n * multiline. If type is null or omitted the first directive encountered in text will be returned\n *\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {string | RegExp} type The directive to return (default: null)\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args:\n * object|null } matched by the input type if a single directive was found, that directive object\n * will be returned.\n */\nexport const detectDirective = function (text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '\"');\n log.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log.error(\n `ERROR: ${error.message} - Unable to parse directive\n ${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * @function detectType Detects the type of the graph text. Takes into consideration the possible\n * existence of an %%init directive\n *\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {{\n * class: { defaultRenderer: string } | undefined;\n * state: { defaultRenderer: string } | undefined;\n * flowchart: { defaultRenderer: string } | undefined;\n * }} [cnf]\n * @returns {string} A graph definition key\n */\nexport const detectType = function (text, cnf) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n if (text.match(/^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/)) {\n return 'c4';\n }\n\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n if (text.match(/^\\s*classDiagram-v2/)) {\n return 'classDiagram';\n }\n if (text.match(/^\\s*classDiagram/)) {\n if (cnf && cnf.class && cnf.class.defaultRenderer === 'dagre-wrapper') return 'classDiagram';\n return 'class';\n }\n\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n if (cnf && cnf.class && cnf.state.defaultRenderer === 'dagre-wrapper') return 'stateDiagram';\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'gitGraph';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n if (text.match(/^\\s*requirement/) || text.match(/^\\s*requirementDiagram/)) {\n return 'requirement';\n }\n if (cnf && cnf.flowchart && cnf.flowchart.defaultRenderer === 'dagre-wrapper')\n return 'flowchart-v2';\n\n return 'flowchart';\n};\n\n/**\n * Caches results of functions based on input\n *\n * @param {Function} fn Function to run\n * @param {Function} resolver Function that resolves to an ID given arguments the `fn` takes\n * @returns {Function} An optimized caching function\n */\nconst memoize = (fn, resolver) => {\n let cache = {};\n return (...args) => {\n let n = resolver ? resolver.apply(this, args) : args[0];\n if (n in cache) {\n return cache[n];\n } else {\n let result = fn(...args);\n cache[n] = result;\n return result;\n }\n };\n};\n\n/**\n * @function isSubstringInArray Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {Array} arr The array to search\n * @returns {number} The array index containing the substring or -1 if not present\n */\nexport const isSubstringInArray = function (str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\n/**\n * Returns a d3 curve given a curve name\n *\n * @param {string | undefined} interpolate The interpolation name\n * @param {any} defaultCurve The default curve to return\n * @returns {import('d3-shape').CurveFactory} The curve factory to use\n */\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\n/**\n * Formats a URL string\n *\n * @param {string} linkStr String of the URL\n * @param {{ securityLevel: string }} config Configuration passed to MermaidJS\n * @returns {string | undefined} The formatted URL\n */\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\n/**\n * Runs a function\n *\n * @param {string} functionName A dot seperated path to the function relative to the `window`\n * @param {...any} params Parameters to pass to the function\n */\nexport const runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split('.');\n\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) return;\n }\n\n obj[fnName](...params);\n};\n\n/**\n * @typedef {object} Point A (x, y) point\n * @property {number} x The x value\n * @property {number} y The y value\n */\n\n/**\n * Finds the distance between two points using the Distance Formula\n *\n * @param {Point} p1 The first point\n * @param {Point} p2 The second point\n * @returns {number} The distance\n */\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\n/**\n * @param {Point[]} points List of points\n * @returns {Point}\n * @todo Give this a description\n */\nconst traverseEdge = (points) => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n let remainingDistance = totalDistance / 2;\n let center = undefined;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\n/**\n * Alias for `traverseEdge`\n *\n * @param {Point[]} points List of points\n * @returns {Point} Return result of `transverseEdge`\n */\nconst calcLabelPosition = (points) => {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n log.info('our points', points);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\n/**\n * Position ['start_left', 'start_right', 'end_left', 'end_right']\n *\n * @param {any} terminalMarkerSize\n * @param {any} position\n * @param {any} _points\n * @returns {any}\n */\nconst calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => {\n // Todo looking to faster cloning method\n let points = JSON.parse(JSON.stringify(_points));\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n log.info('our points', points);\n if (position !== 'start_left' && position !== 'start_right') {\n points = points.reverse();\n }\n\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = 10 + terminalMarkerSize * 0.5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n\n let cardinalityPosition = { x: 0, y: 0 };\n\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n if (position === 'start_left') {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n }\n if (position === 'end_right') {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n }\n if (position === 'end_left') {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n }\n return cardinalityPosition;\n};\n\n/**\n * Gets styles from an array of declarations\n *\n * @param {string[]} arr Declarations\n * @returns {{ style: string; labelStyle: string }} The styles grouped as strings\n */\nexport const getStylesFromArray = (arr) => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return 'id-' + Math.random().toString(36).substr(2, 12) + '-' + cnt;\n};\n\n/**\n * @param {any} length\n * @returns {any}\n */\nfunction makeid(length) {\n var result = '';\n var characters = '0123456789abcdef';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\nexport const random = (options) => {\n return makeid(options.length);\n};\n\n/**\n * @function assignWithDepth Extends the functionality of {@link ObjectConstructor.assign} with the\n * ability to merge arbitrary-depth objects For each key in src with path `k` (recursively)\n * performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of\n * undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to {} and\n * effectively merged with src[`k`]

Additionally, dissimilar types will not clobber unless the\n * config.clobber parameter === true. Example:\n *\n * ```js\n * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };\n * let config_1 = { foo: 'foo', bar: 'bar' };\n * let result = assignWithDepth(config_0, config_1);\n * console.log(result);\n * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }\n * ```\n *\n * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a\n * destructured array of objects and dst is not an array, assignWithDepth will apply each element\n * of src to dst in order.\n * @param dst\n * @param src\n * @param config\n * @param dst\n * @param src\n * @param config\n * @param dst\n * @param src\n * @param config\n * @param {any} dst - The destination of the merge\n * @param {any} src - The source object(s) to merge into destination\n * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth\n * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default:\n * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }`\n * @returns {any}\n */\nexport const assignWithDepth = function (dst, src, config) {\n const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config);\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (dst.indexOf(s) === -1) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (typeof dst === 'undefined' || depth <= 0) {\n if (dst !== undefined && dst !== null && typeof dst === 'object' && typeof src === 'object') {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (typeof src !== 'undefined' && typeof dst === 'object' && typeof src === 'object') {\n Object.keys(src).forEach((key) => {\n if (\n typeof src[key] === 'object' &&\n (dst[key] === undefined || typeof dst[key] === 'object')\n ) {\n if (dst[key] === undefined) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || (typeof dst[key] !== 'object' && typeof src[key] !== 'object')) {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\n\nexport const getTextObj = function () {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: 'start',\n style: '#666',\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: undefined,\n };\n};\n\n/**\n * Adds text to an element\n *\n * @param {SVGElement} elem Element to add text to\n * @param {{\n * text: string;\n * x: number;\n * y: number;\n * anchor: 'start' | 'middle' | 'end';\n * fontFamily: string;\n * fontSize: string | number;\n * fontWeight: string | number;\n * fill: string;\n * class: string | undefined;\n * textMargin: number;\n * }} textData\n * @returns {SVGTextElement} Text element with given styling and content\n */\nexport const drawSimpleText = function (elem, textData) {\n // Remove and ignore br:s\n const nText = textData.text.replace(common.lineBreakRegex, ' ');\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', textData.y);\n textElem.style('text-anchor', textData.anchor);\n textElem.style('font-family', textData.fontFamily);\n textElem.style('font-size', textData.fontSize);\n textElem.style('font-weight', textData.fontWeight);\n textElem.attr('fill', textData.fill);\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n\n const span = textElem.append('tspan');\n span.attr('x', textData.x + textData.textMargin * 2);\n span.attr('fill', textData.fill);\n span.text(nText);\n\n return textElem;\n};\n\nexport const wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
' },\n config\n );\n if (common.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(' ');\n const completedLines = [];\n let nextLine = '';\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(' ');\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== '').join(config.joinWith);\n },\n (label, maxWidth, config) =>\n `${label}-${maxWidth}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}-${config.joinWith}`\n);\n\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = '-', config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 },\n config\n );\n const characters = word.split('');\n const lines = [];\n let currentLine = '';\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = '';\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = '-', config) =>\n `${word}-${maxWidth}-${hyphenCharacter}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * This calculates the text's height, taking into account the wrap breaks and both the statically\n * configured height, width, and the length of the text (in pixels).\n *\n * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.\n *\n * @param {any} text The text to measure\n * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n * @returns {any} - The height for the given text\n */\nexport const calculateTextHeight = function (text, config) {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 15 },\n config\n );\n return calculateTextDimensions(text, config).height;\n};\n\n/**\n * This calculates the width of the given text, font size and family.\n *\n * @param {any} text - The text to calculate the width of\n * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n * @returns {any} - The width for the given text\n */\nexport const calculateTextWidth = function (text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n return calculateTextDimensions(text, config).width;\n};\n\n/**\n * This calculates the dimensions of the given text, font size, font family, font weight, and margins.\n *\n * @param {any} text - The text to calculate the width of\n * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting\n * the resulting size\n * @returns - The width for the given text\n */\nexport const calculateTextDimensions = memoize(\n function (text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n const { fontSize, fontFamily, fontWeight } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n\n // We can't really know if the user supplied font family will render on the user agent;\n // thus, we'll take the max width between the user supplied font family, and a default\n // of sans-serif.\n const fontFamilies = ['sans-serif', fontFamily];\n const lines = text.split(common.lineBreakRegex);\n let dims = [];\n\n const body = select('body');\n // We don't want to leak DOM elements - if a removal operation isn't available\n // for any reason, do not continue.\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n\n const g = body.append('svg');\n\n for (let fontFamily of fontFamilies) {\n let cheight = 0;\n let dim = { width: 0, height: 0, lineHeight: 0 };\n for (let line of lines) {\n const textObj = getTextObj();\n textObj.text = line;\n const textElem = drawSimpleText(g, textObj)\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n\n let bBox = (textElem._groups || textElem)[0][0].getBBox();\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cheight = Math.round(bBox.height);\n dim.height += cheight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));\n }\n dims.push(dim);\n }\n\n g.remove();\n\n let index =\n isNaN(dims[1].height) ||\n isNaN(dims[1].width) ||\n isNaN(dims[1].lineHeight) ||\n (dims[0].height > dims[1].height &&\n dims[0].width > dims[1].width &&\n dims[0].lineHeight > dims[1].lineHeight)\n ? 0\n : 1;\n return dims[index];\n },\n (text, config) => `${text}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * Applys d3 attributes\n *\n * @param {any} d3Elem D3 Element to apply the attributes onto\n * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes\n */\nconst d3Attrs = function (d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n};\n\n/**\n * Gives attributes for an SVG's size given arguments\n *\n * @param {number} height The height of the SVG\n * @param {number} width The width of the SVG\n * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%\n * @returns {Map<'height' | 'width' | 'style', string>} Attributes for the SVG\n */\nexport const calculateSvgSizeAttrs = function (height, width, useMaxWidth) {\n let attrs = new Map();\n attrs.set('height', height);\n if (useMaxWidth) {\n attrs.set('width', '100%');\n attrs.set('style', `max-width: ${width}px;`);\n } else {\n attrs.set('width', width);\n }\n return attrs;\n};\n\n/**\n * Applies attributes from `calculateSvgSizeAttrs`\n *\n * @param {SVGSVGElement} svgElem The SVG Element to configure\n * @param {number} height The height of the SVG\n * @param {number} width The width of the SVG\n * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%\n */\nexport const configureSvgSize = function (svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n};\nexport const setupGraphViewbox = function (graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n\n let width = graph._label.width;\n let height = graph._label.height;\n let tx = 0;\n let ty = 0;\n if (sWidth > width) {\n tx = (sWidth - width) / 2 + padding;\n width = sWidth + padding * 2;\n } else {\n if (Math.abs(sWidth - width) >= 2 * padding + 1) {\n width = width - padding;\n }\n }\n if (sHeight > height) {\n ty = (sHeight - height) / 2 + padding;\n height = sHeight + padding * 2;\n }\n configureSvgSize(svgElem, height, width, useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `0 0 ${width} ${height}`;\n log.debug(\n 'Graph.label',\n graph._label,\n 'swidth',\n sWidth,\n 'sheight',\n sHeight,\n 'width',\n width,\n 'height',\n height,\n 'tx',\n tx,\n 'ty',\n ty,\n 'vBox',\n vBox\n );\n svgElem.attr('viewBox', vBox);\n svgElem.select('g').attr('transform', `translate(${tx}, ${ty})`);\n};\n\nexport const initIdGenerator = class iterator {\n constructor(deterministic, seed) {\n this.deterministic = deterministic;\n this.seed = seed;\n\n this.count = seed ? seed.length : 0;\n }\n\n next() {\n if (!this.deterministic) return Date.now();\n\n return this.count++;\n }\n};\n\nlet decoder;\n\n/**\n * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}\n *\n * @param {string} html HTML as a string\n * @returns Unescaped HTML\n */\nexport const entityDecode = function (html) {\n decoder = decoder || document.createElement('div');\n // Escape HTML before decoding for HTML Entities\n html = escape(html).replace(/%26/g, '&').replace(/%23/g, '#').replace(/%3B/g, ';');\n // decoding\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n};\n\n/**\n * Sanitizes directive objects\n *\n * @param {object} args Directive's JSON\n */\nexport const directiveSanitizer = (args) => {\n log.debug('directiveSanitizer called with', args);\n if (typeof args === 'object') {\n // check for array\n if (args.length) {\n args.forEach((arg) => directiveSanitizer(arg));\n } else {\n // This is an object\n Object.keys(args).forEach((key) => {\n log.debug('Checking key', key);\n if (key.indexOf('__') === 0) {\n log.debug('sanitize deleting __ option', key);\n delete args[key];\n }\n\n if (key.indexOf('proto') >= 0) {\n log.debug('sanitize deleting proto option', key);\n delete args[key];\n }\n\n if (key.indexOf('constr') >= 0) {\n log.debug('sanitize deleting constr option', key);\n delete args[key];\n }\n\n if (key.indexOf('themeCSS') >= 0) {\n log.debug('sanitizing themeCss option');\n args[key] = sanitizeCss(args[key]);\n }\n if (key.indexOf('fontFamily') >= 0) {\n log.debug('sanitizing fontFamily option');\n args[key] = sanitizeCss(args[key]);\n }\n if (key.indexOf('altFontFamily') >= 0) {\n log.debug('sanitizing altFontFamily option');\n args[key] = sanitizeCss(args[key]);\n }\n if (configKeys.indexOf(key) < 0) {\n log.debug('sanitize deleting option', key);\n delete args[key];\n } else {\n if (typeof args[key] === 'object') {\n log.debug('sanitize deleting object', key);\n directiveSanitizer(args[key]);\n }\n }\n });\n }\n }\n if (args.themeVariables) {\n const kArr = Object.keys(args.themeVariables);\n for (let i = 0; i < kArr.length; i++) {\n const k = kArr[i];\n const val = args.themeVariables[k];\n if (val && val.match && !val.match(/^[a-zA-Z0-9#,\";()%. ]+$/)) {\n args.themeVariables[k] = '';\n }\n }\n }\n log.debug('After sanitization', args);\n};\nexport const sanitizeCss = (str) => {\n let startCnt = 0;\n let endCnt = 0;\n\n for (let i = 0; i < str.length; i++) {\n if (startCnt < endCnt) {\n return '{ /* ERROR: Unbalanced CSS */ }';\n }\n if (str[i] === '{') {\n startCnt++;\n } else if (str[i] === '}') {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return '{ /* ERROR: Unbalanced CSS */ }';\n }\n // Todo add more checks here\n return str;\n};\n\nexport default {\n assignWithDepth,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n calculateSvgSizeAttrs,\n configureSvgSize,\n setupGraphViewbox,\n detectInit,\n detectDirective,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n memoize,\n runFunc,\n entityDecode,\n initIdGenerator: initIdGenerator,\n directiveSanitizer,\n sanitizeCss,\n};\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","module.exports = require(\"@braintree/sanitize-url\");","module.exports = require(\"d3\");","module.exports = require(\"dagre\");","module.exports = require(\"dagre-d3\");","module.exports = require(\"dagre-d3/lib/label/add-html-label.js\");","module.exports = require(\"dompurify\");","module.exports = require(\"graphlib\");","module.exports = require(\"khroma\");","module.exports = require(\"moment-mini\");","module.exports = require(\"stylis\");","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n",""],"names":["addSVGAccessibilityFields","yy_parser","svg","id","insert","title_string","getAccTitle","description","getAccDescription","attr","text","sanitizeText","_sanitizeText","getConfig","title","diagramTitle","txt","clear","setAccTitle","replace","setAccDescription","setDiagramTitle","getDiagramTitle","assignWithDepth","log","theme","config","defaultConfig","Object","freeze","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","sumOfDirectives","i","length","d","sanitize","tmpConfigFromInitialize","themeVariables","getThemeVariables","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","setConfig","options","keys","secure","forEach","key","debug","indexOf","addDirective","directive","fontFamily","push","reset","intersectRect","createLabel","select","evaluate","rect","parent","node","trace","shapeSvg","class","label","appendChild","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","getBoundingClientRect","width","height","padding","halfPadding","diff","JSON","stringify","style","rx","ry","x","y","rectBox","intersect","point","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","positionCluster","info","el","sanitizeTxt","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","_vertexText","isTitle","vertexText","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","j","tspan","setAttributeNS","textContent","trim","line","curveBasis","utils","edgeLabels","terminalLabels","insertEdgeLabel","edge","labelElement","edgeLabel","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","value","positionEdgeLabel","paths","path","updatedPath","originalPath","pos","calcLabelPosition","calcTerminalLabelPosition","arrowTypeStart","arrowTypeEnd","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","warn","r","Q","R","q","res","_x","_y","cutPathAtIntersect","_points","boundryNode","points","lastPointOutside","isInside","inter","pointPresent","p","find","e","insertEdge","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","slice","unshift","toCluster","fromCluster","reverse","lineData","filter","Number","isNaN","curve","lineFunction","strokeClasses","thickness","pattern","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","dagre","graphlib","insertMarkers","updateNodeBounds","clearGraphlib","adjustClustersAndEdges","findNonClusterChild","sortNodesByHierarchy","insertNode","positionNode","clearNodes","setNodeElem","clearClusters","clearEdges","recursiveRender","_elem","diagramtype","parentCluster","json","write","dir","rankdir","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","o","newEl","name","layout","n","type","render","markers","circle","ellipse","polygon","intersectEllipse","intersectCircle","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","removeEdge","specialId","domId","edge1","edge2","extractor","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","sorter","result","assign","sorted","labelHelper","insertPolygonShape","note","parseMember","question","questionElem","choice","map","join","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","totalWidth","totalHeight","props","propKeys","Set","borders","applyNodePropertyBorders","delete","propKey","labelRect","strokeDashArray","addBorder","skipBorder","includes","rectWithTitle","innerLine","text2","flat","textRows","titleBox","descr","stadium","doublecircle","gap","circleGroup","outerCircle","innerCircle","subroutine","start","forkJoin","end","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","members","str","parsedInfo","parsedText","displayText","lbl","cssStyle","classMethods","methods","diffX","fork","nodeElems","link","target","securityLevel","linkTarget","tooltip","haveCallback","decodeEntities","_classes","element","themeCSS","maxTextSize","darkMode","logLevel","startOnLoad","deterministicIds","deterministicIDSeed","diagramPadding","nodeSpacing","rankSpacing","useMaxWidth","defaultRenderer","sequence","hideUnusedParticipants","activationWidth","diagramMarginX","diagramMarginY","actorMargin","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","forceMenus","bottomMarginAdj","rightAngles","showSequenceNumbers","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","wrap","wrapPadding","labelBoxWidth","labelBoxHeight","messageFont","fontSize","fontWeight","noteFont","actorFont","gantt","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","sectionFontSize","numberSectionStyles","axisFormat","topAxis","useWidth","journey","leftMargin","taskFontSize","taskFontFamily","taskMargin","textPlacement","actorColours","sectionFills","sectionColours","dividerMargin","sizeUnit","textHeight","titleShift","forkWidth","forkHeight","miniPadding","fontSizeFactor","labelHeight","edgeLengthFactor","compositTitleSize","radius","er","layoutDirection","minEntityWidth","minEntityHeight","entityPadding","stroke","fill","pie","requirement","rect_fill","text_color","rect_border_size","rect_border_color","rect_min_width","rect_min_height","rect_padding","line_height","gitGraph","nodeLabel","mainBranchName","mainBranchOrder","showCommitLabel","showBranches","rotateCommitLabel","c4","c4ShapeMargin","c4ShapePadding","c4ShapeInRow","nextLinePaddingX","c4BoundaryInRow","personFontSize","personFontFamily","personFontWeight","external_personFontSize","external_personFontFamily","external_personFontWeight","systemFontSize","systemFontFamily","systemFontWeight","external_systemFontSize","external_systemFontFamily","external_systemFontWeight","system_dbFontSize","system_dbFontFamily","system_dbFontWeight","external_system_dbFontSize","external_system_dbFontFamily","external_system_dbFontWeight","system_queueFontSize","system_queueFontFamily","system_queueFontWeight","external_system_queueFontSize","external_system_queueFontFamily","external_system_queueFontWeight","boundaryFontSize","boundaryFontFamily","boundaryFontWeight","containerFontSize","containerFontFamily","containerFontWeight","external_containerFontSize","external_containerFontFamily","external_containerFontWeight","container_dbFontSize","container_dbFontFamily","container_dbFontWeight","external_container_dbFontSize","external_container_dbFontFamily","external_container_dbFontWeight","container_queueFontSize","container_queueFontFamily","container_queueFontWeight","external_container_queueFontSize","external_container_queueFontFamily","external_container_queueFontWeight","componentFontSize","componentFontFamily","componentFontWeight","external_componentFontSize","external_componentFontFamily","external_componentFontWeight","component_dbFontSize","component_dbFontFamily","component_dbFontWeight","external_component_dbFontSize","external_component_dbFontFamily","external_component_dbFontWeight","component_queueFontSize","component_queueFontFamily","component_queueFontWeight","external_component_queueFontSize","external_component_queueFontFamily","external_component_queueFontWeight","personFont","external_personFont","systemFont","external_systemFont","system_dbFont","external_system_dbFont","system_queueFont","external_system_queueFont","containerFont","external_containerFont","container_dbFont","external_container_dbFont","container_queueFont","external_container_queueFont","componentFont","external_componentFont","component_dbFont","external_component_dbFont","component_queueFont","external_component_queueFont","boundaryFont","person_bg_color","person_border_color","external_person_bg_color","external_person_border_color","system_bg_color","system_border_color","system_db_bg_color","system_db_border_color","system_queue_bg_color","system_queue_border_color","external_system_bg_color","external_system_border_color","external_system_db_bg_color","external_system_db_border_color","external_system_queue_bg_color","external_system_queue_border_color","container_bg_color","container_border_color","container_db_bg_color","container_db_border_color","container_queue_bg_color","container_queue_border_color","external_container_bg_color","external_container_border_color","external_container_db_bg_color","external_container_db_border_color","external_container_queue_bg_color","external_container_queue_border_color","component_bg_color","component_border_color","component_db_bg_color","component_db_border_color","component_queue_bg_color","component_queue_border_color","external_component_bg_color","external_component_border_color","external_component_db_bg_color","external_component_db_border_color","external_component_queue_bg_color","external_component_queue_border_color","keyify","obj","prefix","reduce","configKeys","mermaidAPI","configApi","c4ShapeArray","boundaryParseStack","currentBoundaryParse","parentBoundaryParse","boundarys","alias","tags","parentBoundary","rels","wrapEnabled","c4Type","getC4Type","setC4Type","c4TypeParam","sanitizedText","parseDirective","statement","context","addRel","from","to","techn","sprite","rel","old","entries","autoWrap","addPersonOrSystem","typeC4Shape","personOrSystem","addContainer","container","addComponent","component","addPersonOrSystemBoundary","boundary","addContainerBoundary","addDeploymentNode","nodeType","popBoundaryParseStack","pop","updateElStyle","elementName","bgColor","fontColor","borderColor","shadowing","legendText","legendSprite","updateRelStyle","textColor","lineColor","offsetX","offsetY","parseInt","updateLayoutConfig","c4ShapeInRowParam","c4BoundaryInRowParam","c4ShapeInRowValue","c4BoundaryInRowValue","getC4ShapeInRow","getC4BoundaryInRow","getCurrentBoundaryParse","getParentBoundaryParse","getC4ShapeArray","getC4Shape","getC4ShapeKeys","getBoundarys","getRels","getTitle","setWrap","wrapSetting","LINETYPE","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","ACTIVE_START","ACTIVE_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","SOLID_POINT","DOTTED_POINT","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","setTitle","svgDraw","drawText","fixLifeLineHeights","parser","common","c4Db","wrapLabel","calculateTextWidth","calculateTextHeight","configureSvgSize","globalBoundaryMaxX","globalBoundaryMaxY","yy","Bounds","startx","stopx","starty","stopy","widthLimit","nextData","cnt","setConf","val","fun","c4Shape","_startx","margin","_stopx","_starty","_stopy","updateVal","max","cnf","c4ShapeFont","calcC4ShapeTextWH","textType","c4ShapeTextWrap","textConf","textLimitWidth","textLines","lineBreakRegex","lines","drawBoundary","diagram","bounds","boundaryTextWrap","boundaryLabelConf","drawC4ShapeArray","currentBounds","c4ShapeKeys","Y","c4ShapeTypeConf","image","c4ShapeLabelConf","c4ShapeTechnConf","rectHeight","rectWidth","c4ShapeDescrConf","drawC4Shape","bumpLastMargin","Point","getIntersectPoint","fromNode","endPoint","x2","y2","fromCenterX","fromCenterY","tanDYX","fromDYX","returnPoint","getIntersectPoints","endNode","endIntersectPoint","startPoint","drawRels","getC4ShapeObj","relTextWrap","relConf","drawInsideBoundary","parentBoundaryAlias","parentBounds","currentBoundarys","currentBoundary","currentBoundaryTextWrap","currentBoundaryLabelConf","currentBoundaryTypeConf","currentBoundaryDescrConf","setData","currentPersonOrSystemArray","currentPersonOrSystemKeys","nextCurrentBoundarys","draw","sandboxElement","root","contentDocument","body","doc","db","insertComputerIcon","insertDatabaseIcon","insertClockIcon","screenBounds","screen","availWidth","c4type","insertArrowHead","insertArrowEnd","insertArrowCrossHead","insertArrowFilledHead","box","boxHeight","boxWidth","extraVertForTitle","drawPersonOrSystemArray","getStyles","personBorder","personBkg","addFunction","sanitizeUrl","drawRect","rectData","rectElem","attrs","attrKey","drawImage","imageElem","sanitizedLink","startsWith","drawEmbeddedImage","textData","prevTextHeight","textElems","yfunc","valign","textMargin","round","anchor","dominantBaseline","alignmentBaseline","textElem","span","_groups","drawLabel","txtObject","genPoints","cut","relsElem","strokeColor","replaceAll","messageConf","_drawTextCandidateFunc","boundaryElem","fillColor","attrsValue","boundaryConf","personImg","c4ShapeElem","getNoteRect","c4ShapeFontConf","getC4ShapeFont","textFontConf","thchn","insertDynamicNumber","defs","marker","getTextObj","byText","content","g","textAttrs","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","hasOwnProperty","commonClear","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","relationTitle1","relationTitle2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","endsWith","substring","addMembers","cleanupLabel","substr","setCssClass","ids","match","setTooltip","setLink","linkStr","formatUrl","setClickEvent","functionName","functionArgs","setClickFunc","elemId","argList","item","charAt","querySelector","addEventListener","runFunc","bindFunctions","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","selectAll","on","transition","duration","scrollX","right","scrollY","scrollTop","classed","direction","getDirection","setDirection","classDb","curveLinear","interpolateToCurve","getStylesFromArray","setupGraphViewbox","idCache","addClasses","vertex","cssClassStr","styles","radious","_shape","addRelations","defaultStyle","defaultLabelStyle","edgeData","arrowhead","getArrowMarker","type1","type2","interpolate","defaultInterpolate","arrowheadStyle","labelpos","labelType","getGraphId","foundEntry","labels","querySelectorAll","k","dim","insertBefore","firstChild","isMultiGraph","classDef","drawClass","drawEdge","svgBounds","vBox","nodeBorder","classText","mainBkg","edgeCount","getRelationType","l","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","classInfo","isFirst","titleText2","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","childNodes","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","visibility","fieldType","parseGenericTypes","fieldName","classifier","parseClassifier","err","methodName","parameters","returnType","memberText","methodStart","methodEnd","firstChar","textEl","tSpan","cleanedText","DOMPurify","getRows","breakToPlaceholder","removeEscapes","newStr","String","fromCharCode","_","c","removeScript","rs","idx","decodedText","sanitizeMore","level","placeholderToBreak","sanitizeTextOrArray","a","hasBreaks","test","splitBreaks","getUrl","useAbsolute","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","attributes","getEntities","addAttributes","entityName","attribs","entity","attributeName","addRelationship","entA","rolA","entB","rSpec","entityA","roleA","entityB","relSpec","getRelationships","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","erDb","erParser","erMarkers","drawAttributes","groupNode","entityTextNode","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","attributeKeyType","attributeComment","attrPrefix","nodeHeight","typeNode","attributeType","nameNode","attributeNode","tn","nn","typeBBox","nameBBox","keyTypeNode","kn","keyTypeBBox","commentNode","cn","commentNodeBBox","widthPaddingFactor","bBox","spareColumnWidth","heightOffset","attribStyle","alignY","typeRect","nameXOffset","parseFloat","nameRect","keyTypeAndCommentXOffset","keyTypeRect","drawEntities","svgNode","firstOne","textId","textNode","entityWidth","entityHeight","rectNode","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","cardA","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","directed","edgesep","firstEntity","tertiaryColor","dagreD3","addToRender","addToRenderV2","addShape","vertexCounter","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","version","veritceKeys","addVertex","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","updateLink","isSubstringInArray","textStyles","newStyle1","newStyle2","setClass","setClickFun","getTooltip","getVertices","getEdges","ver","setGen","addSubGraph","list","_title","uniq","prims","boolean","number","string","objs","nodeList","stmt","apply","nl","subGraph","makeUniq","getPosForId","secCount","posCrossRef","indexNodes2","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","countChar","char","destructEndLink","dots","destructLink","_startStr","startInfo","exists","allSgs","sg","allSubgraphs","lex","flowDb","flow","addVertices","vert","svgId","classStr","parentNode","addEdges","linkIdCnt","defaultStyles","linkIdBase","linkId","linkNameStart","linkNameEnd","minlen","subG","linkNode","flowChartShapes","_doc","Render","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","yPos","_width","cluster","te","classList","add","nodeTextColor","titleColor","arrowheadColor","edgeLabelBackground","clusterBkg","clusterBorder","border2","moment","dateFormat","todayMarker","excludes","links","accDescription","sections","tasks","currentSection","inclusiveEndDates","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","getDateFormat","setIncludes","toLowerCase","getIncludes","setExcludes","getExcludes","getLinks","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","format","isoWeekday","checkTaskDates","task","manualEndTime","startTime","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","order","addTaskOrg","newTask","compileTask","allProcessed","_linkStr","pushFun","open","callbackFunction","matchFound","t","regex","RegExp","shift","scaleTime","scaleLinear","interpolateHcl","axisBottom","axisTop","timeFormat","ganttDb","getElementById","parentElement","offsetWidth","taskArray","timeScale","domain","rangeRound","categories","catsUnfiltered","checkUnique","taskCompare","b","taskA","taskB","makeGant","pageWidth","pageHeight","colorScale","range","drawExcludeDays","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","each","taskRect","taskText","oldParent","Link","createElement","minTime","maxTime","excludeRanges","valueOf","clone","renderEnd","bottomXAxis","tickSize","tickFormat","call","topXAxis","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","prototype","getCounts","word","excludeBkgColor","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","ganttFontSize","gridColor","todayLineColor","taskTextDarkColor","taskTextClickableColor","taskTextColor","taskBkgColor","taskBorderColor","taskTextOutsideColor","activeTaskBkgColor","activeTaskBorderColor","doneTaskBorderColor","doneTaskBkgColor","critBorderColor","critBkgColor","random","commits","branchesConfig","branches","curBranch","seq","getId","uniqBy","fn","recordMap","create","out","setOptions","rawOptString","message","getOptions","commit","msg","tag","commitType","NORMAL","branch","checkout","Error","token","loc","first_line","last_line","first_column","last_column","expected","merge","otherBranch","currentCommit","otherCommit","MERGE","cherryPick","sourceId","targetId","sourceCommit","sourceCommitBranch","CHERRY_PICK","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","newCommit","nextCommit","prettyPrint","getCommitsArray","mainBranch","getBranchesAsObjArray","branchesArray","values","branchConfig","getBranches","getCommits","getCurrentBranch","getHead","REVERSE","HIGHLIGHT","gitGraphParser","allCommitsDict","branchNum","branchPos","commitPos","lanes","maxPos","drawCommits","modifyGraph","gitGraphConfig","gBullets","gLabels","sortedKeys","typeClass","circle2","wrapper","labelBkg","r_x","r_y","hole","tagBbox","h2","ly","hasOverlappingCommits","commit1","commit2","allCommits","commit1Pos","commit2Pos","overlappingComits","findLane","_depth","candidate","ok","drawArrow","overlappingCommits","arc","arc2","colorClassNum","lineDef","lineY","arrow","drawArrows","gArrows","drawBranches","adjustIndexForTheme","bkg","branchLabel","commitLabelFontSize","commitLabelColor","commitLabelBackground","tagLabelFontSize","tagLabelColor","tagLabelBackground","tagLabelBorder","primaryColor","setMessage","getMessage","setInfo","inf","getInfo","infoParser","showData","setShowData","toggle","getShowData","cleanupValue","scaleOrdinal","d3pie","pieData","pieParser","legendRectSize","legendSpacing","sum","myGeneratedColors","pie1","pie2","pie3","pie4","pie5","pie6","pie7","pie8","pie9","pie10","pie11","pie12","color","dataReady","arcGenerator","innerRadius","outerRadius","toFixed","centroid","legend","horz","pieStrokeColor","pieStrokeWidth","pieOpacity","pieTitleTextSize","pieTitleTextColor","pieSectionTextColor","pieSectionTextSize","pieLegendTextColor","pieLegendTextSize","latestRequirement","requirements","latestElement","elements","RequirementType","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","RiskLevel","LOW_RISK","MED_RISK","HIGH_RISK","VerifyType","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","Relationships","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","addRequirement","risk","verifyMethod","getRequirements","setNewReqId","setNewReqText","setNewReqRisk","setNewReqVerifyMethod","addElement","docRef","getElements","setNewElementType","setNewElementDocRef","src","dst","req","ReqMarkers","ARROW","insertLineEndings","containsNode","requirementDb","newRectNode","newTitleNode","txts","textStr","yPadding","linePadding","totalY","titleNode","newBodyNode","yStart","currentRow","charLimit","wrappedTxts","currentTextLen","firstPart","lastStr","addEdgeLabel","elementString","drawReqs","reqs","reqName","titleNodeInfo","bodyNode","drawElements","els","elName","relationColor","requirementBackground","requirementBorderColor","requirementBorderSize","requirementTextColor","relationLabelBackground","relationLabelColor","prevActor","actors","messages","notes","sequenceNumbersEnabled","addActor","properties","actorCnt","nextActor","activationCount","part","actor","addMessage","idFrom","idTo","answer","addSignal","messageType","getMessages","getActors","getActor","getActorKeys","enableSequenceNumbers","disableSequenceNumbers","parseMessage","AUTONUMBER","CRITICAL_START","CRITICAL_OPTION","CRITICAL_END","BREAK_START","BREAK_END","addNote","placement","addLinks","actorId","insertLinks","addALink","sep","addProperties","insertProperties","addDetails","innerHTML","details","getActorProperty","param","sequenceIndex","step","sequenceIndexStep","visible","sequenceVisible","signalType","loopText","optText","altText","parText","criticalText","optionText","breakText","sequenceDb","sequenceItems","activations","models","getHeight","loops","it","acc","actorModel","addLoop","loopModel","msgModel","noteModel","lastActor","lastLoop","lastMessage","lastNote","init","updateBounds","_self","updateFn","updateItemBounds","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","createLoop","newLoop","endLoop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","drawNote","textObj","curr","boundMessage","textDims","calculateTextDimensions","lineStarty","totalOffset","fromBounds","toBounds","drawMessage","drawActors","actorKeys","configuration","newActors","actorKey","has","prevWidth","prevMargin","drawActor","drawActorsPopup","minMenuWidth","getRequiredPopupWidth","menuDimensions","drawPopup","activationBounds","actorObj","adjustLoopHeightForWrap","loopWidths","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","calculateLoopBounds","insertSequenceNumber","activeEnd","activationData","drawActivation","messagesToDraw","drawLoop","drawBackgroundRect","messageModel","requiredBoxSize","actorLines","isNote","isMessage","textFont","wrappedMessage","messageDimensions","messageWidth","requiredPopupWidth","labelDimensions","labelWidth","actorToMessageWidth","prop","actDims","actorWidth","buildNoteModel","shouldWrap","textDimensions","buildMessageModel","process","fromIdx","toIdx","allBounds","boundedWidth","msgDims","stack","current","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","toAdd","enabled","stk","actorBorder","actorBkg","actorTextColor","actorLineColor","signalColor","sequenceNumberColor","signalTextColor","labelBoxBorderColor","labelBoxBkgColor","labelTextColor","loopTextColor","noteBorderColor","noteBkgColor","noteTextColor","activationBkgColor","activationBorderColor","addPopupInteraction","popupMenuUpFunc","popupMenuDownFunc","displayValue","actorClass","menuWidth","linkY","linkElem","_drawMenuItemTextCandidateFunc","popupMenu","popid","popdownMenu","popupId","pu","display","drawActorTypeParticipant","center","boxpluslineGroup","cssclass","iconSrc","drawActorTypeActor","actElem","drawLoopLine","sectionHeight","lower","set","get","size","stateDb","drawStartState","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleWidth","graphBox","drawEndState","drawForkJoinState","parentId","tmp","nText","_drawLongText","_text","tHeight","textBounds","drawState","stateInfo","stateBox","titleRows","boundstmp","heightAdj","generateId","rootDoc","setRootDoc","getRootDoc","docTranslator","first","state1","state2","currentDoc","newNode","docNode","getRootDocV2","extract","addState","newDoc","states","documents","currentDocument","startCnt","endCnt","addDescription","des","saveCommon","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","getDir","nodeData","noteData","groupData","position","arrowType","setupDoc","startId","endId","defaultDir","transformationLog","renderDoc","svgWidth","getLabelWidth","domDocument","edgeFreeDoc","ranker","nodeSep","sub","boxBounds","noteDef","nodeCount","svgElem","dividers","pWidth","pShift","getAttribute","transitionColor","stateLabelColor","background","labelBackgroundColor","transitionLabelColor","tertiaryTextColor","specialStateColor","innerEndBackground","compositeBackground","stateBkg","stateBorder","compositeTitleBackground","altBackground","allItemsProcessed","updateActors","tempActors","people","unique","taskData","pieces","score","peeps","peopleList","journeyDb","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","faceColor","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","actor0","actor1","actor2","actor3","actor4","actor5","d3arc","drawFace","faceData","circleElement","face","smile","startAngle","PI","endAngle","sad","ambivalent","labelMargin","taskCount","graphics","interactionFunctions","func","attachFunctions","LEVELS","fatal","setLogLevel","console","bind","time","initThrowsErrors","arguments","parseError","mermaid","sequenceConfig","callback","Node","ganttConfig","idGenerator","initIdGenerator","next","entityDecode","detectInit","svgCode","initialize","contentLoaded","setParseErrorHandler","newParseErrorHandler","compile","serialize","pkg","c4Renderer","c4Parser","classRenderer","classRendererV2","classParser","erRenderer","flowRenderer","flowRendererV2","flowParser","ganttRenderer","ganttParser","gitGraphAst","gitGraphRenderer","infoDb","infoRenderer","pieDb","pieRenderer","requirementParser","requirementRenderer","sequenceParser","sequenceRenderer","stateParser","stateRenderer","stateRendererV2","journeyRenderer","journeyParser","errorRenderer","directiveSanitizer","sanitizeCss","parseEncounteredException","graphInit","reinitialize","graphType","detectType","encodeEntities","innerTxt","isInt","_txt","cb","iframe","existingSvg","remove","userStyles","altFontFamily","stylis","selector","rules","style1","sequenceDiagram","svgEl","viewBox","btoa","ADD_TAGS","ADD_ATTR","tmpElementSelector","currentDirective","args","handleDirective","updateRendererConfigs","default","globalReset","classDiagram","stateDiagram","themes","calcThemeVariables","userOverRides","calcColors","errorBkgColor","errorTextColor","baseThemeVariables","darkThemeVariables","defaultThemeVariables","forestThemeVariables","neutralThemeVariables","base","dark","forest","neutral","darken","lighten","adjust","invert","mkBorder","Theme","primaryTextColor","secondaryColor","primaryBorderColor","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","nodeBkg","defaultLinkColor","taskTextLightColor","compositeBorder","git0","git1","git2","git3","git4","git5","git6","git7","gitInv0","gitInv1","gitInv2","gitInv3","gitInv4","gitInv5","gitInv6","gitInv7","branchLabelColor","gitBranchLabel0","gitBranchLabel1","gitBranchLabel2","gitBranchLabel3","gitBranchLabel4","gitBranchLabel5","gitBranchLabel6","gitBranchLabel7","tagBorder","overrides","updateColors","userOverrides","calculate","rgba","secondBkg","mainContrastColor","darkTextColor","border1","labelBackground","labelColor","col","contrast","critical","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","d3CurveTypes","directiveWithoutOpen","anyComment","inits","detectDirective","results","commentWithoutDirectives","source","lastIndex","memoize","resolver","cache","defaultCurve","curveName","toUpperCase","arrPaths","fnName","params","distance","pow","traverseEdge","prevPoint","totalDistance","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos","terminalMarkerSize","makeid","characters","charactersLength","floor","clobber","drawSimpleText","joinWith","words","completedLines","nextLine","wordLength","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","fontFamilies","dims","cheight","d3Attrs","d3Elem","calculateSvgSizeAttrs","Map","sWidth","sHeight","_label","tx","ty","deterministic","seed","now","decoder","escape","unescape","arg","kArr"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/mermaid/mermaid.js b/dist/mermaid/mermaid.js index a53ffd4..9f9f770 100644 --- a/dist/mermaid/mermaid.js +++ b/dist/mermaid/mermaid.js @@ -1,2 +1,2 @@ /*! For license information please see mermaid.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.mermaid=t():e.mermaid=t()}("undefined"!=typeof self?self:this,(function(){return(()=>{var e={"./src/diagrams/class/parser/classDiagram.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,6],n=[1,7],r=[1,8],o=[1,9],s=[1,12],a=[1,11],i=[1,15,24],d=[1,19],l=[1,31],u=[1,34],c=[1,32],f=[1,33],h=[1,35],m=[1,36],p=[1,37],g=[1,38],_=[1,41],y=[1,42],v=[1,43],b=[1,44],j=[15,24],x=[1,56],w=[1,57],k=[1,58],C=[1,59],T=[1,60],E=[1,61],S=[15,24,31,38,39,47,50,51,52,53,54,55,60,62],M=[15,24,29,31,38,39,43,47,50,51,52,53,54,55,60,62,77,78,79,80],A=[7,8,9,10,15,18,22,24],N=[47,77,78,79,80],D=[47,54,55,77,78,79,80],O=[47,50,51,52,53,77,78,79,80],B=[15,24,31],R=[1,93],I={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,CLASS_DIAGRAM:22,statements:23,EOF:24,statement:25,className:26,alphaNumToken:27,classLiteralName:28,GENERICTYPE:29,relationStatement:30,LABEL:31,classStatement:32,methodStatement:33,annotationStatement:34,clickStatement:35,cssClassStatement:36,CLASS:37,STYLE_SEPARATOR:38,STRUCT_START:39,members:40,STRUCT_STOP:41,ANNOTATION_START:42,ANNOTATION_END:43,MEMBER:44,SEPARATOR:45,relation:46,STR:47,relationType:48,lineType:49,AGGREGATION:50,EXTENSION:51,COMPOSITION:52,DEPENDENCY:53,LINE:54,DOTTED_LINE:55,CALLBACK:56,LINK:57,LINK_TARGET:58,CLICK:59,CALLBACK_NAME:60,CALLBACK_ARGS:61,HREF:62,CSSCLASS:63,commentToken:64,textToken:65,graphCodeTokens:66,textNoTagsToken:67,TAGSTART:68,TAGEND:69,"==":70,"--":71,PCT:72,DEFAULT:73,SPACE:74,MINUS:75,keywords:76,UNICODE_TEXT:77,NUM:78,ALPHA:79,BQUOTE_STR:80,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"CLASS_DIAGRAM",24:"EOF",29:"GENERICTYPE",31:"LABEL",37:"CLASS",38:"STYLE_SEPARATOR",39:"STRUCT_START",41:"STRUCT_STOP",42:"ANNOTATION_START",43:"ANNOTATION_END",44:"MEMBER",45:"SEPARATOR",47:"STR",50:"AGGREGATION",51:"EXTENSION",52:"COMPOSITION",53:"DEPENDENCY",54:"LINE",55:"DOTTED_LINE",56:"CALLBACK",57:"LINK",58:"LINK_TARGET",59:"CLICK",60:"CALLBACK_NAME",61:"CALLBACK_ARGS",62:"HREF",63:"CSSCLASS",66:"graphCodeTokens",68:"TAGSTART",69:"TAGEND",70:"==",71:"--",72:"PCT",73:"DEFAULT",74:"SPACE",75:"MINUS",76:"keywords",77:"UNICODE_TEXT",78:"NUM",79:"ALPHA",80:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[23,1],[23,2],[23,3],[26,1],[26,1],[26,2],[26,2],[26,2],[25,1],[25,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[32,2],[32,4],[32,5],[32,7],[34,4],[40,1],[40,2],[33,1],[33,2],[33,1],[33,1],[30,3],[30,4],[30,4],[30,5],[46,3],[46,2],[46,2],[46,1],[48,1],[48,1],[48,1],[48,1],[49,1],[49,1],[35,3],[35,4],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[35,3],[35,4],[35,4],[35,5],[36,3],[64,1],[64,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[67,1],[67,1],[67,1],[67,1],[27,1],[27,1],[27,1],[28,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 4:r.setDirection("TB");break;case 5:r.setDirection("BT");break;case 6:r.setDirection("RL");break;case 7:r.setDirection("LR");break;case 11:r.parseDirective("%%{","open_directive");break;case 12:r.parseDirective(s[i],"type_directive");break;case 13:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 14:r.parseDirective("}%%","close_directive","class");break;case 19:case 20:this.$=s[i];break;case 21:this.$=s[i-1]+s[i];break;case 22:case 23:this.$=s[i-1]+"~"+s[i];break;case 24:r.addRelation(s[i]);break;case 25:s[i-1].title=r.cleanupLabel(s[i]),r.addRelation(s[i-1]);break;case 33:r.addClass(s[i]);break;case 34:r.addClass(s[i-2]),r.setCssClass(s[i-2],s[i]);break;case 35:r.addClass(s[i-3]),r.addMembers(s[i-3],s[i-1]);break;case 36:r.addClass(s[i-5]),r.setCssClass(s[i-5],s[i-3]),r.addMembers(s[i-5],s[i-1]);break;case 37:r.addAnnotation(s[i],s[i-2]);break;case 38:this.$=[s[i]];break;case 39:s[i].push(s[i-1]),this.$=s[i];break;case 40:case 42:case 43:break;case 41:r.addMember(s[i-1],r.cleanupLabel(s[i]));break;case 44:this.$={id1:s[i-2],id2:s[i],relation:s[i-1],relationTitle1:"none",relationTitle2:"none"};break;case 45:this.$={id1:s[i-3],id2:s[i],relation:s[i-1],relationTitle1:s[i-2],relationTitle2:"none"};break;case 46:this.$={id1:s[i-3],id2:s[i],relation:s[i-2],relationTitle1:"none",relationTitle2:s[i-1]};break;case 47:this.$={id1:s[i-4],id2:s[i],relation:s[i-2],relationTitle1:s[i-3],relationTitle2:s[i-1]};break;case 48:this.$={type1:s[i-2],type2:s[i],lineType:s[i-1]};break;case 49:this.$={type1:"none",type2:s[i],lineType:s[i-1]};break;case 50:this.$={type1:s[i-1],type2:"none",lineType:s[i]};break;case 51:this.$={type1:"none",type2:"none",lineType:s[i]};break;case 52:this.$=r.relationType.AGGREGATION;break;case 53:this.$=r.relationType.EXTENSION;break;case 54:this.$=r.relationType.COMPOSITION;break;case 55:this.$=r.relationType.DEPENDENCY;break;case 56:this.$=r.lineType.LINE;break;case 57:this.$=r.lineType.DOTTED_LINE;break;case 58:case 64:this.$=s[i-2],r.setClickEvent(s[i-1],s[i]);break;case 59:case 65:this.$=s[i-3],r.setClickEvent(s[i-2],s[i-1]),r.setTooltip(s[i-2],s[i]);break;case 60:case 68:this.$=s[i-2],r.setLink(s[i-1],s[i]);break;case 61:case 69:this.$=s[i-3],r.setLink(s[i-2],s[i-1],s[i]);break;case 62:case 70:this.$=s[i-3],r.setLink(s[i-2],s[i-1]),r.setTooltip(s[i-2],s[i]);break;case 63:case 71:this.$=s[i-4],r.setLink(s[i-3],s[i-2],s[i]),r.setTooltip(s[i-3],s[i-1]);break;case 66:this.$=s[i-3],r.setClickEvent(s[i-2],s[i-1],s[i]);break;case 67:this.$=s[i-4],r.setClickEvent(s[i-3],s[i-2],s[i-1]),r.setTooltip(s[i-3],s[i]);break;case 72:r.setCssClass(s[i-1],s[i])}},table:[{3:1,4:2,5:3,6:4,7:t,8:n,9:r,10:o,11:5,12:10,18:s,22:a},{1:[3]},{1:[2,1]},{1:[2,2]},{3:13,4:2,5:3,6:4,7:t,8:n,9:r,10:o,11:5,12:10,18:s,22:a},{1:[2,8]},e(i,[2,4]),e(i,[2,5]),e(i,[2,6]),e(i,[2,7]),{13:14,19:[1,15]},{15:[1,16]},{19:[2,11]},{1:[2,3]},{14:17,16:[1,18],21:d},e([16,21],[2,12]),{5:29,6:28,7:t,8:n,9:r,10:o,12:10,18:s,23:20,25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:l,42:u,44:c,45:f,56:h,57:m,59:p,63:g,77:_,78:y,79:v,80:b},{15:[1,45]},{17:46,20:[1,47]},{15:[2,14]},{24:[1,48]},{15:[1,49],24:[2,16]},e(j,[2,24],{31:[1,50]}),e(j,[2,26]),e(j,[2,27]),e(j,[2,28]),e(j,[2,29]),e(j,[2,30]),e(j,[2,31]),e(j,[2,32]),e(j,[2,40],{46:51,48:54,49:55,31:[1,53],47:[1,52],50:x,51:w,52:k,53:C,54:T,55:E}),{26:62,27:39,28:40,77:_,78:y,79:v,80:b},e(j,[2,42]),e(j,[2,43]),{27:63,77:_,78:y,79:v},{26:64,27:39,28:40,77:_,78:y,79:v,80:b},{26:65,27:39,28:40,77:_,78:y,79:v,80:b},{26:66,27:39,28:40,77:_,78:y,79:v,80:b},{47:[1,67]},e(S,[2,19],{27:39,28:40,26:68,29:[1,69],77:_,78:y,79:v,80:b}),e(S,[2,20],{29:[1,70]}),e(M,[2,86]),e(M,[2,87]),e(M,[2,88]),e([15,24,29,31,38,39,47,50,51,52,53,54,55,60,62],[2,89]),e(A,[2,9]),{14:71,21:d},{21:[2,13]},{1:[2,15]},{5:29,6:28,7:t,8:n,9:r,10:o,12:10,18:s,23:72,24:[2,17],25:21,26:30,27:39,28:40,30:22,32:23,33:24,34:25,35:26,36:27,37:l,42:u,44:c,45:f,56:h,57:m,59:p,63:g,77:_,78:y,79:v,80:b},e(j,[2,25]),{26:73,27:39,28:40,47:[1,74],77:_,78:y,79:v,80:b},{46:75,48:54,49:55,50:x,51:w,52:k,53:C,54:T,55:E},e(j,[2,41]),{49:76,54:T,55:E},e(N,[2,51],{48:77,50:x,51:w,52:k,53:C}),e(D,[2,52]),e(D,[2,53]),e(D,[2,54]),e(D,[2,55]),e(O,[2,56]),e(O,[2,57]),e(j,[2,33],{38:[1,78],39:[1,79]}),{43:[1,80]},{47:[1,81]},{47:[1,82]},{60:[1,83],62:[1,84]},{27:85,77:_,78:y,79:v},e(S,[2,21]),e(S,[2,22]),e(S,[2,23]),{15:[1,86]},{24:[2,18]},e(B,[2,44]),{26:87,27:39,28:40,77:_,78:y,79:v,80:b},{26:88,27:39,28:40,47:[1,89],77:_,78:y,79:v,80:b},e(N,[2,50],{48:90,50:x,51:w,52:k,53:C}),e(N,[2,49]),{27:91,77:_,78:y,79:v},{40:92,44:R},{26:94,27:39,28:40,77:_,78:y,79:v,80:b},e(j,[2,58],{47:[1,95]}),e(j,[2,60],{47:[1,97],58:[1,96]}),e(j,[2,64],{47:[1,98],61:[1,99]}),e(j,[2,68],{47:[1,101],58:[1,100]}),e(j,[2,72]),e(A,[2,10]),e(B,[2,46]),e(B,[2,45]),{26:102,27:39,28:40,77:_,78:y,79:v,80:b},e(N,[2,48]),e(j,[2,34],{39:[1,103]}),{41:[1,104]},{40:105,41:[2,38],44:R},e(j,[2,37]),e(j,[2,59]),e(j,[2,61]),e(j,[2,62],{58:[1,106]}),e(j,[2,65]),e(j,[2,66],{47:[1,107]}),e(j,[2,69]),e(j,[2,70],{58:[1,108]}),e(B,[2,47]),{40:109,44:R},e(j,[2,35]),{41:[2,39]},e(j,[2,63]),e(j,[2,67]),e(j,[2,71]),{41:[1,110]},e(j,[2,36])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],12:[2,11],13:[2,3],19:[2,14],47:[2,13],48:[2,15],72:[2,18],105:[2,39]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},P={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:case 10:case 12:case 19:break;case 11:return 15;case 13:case 14:return 22;case 15:return this.begin("struct"),39;case 16:return"EOF_IN_STRUCT";case 17:return"OPEN_IN_STRUCT";case 18:return this.popState(),41;case 20:return"MEMBER";case 21:return 37;case 22:return 63;case 23:return 56;case 24:return 57;case 25:return 59;case 26:return 42;case 27:return 43;case 28:this.begin("generic");break;case 29:case 32:case 35:case 38:case 41:case 44:this.popState();break;case 30:return"GENERICTYPE";case 31:this.begin("string");break;case 33:return"STR";case 34:this.begin("bqstring");break;case 36:return"BQUOTE_STR";case 37:this.begin("href");break;case 39:return 62;case 40:this.begin("callback_name");break;case 42:this.popState(),this.begin("callback_args");break;case 43:return 60;case 45:return 61;case 46:case 47:case 48:case 49:return 58;case 50:case 51:return 51;case 52:case 53:return 53;case 54:return 52;case 55:return 50;case 56:return 54;case 57:return 55;case 58:return 31;case 59:return 38;case 60:return 75;case 61:return"DOT";case 62:return"PLUS";case 63:return 72;case 64:case 65:return"EQUALS";case 66:return 79;case 67:return"PUNCTUATION";case 68:return 78;case 69:return 77;case 70:return 74;case 71:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[44,45],inclusive:!1},callback_name:{rules:[41,42,43],inclusive:!1},href:{rules:[38,39],inclusive:!1},struct:{rules:[16,17,18,19,20],inclusive:!1},generic:{rules:[29,30],inclusive:!1},bqstring:{rules:[35,36],inclusive:!1},string:{rules:[32,33],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,31,34,37,40,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71],inclusive:!0}}};function L(){this.yy={}}return I.lexer=P,L.prototype=I,I.Parser=L,new L}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?35ed").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/er/parser/erDiagram.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,2],n=[1,5],r=[6,9,11,23,41],o=[1,17],s=[1,20],a=[1,25],i=[1,26],d=[1,27],l=[1,28],u=[1,37],c=[23,38,39],f=[4,6,9,11,23,41],h=[34,35,36,37],m=[22,29],p=[1,55],g={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,ALPHANUM:23,attribute:24,attributeType:25,attributeName:26,attributeKeyType:27,attributeComment:28,ATTRIBUTE_WORD:29,ATTRIBUTE_KEY:30,COMMENT:31,cardinality:32,relType:33,ZERO_OR_ONE:34,ZERO_OR_MORE:35,ONE_OR_MORE:36,ONLY_ONE:37,NON_IDENTIFYING:38,IDENTIFYING:39,WORD:40,open_directive:41,type_directive:42,arg_directive:43,close_directive:44,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"ALPHANUM",29:"ATTRIBUTE_WORD",30:"ATTRIBUTE_KEY",31:"COMMENT",34:"ZERO_OR_ONE",35:"ZERO_OR_MORE",36:"ONE_OR_MORE",37:"ONLY_ONE",38:"NON_IDENTIFYING",39:"IDENTIFYING",40:"WORD",41:"open_directive",42:"type_directive",43:"arg_directive",44:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[17,1],[21,1],[21,2],[24,2],[24,3],[24,3],[24,4],[25,1],[26,1],[27,1],[28,1],[18,3],[32,1],[32,1],[32,1],[32,1],[33,1],[33,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:s[i-1].push(s[i]),this.$=s[i-1];break;case 5:case 6:case 16:case 23:case 24:case 25:case 35:this.$=s[i];break;case 12:r.addEntity(s[i-4]),r.addEntity(s[i-2]),r.addRelationship(s[i-4],s[i],s[i-2],s[i-3]);break;case 13:r.addEntity(s[i-3]),r.addAttributes(s[i-3],s[i-1]);break;case 14:r.addEntity(s[i-2]);break;case 15:r.addEntity(s[i]);break;case 17:this.$=[s[i]];break;case 18:s[i].push(s[i-1]),this.$=s[i];break;case 19:this.$={attributeType:s[i-1],attributeName:s[i]};break;case 20:this.$={attributeType:s[i-2],attributeName:s[i-1],attributeKeyType:s[i]};break;case 21:this.$={attributeType:s[i-2],attributeName:s[i-1],attributeComment:s[i]};break;case 22:this.$={attributeType:s[i-3],attributeName:s[i-2],attributeKeyType:s[i-1],attributeComment:s[i]};break;case 26:case 34:this.$=s[i].replace(/"/g,"");break;case 27:this.$={cardA:s[i],relType:s[i-1],cardB:s[i-2]};break;case 28:this.$=r.Cardinality.ZERO_OR_ONE;break;case 29:this.$=r.Cardinality.ZERO_OR_MORE;break;case 30:this.$=r.Cardinality.ONE_OR_MORE;break;case 31:this.$=r.Cardinality.ONLY_ONE;break;case 32:this.$=r.Identification.NON_IDENTIFYING;break;case 33:this.$=r.Identification.IDENTIFYING;break;case 36:r.parseDirective("%%{","open_directive");break;case 37:r.parseDirective(s[i],"type_directive");break;case 38:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 39:r.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:t,7:3,12:4,41:n},{1:[3]},e(r,[2,3],{5:6}),{3:7,4:t,7:3,12:4,41:n},{13:8,42:[1,9]},{42:[2,36]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:o,41:n},{1:[2,2]},{14:18,15:[1,19],44:s},e([15,44],[2,37]),e(r,[2,8],{1:[2,1]}),e(r,[2,4]),{7:15,10:21,12:4,17:16,23:o,41:n},e(r,[2,6]),e(r,[2,7]),e(r,[2,11]),e(r,[2,15],{18:22,32:24,20:[1,23],34:a,35:i,36:d,37:l}),e([6,9,11,15,20,23,34,35,36,37,41],[2,16]),{11:[1,29]},{16:30,43:[1,31]},{11:[2,39]},e(r,[2,5]),{17:32,23:o},{21:33,22:[1,34],24:35,25:36,29:u},{33:38,38:[1,39],39:[1,40]},e(c,[2,28]),e(c,[2,29]),e(c,[2,30]),e(c,[2,31]),e(f,[2,9]),{14:41,44:s},{44:[2,38]},{15:[1,42]},{22:[1,43]},e(r,[2,14]),{21:44,22:[2,17],24:35,25:36,29:u},{26:45,29:[1,46]},{29:[2,23]},{32:47,34:a,35:i,36:d,37:l},e(h,[2,32]),e(h,[2,33]),{11:[1,48]},{19:49,23:[1,51],40:[1,50]},e(r,[2,13]),{22:[2,18]},e(m,[2,19],{27:52,28:53,30:[1,54],31:p}),e([22,29,30,31],[2,24]),{23:[2,27]},e(f,[2,10]),e(r,[2,12]),e(r,[2,34]),e(r,[2,35]),e(m,[2,20],{28:56,31:p}),e(m,[2,21]),e([22,29,31],[2,25]),e(m,[2,26]),e(m,[2,22])],defaultActions:{5:[2,36],7:[2,2],20:[2,39],31:[2,38],37:[2,23],44:[2,18],47:[2,27]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},_={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),41;case 1:return this.begin("type_directive"),42;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),44;case 4:return 43;case 5:case 6:case 8:case 13:case 17:break;case 7:return 11;case 9:return 9;case 10:return 40;case 11:return 4;case 12:return this.begin("block"),20;case 14:return 30;case 15:return 29;case 16:return 31;case 18:return this.popState(),22;case 19:case 32:return t.yytext[0];case 20:case 24:return 34;case 21:case 25:return 35;case 22:case 26:return 36;case 23:return 37;case 27:case 29:case 30:return 38;case 28:return 39;case 31:return 23;case 33:return 6}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:\s+)/i,/^(?:(?:PK)|(?:FK))/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\|o\b)/i,/^(?:\}o\b)/i,/^(?:\}\|)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},block:{rules:[13,14,15,16,17,18,19],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,20,21,22,23,24,25,26,27,28,29,30,31,32,33],inclusive:!0}}};function y(){this.yy={}}return g.lexer=_,y.prototype=g,g.Parser=y,new y}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?3c87").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/flowchart/parser/flow.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,9],n=[1,7],r=[1,6],o=[1,8],s=[1,20,21,22,23,38,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],a=[2,10],i=[1,20],d=[1,21],l=[1,22],u=[1,23],c=[1,30],f=[1,59],h=[1,45],m=[1,49],p=[1,33],g=[1,34],_=[1,35],y=[1,36],v=[1,37],b=[1,53],j=[1,60],x=[1,48],w=[1,50],k=[1,52],C=[1,56],T=[1,57],E=[1,38],S=[1,39],M=[1,40],A=[1,41],N=[1,58],D=[1,47],O=[1,51],B=[1,54],R=[1,55],I=[1,46],P=[1,63],L=[1,68],F=[1,20,21,22,23,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],z=[1,72],q=[1,71],Y=[1,73],U=[20,21,23,74,75],H=[1,94],G=[1,99],V=[1,102],W=[1,103],$=[1,96],X=[1,101],Z=[1,104],K=[1,97],Q=[1,109],J=[1,108],ee=[1,98],te=[1,100],ne=[1,105],re=[1,106],oe=[1,107],se=[1,110],ae=[20,21,22,23,74,75],ie=[20,21,22,23,48,74,75],de=[20,21,22,23,40,47,48,50,52,54,56,58,59,60,62,64,66,67,69,74,75,84,88,98,99,102,104,105,115,116,117,118,119,120],le=[20,21,23],ue=[20,21,23,47,59,60,74,75,84,88,98,99,102,104,105,115,116,117,118,119,120],ce=[1,12,20,21,22,23,24,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],fe=[47,59,60,84,88,98,99,102,104,105,115,116,117,118,119,120],he=[1,143],me=[1,151],pe=[1,152],ge=[1,153],_e=[1,154],ye=[1,138],ve=[1,139],be=[1,135],je=[1,146],xe=[1,147],we=[1,148],ke=[1,149],Ce=[1,150],Te=[1,155],Ee=[1,156],Se=[1,141],Me=[1,144],Ae=[1,140],Ne=[1,137],De=[20,21,22,23,38,42,47,59,60,79,80,81,82,83,84,88,98,99,102,104,105,111,112,113,114,115,116,117,118,119,120],Oe=[1,159],Be=[20,21,22,23,26,47,59,60,84,98,99,102,104,105,115,116,117,118,119,120],Re=[20,21,22,23,24,26,38,40,41,42,47,51,53,55,57,59,60,61,63,65,66,68,70,74,75,79,80,81,82,83,84,85,88,98,99,102,104,105,106,107,115,116,117,118,119,120],Ie=[12,21,22,24],Pe=[22,99],Le=[1,242],Fe=[1,237],ze=[1,238],qe=[1,246],Ye=[1,243],Ue=[1,240],He=[1,239],Ge=[1,241],Ve=[1,244],We=[1,245],$e=[1,247],Xe=[1,265],Ze=[20,21,23,99],Ke=[20,21,22,23,59,60,79,95,98,99,102,103,104,105,106],Qe={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,link:44,node:45,vertex:46,AMP:47,STYLE_SEPARATOR:48,idString:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,ALPHA:59,COLON:60,PIPE:61,CYLINDERSTART:62,CYLINDEREND:63,DIAMOND_START:64,DIAMOND_STOP:65,TAGEND:66,TRAPSTART:67,TRAPEND:68,INVTRAPSTART:69,INVTRAPEND:70,linkStatement:71,arrowText:72,TESTSTR:73,START_LINK:74,LINK:75,textToken:76,STR:77,keywords:78,STYLE:79,LINKSTYLE:80,CLASSDEF:81,CLASS:82,CLICK:83,DOWN:84,UP:85,textNoTags:86,textNoTagsToken:87,DEFAULT:88,stylesOpt:89,alphaNum:90,CALLBACKNAME:91,CALLBACKARGS:92,HREF:93,LINK_TARGET:94,HEX:95,numList:96,INTERPOLATE:97,NUM:98,COMMA:99,style:100,styleComponent:101,MINUS:102,UNIT:103,BRKT:104,DOT:105,PCT:106,TAGSTART:107,alphaNumToken:108,idStringToken:109,alphaNumStatement:110,direction_tb:111,direction_bt:112,direction_rl:113,direction_lr:114,PUNCTUATION:115,UNICODE_TEXT:116,PLUS:117,EQUALS:118,MULT:119,UNDERSCORE:120,graphCodeTokens:121,ARROW_CROSS:122,ARROW_POINT:123,ARROW_CIRCLE:124,ARROW_OPEN:125,QUOTE:126,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",47:"AMP",48:"STYLE_SEPARATOR",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"ALPHA",60:"COLON",61:"PIPE",62:"CYLINDERSTART",63:"CYLINDEREND",64:"DIAMOND_START",65:"DIAMOND_STOP",66:"TAGEND",67:"TRAPSTART",68:"TRAPEND",69:"INVTRAPSTART",70:"INVTRAPEND",73:"TESTSTR",74:"START_LINK",75:"LINK",77:"STR",79:"STYLE",80:"LINKSTYLE",81:"CLASSDEF",82:"CLASS",83:"CLICK",84:"DOWN",85:"UP",88:"DEFAULT",91:"CALLBACKNAME",92:"CALLBACKARGS",93:"HREF",94:"LINK_TARGET",95:"HEX",97:"INTERPOLATE",98:"NUM",99:"COMMA",102:"MINUS",103:"UNIT",104:"BRKT",105:"DOT",106:"PCT",107:"TAGSTART",111:"direction_tb",112:"direction_bt",113:"direction_rl",114:"direction_lr",115:"PUNCTUATION",116:"UNICODE_TEXT",117:"PLUS",118:"EQUALS",119:"MULT",120:"UNDERSCORE",122:"ARROW_CROSS",123:"ARROW_POINT",124:"ARROW_CIRCLE",125:"ARROW_OPEN",126:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[45,1],[45,5],[45,3],[46,4],[46,6],[46,4],[46,4],[46,4],[46,8],[46,4],[46,4],[46,4],[46,6],[46,4],[46,4],[46,4],[46,4],[46,4],[46,1],[44,2],[44,3],[44,3],[44,1],[44,3],[71,1],[72,3],[39,1],[39,2],[39,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[78,1],[86,1],[86,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[96,1],[96,3],[89,1],[89,3],[100,1],[100,2],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[101,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[87,1],[87,1],[87,1],[87,1],[49,1],[49,2],[90,1],[90,2],[110,1],[110,1],[110,1],[110,1],[43,1],[43,1],[43,1],[43,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 5:r.parseDirective("%%{","open_directive");break;case 6:r.parseDirective(s[i],"type_directive");break;case 7:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 8:r.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:s[i]!==[]&&s[i-1].push(s[i]),this.$=s[i-1];break;case 12:case 78:case 80:case 92:case 148:case 150:case 151:case 74:case 146:this.$=s[i];break;case 19:r.setDirection("TB"),this.$="TB";break;case 20:r.setDirection(s[i-1]),this.$=s[i-1];break;case 35:this.$=s[i-1].nodes;break;case 41:this.$=r.addSubGraph(s[i-6],s[i-1],s[i-4]);break;case 42:this.$=r.addSubGraph(s[i-3],s[i-1],s[i-3]);break;case 43:this.$=r.addSubGraph(void 0,s[i-1],void 0);break;case 48:r.addLink(s[i-2].stmt,s[i],s[i-1]),this.$={stmt:s[i],nodes:s[i].concat(s[i-2].nodes)};break;case 49:r.addLink(s[i-3].stmt,s[i-1],s[i-2]),this.$={stmt:s[i-1],nodes:s[i-1].concat(s[i-3].nodes)};break;case 50:this.$={stmt:s[i-1],nodes:s[i-1]};break;case 51:this.$={stmt:s[i],nodes:s[i]};break;case 52:case 119:case 121:this.$=[s[i]];break;case 53:this.$=s[i-4].concat(s[i]);break;case 54:this.$=[s[i-2]],r.setClass(s[i-2],s[i]);break;case 55:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"square");break;case 56:this.$=s[i-5],r.addVertex(s[i-5],s[i-2],"circle");break;case 57:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"ellipse");break;case 58:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"stadium");break;case 59:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"subroutine");break;case 60:this.$=s[i-7],r.addVertex(s[i-7],s[i-1],"rect",void 0,void 0,void 0,Object.fromEntries([[s[i-5],s[i-3]]]));break;case 61:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"cylinder");break;case 62:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"round");break;case 63:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"diamond");break;case 64:this.$=s[i-5],r.addVertex(s[i-5],s[i-2],"hexagon");break;case 65:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"odd");break;case 66:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"trapezoid");break;case 67:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"inv_trapezoid");break;case 68:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"lean_right");break;case 69:this.$=s[i-3],r.addVertex(s[i-3],s[i-1],"lean_left");break;case 70:this.$=s[i],r.addVertex(s[i]);break;case 71:s[i-1].text=s[i],this.$=s[i-1];break;case 72:case 73:s[i-2].text=s[i-1],this.$=s[i-2];break;case 75:var d=r.destructLink(s[i],s[i-2]);this.$={type:d.type,stroke:d.stroke,length:d.length,text:s[i-1]};break;case 76:d=r.destructLink(s[i]),this.$={type:d.type,stroke:d.stroke,length:d.length};break;case 77:this.$=s[i-1];break;case 79:case 93:case 149:case 147:this.$=s[i-1]+""+s[i];break;case 94:case 95:this.$=s[i-4],r.addClass(s[i-2],s[i]);break;case 96:this.$=s[i-4],r.setClass(s[i-2],s[i]);break;case 97:case 105:this.$=s[i-1],r.setClickEvent(s[i-1],s[i]);break;case 98:case 106:this.$=s[i-3],r.setClickEvent(s[i-3],s[i-2]),r.setTooltip(s[i-3],s[i]);break;case 99:this.$=s[i-2],r.setClickEvent(s[i-2],s[i-1],s[i]);break;case 100:this.$=s[i-4],r.setClickEvent(s[i-4],s[i-3],s[i-2]),r.setTooltip(s[i-4],s[i]);break;case 101:case 107:this.$=s[i-1],r.setLink(s[i-1],s[i]);break;case 102:case 108:this.$=s[i-3],r.setLink(s[i-3],s[i-2]),r.setTooltip(s[i-3],s[i]);break;case 103:case 109:this.$=s[i-3],r.setLink(s[i-3],s[i-2],s[i]);break;case 104:case 110:this.$=s[i-5],r.setLink(s[i-5],s[i-4],s[i]),r.setTooltip(s[i-5],s[i-2]);break;case 111:this.$=s[i-4],r.addVertex(s[i-2],void 0,void 0,s[i]);break;case 112:case 114:this.$=s[i-4],r.updateLink(s[i-2],s[i]);break;case 113:this.$=s[i-4],r.updateLink([s[i-2]],s[i]);break;case 115:this.$=s[i-8],r.updateLinkInterpolate([s[i-6]],s[i-2]),r.updateLink([s[i-6]],s[i]);break;case 116:this.$=s[i-8],r.updateLinkInterpolate(s[i-6],s[i-2]),r.updateLink(s[i-6],s[i]);break;case 117:this.$=s[i-6],r.updateLinkInterpolate([s[i-4]],s[i]);break;case 118:this.$=s[i-6],r.updateLinkInterpolate(s[i-4],s[i]);break;case 120:case 122:s[i-2].push(s[i]),this.$=s[i-2];break;case 124:this.$=s[i-1]+s[i];break;case 152:this.$="v";break;case 153:this.$="-";break;case 154:this.$={stmt:"dir",value:"TB"};break;case 155:this.$={stmt:"dir",value:"BT"};break;case 156:this.$={stmt:"dir",value:"RL"};break;case 157:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:t,16:4,21:n,22:r,24:o},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:t,16:4,21:n,22:r,24:o},e(s,a,{17:11}),{7:12,13:[1,13]},{16:14,21:n,22:r,24:o},{16:15,21:n,22:r,24:o},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:i,21:d,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:c,43:31,45:32,46:42,47:f,49:43,59:h,60:m,79:p,80:g,81:_,82:y,83:v,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,111:E,112:S,113:M,114:A,115:N,116:D,117:O,118:B,119:R,120:I},{8:61,10:[1,62],15:P},e([10,15],[2,6]),e(s,[2,17]),e(s,[2,18]),e(s,[2,19]),{20:[1,65],21:[1,66],22:L,27:64,30:67},e(F,[2,11]),e(F,[2,12]),e(F,[2,13]),e(F,[2,14]),e(F,[2,15]),e(F,[2,16]),{9:69,20:z,21:q,23:Y,44:70,71:74,74:[1,75],75:[1,76]},{9:77,20:z,21:q,23:Y},{9:78,20:z,21:q,23:Y},{9:79,20:z,21:q,23:Y},{9:80,20:z,21:q,23:Y},{9:81,20:z,21:q,23:Y},{9:83,20:z,21:q,22:[1,82],23:Y},e(F,[2,44]),e(U,[2,51],{30:84,22:L}),{22:[1,85]},{22:[1,86]},{22:[1,87]},{22:[1,88]},{26:H,47:G,59:V,60:W,77:[1,92],84:$,90:91,91:[1,89],93:[1,90],98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(F,[2,154]),e(F,[2,155]),e(F,[2,156]),e(F,[2,157]),e(ae,[2,52],{48:[1,111]}),e(ie,[2,70],{109:123,40:[1,112],47:f,50:[1,113],52:[1,114],54:[1,115],56:[1,116],58:[1,117],59:h,60:m,62:[1,118],64:[1,119],66:[1,120],67:[1,121],69:[1,122],84:b,88:j,98:x,99:w,102:k,104:C,105:T,115:N,116:D,117:O,118:B,119:R,120:I}),e(de,[2,146]),e(de,[2,171]),e(de,[2,172]),e(de,[2,173]),e(de,[2,174]),e(de,[2,175]),e(de,[2,176]),e(de,[2,177]),e(de,[2,178]),e(de,[2,179]),e(de,[2,180]),e(de,[2,181]),e(de,[2,182]),e(de,[2,183]),e(de,[2,184]),e(de,[2,185]),e(de,[2,186]),{9:124,20:z,21:q,23:Y},{11:125,14:[1,126]},e(le,[2,8]),e(s,[2,20]),e(s,[2,26]),e(s,[2,27]),{21:[1,127]},e(ue,[2,34],{30:128,22:L}),e(F,[2,35]),{45:129,46:42,47:f,49:43,59:h,60:m,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,115:N,116:D,117:O,118:B,119:R,120:I},e(ce,[2,45]),e(ce,[2,46]),e(ce,[2,47]),e(fe,[2,74],{72:130,61:[1,132],73:[1,131]}),{22:he,24:me,26:pe,38:ge,39:133,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e([47,59,60,61,73,84,88,98,99,102,104,105,115,116,117,118,119,120],[2,76]),e(F,[2,36]),e(F,[2,37]),e(F,[2,38]),e(F,[2,39]),e(F,[2,40]),{22:he,24:me,26:pe,38:ge,39:157,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(De,a,{17:158}),e(U,[2,50],{47:Oe}),{26:H,47:G,59:V,60:W,84:$,90:160,95:[1,161],98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},{88:[1,162],96:163,98:[1,164]},{26:H,47:G,59:V,60:W,84:$,88:[1,165],90:166,98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},{26:H,47:G,59:V,60:W,84:$,90:167,98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(le,[2,97],{22:[1,168],92:[1,169]}),e(le,[2,101],{22:[1,170]}),e(le,[2,105],{108:95,110:172,22:[1,171],26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,115:ee,116:te,117:ne,118:re,119:oe,120:se}),e(le,[2,107],{22:[1,173]}),e(Be,[2,148]),e(Be,[2,150]),e(Be,[2,151]),e(Be,[2,152]),e(Be,[2,153]),e(Re,[2,158]),e(Re,[2,159]),e(Re,[2,160]),e(Re,[2,161]),e(Re,[2,162]),e(Re,[2,163]),e(Re,[2,164]),e(Re,[2,165]),e(Re,[2,166]),e(Re,[2,167]),e(Re,[2,168]),e(Re,[2,169]),e(Re,[2,170]),{47:f,49:174,59:h,60:m,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,115:N,116:D,117:O,118:B,119:R,120:I},{22:he,24:me,26:pe,38:ge,39:175,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:177,42:_e,47:G,50:[1,176],59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:178,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:179,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:180,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{59:[1,181]},{22:he,24:me,26:pe,38:ge,39:182,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:183,42:_e,47:G,59:V,60:W,64:[1,184],66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:185,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:186,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:187,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(de,[2,147]),e(Ie,[2,3]),{8:188,15:P},{15:[2,7]},e(s,[2,28]),e(ue,[2,33]),e(U,[2,48],{30:189,22:L}),e(fe,[2,71],{22:[1,190]}),{22:[1,191]},{22:he,24:me,26:pe,38:ge,39:192,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,66:ye,74:ve,75:[1,193],76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(Re,[2,78]),e(Re,[2,80]),e(Re,[2,136]),e(Re,[2,137]),e(Re,[2,138]),e(Re,[2,139]),e(Re,[2,140]),e(Re,[2,141]),e(Re,[2,142]),e(Re,[2,143]),e(Re,[2,144]),e(Re,[2,145]),e(Re,[2,81]),e(Re,[2,82]),e(Re,[2,83]),e(Re,[2,84]),e(Re,[2,85]),e(Re,[2,86]),e(Re,[2,87]),e(Re,[2,88]),e(Re,[2,89]),e(Re,[2,90]),e(Re,[2,91]),{9:196,20:z,21:q,22:he,23:Y,24:me,26:pe,38:ge,40:[1,195],42:_e,47:G,59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{18:18,19:19,20:i,21:d,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:c,42:[1,197],43:31,45:32,46:42,47:f,49:43,59:h,60:m,79:p,80:g,81:_,82:y,83:v,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,111:E,112:S,113:M,114:A,115:N,116:D,117:O,118:B,119:R,120:I},{22:L,30:198},{22:[1,199],26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,108:95,110:172,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:[1,200]},{22:[1,201]},{22:[1,202],99:[1,203]},e(Pe,[2,119]),{22:[1,204]},{22:[1,205],26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,108:95,110:172,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:[1,206],26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,108:95,110:172,115:ee,116:te,117:ne,118:re,119:oe,120:se},{77:[1,207]},e(le,[2,99],{22:[1,208]}),{77:[1,209],94:[1,210]},{77:[1,211]},e(Be,[2,149]),{77:[1,212],94:[1,213]},e(ae,[2,54],{109:123,47:f,59:h,60:m,84:b,88:j,98:x,99:w,102:k,104:C,105:T,115:N,116:D,117:O,118:B,119:R,120:I}),{22:he,24:me,26:pe,38:ge,41:[1,214],42:_e,47:G,59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:215,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,51:[1,216],59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,53:[1,217],59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,55:[1,218],59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,57:[1,219],59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{60:[1,220]},{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,63:[1,221],66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,65:[1,222],66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,39:223,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,41:[1,224],42:_e,47:G,59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,66:ye,68:[1,225],70:[1,226],74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,66:ye,68:[1,228],70:[1,227],74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{9:229,20:z,21:q,23:Y},e(U,[2,49],{47:Oe}),e(fe,[2,73]),e(fe,[2,72]),{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,61:[1,230],66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(fe,[2,75]),e(Re,[2,79]),{22:he,24:me,26:pe,38:ge,39:231,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(De,a,{17:232}),e(F,[2,43]),{46:233,47:f,49:43,59:h,60:m,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,115:N,116:D,117:O,118:B,119:R,120:I},{22:Le,59:Fe,60:ze,79:qe,89:234,95:Ye,98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{22:Le,59:Fe,60:ze,79:qe,89:248,95:Ye,98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{22:Le,59:Fe,60:ze,79:qe,89:249,95:Ye,97:[1,250],98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{22:Le,59:Fe,60:ze,79:qe,89:251,95:Ye,97:[1,252],98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{98:[1,253]},{22:Le,59:Fe,60:ze,79:qe,89:254,95:Ye,98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{22:Le,59:Fe,60:ze,79:qe,89:255,95:Ye,98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{26:H,47:G,59:V,60:W,84:$,90:256,98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(le,[2,98]),{77:[1,257]},e(le,[2,102],{22:[1,258]}),e(le,[2,103]),e(le,[2,106]),e(le,[2,108],{22:[1,259]}),e(le,[2,109]),e(ie,[2,55]),{22:he,24:me,26:pe,38:ge,42:_e,47:G,51:[1,260],59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(ie,[2,62]),e(ie,[2,57]),e(ie,[2,58]),e(ie,[2,59]),{59:[1,261]},e(ie,[2,61]),e(ie,[2,63]),{22:he,24:me,26:pe,38:ge,42:_e,47:G,59:V,60:W,65:[1,262],66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(ie,[2,65]),e(ie,[2,66]),e(ie,[2,68]),e(ie,[2,67]),e(ie,[2,69]),e(Ie,[2,4]),e([22,47,59,60,84,88,98,99,102,104,105,115,116,117,118,119,120],[2,77]),{22:he,24:me,26:pe,38:ge,41:[1,263],42:_e,47:G,59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{18:18,19:19,20:i,21:d,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:c,42:[1,264],43:31,45:32,46:42,47:f,49:43,59:h,60:m,79:p,80:g,81:_,82:y,83:v,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,111:E,112:S,113:M,114:A,115:N,116:D,117:O,118:B,119:R,120:I},e(ae,[2,53]),e(le,[2,111],{99:Xe}),e(Ze,[2,121],{101:266,22:Le,59:Fe,60:ze,79:qe,95:Ye,98:Ue,102:He,103:Ge,104:Ve,105:We,106:$e}),e(Ke,[2,123]),e(Ke,[2,125]),e(Ke,[2,126]),e(Ke,[2,127]),e(Ke,[2,128]),e(Ke,[2,129]),e(Ke,[2,130]),e(Ke,[2,131]),e(Ke,[2,132]),e(Ke,[2,133]),e(Ke,[2,134]),e(Ke,[2,135]),e(le,[2,112],{99:Xe}),e(le,[2,113],{99:Xe}),{22:[1,267]},e(le,[2,114],{99:Xe}),{22:[1,268]},e(Pe,[2,120]),e(le,[2,94],{99:Xe}),e(le,[2,95],{99:Xe}),e(le,[2,96],{108:95,110:172,26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,115:ee,116:te,117:ne,118:re,119:oe,120:se}),e(le,[2,100]),{94:[1,269]},{94:[1,270]},{51:[1,271]},{61:[1,272]},{65:[1,273]},{9:274,20:z,21:q,23:Y},e(F,[2,42]),{22:Le,59:Fe,60:ze,79:qe,95:Ye,98:Ue,100:275,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},e(Ke,[2,124]),{26:H,47:G,59:V,60:W,84:$,90:276,98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},{26:H,47:G,59:V,60:W,84:$,90:277,98:X,99:Z,102:K,104:Q,105:J,108:95,110:93,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(le,[2,104]),e(le,[2,110]),e(ie,[2,56]),{22:he,24:me,26:pe,38:ge,39:278,42:_e,47:G,59:V,60:W,66:ye,74:ve,76:134,77:be,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},e(ie,[2,64]),e(De,a,{17:279}),e(Ze,[2,122],{101:266,22:Le,59:Fe,60:ze,79:qe,95:Ye,98:Ue,102:He,103:Ge,104:Ve,105:We,106:$e}),e(le,[2,117],{108:95,110:172,22:[1,280],26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,115:ee,116:te,117:ne,118:re,119:oe,120:se}),e(le,[2,118],{108:95,110:172,22:[1,281],26:H,47:G,59:V,60:W,84:$,98:X,99:Z,102:K,104:Q,105:J,115:ee,116:te,117:ne,118:re,119:oe,120:se}),{22:he,24:me,26:pe,38:ge,41:[1,282],42:_e,47:G,59:V,60:W,66:ye,74:ve,76:194,78:145,79:je,80:xe,81:we,82:ke,83:Ce,84:Te,85:Ee,87:136,88:Se,98:X,99:Z,102:Me,104:Q,105:J,106:Ae,107:Ne,108:142,115:ee,116:te,117:ne,118:re,119:oe,120:se},{18:18,19:19,20:i,21:d,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:c,42:[1,283],43:31,45:32,46:42,47:f,49:43,59:h,60:m,79:p,80:g,81:_,82:y,83:v,84:b,88:j,98:x,99:w,102:k,104:C,105:T,109:44,111:E,112:S,113:M,114:A,115:N,116:D,117:O,118:B,119:R,120:I},{22:Le,59:Fe,60:ze,79:qe,89:284,95:Ye,98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},{22:Le,59:Fe,60:ze,79:qe,89:285,95:Ye,98:Ue,100:235,101:236,102:He,103:Ge,104:Ve,105:We,106:$e},e(ie,[2,60]),e(F,[2,41]),e(le,[2,115],{99:Xe}),e(le,[2,116],{99:Xe})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],126:[2,7]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},Je={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:this.begin("string");break;case 8:case 17:case 20:case 23:case 26:this.popState();break;case 9:return"STR";case 10:return 79;case 11:return 88;case 12:return 80;case 13:return 97;case 14:return 81;case 15:return 82;case 16:this.begin("href");break;case 18:return 93;case 19:this.begin("callbackname");break;case 21:this.popState(),this.begin("callbackargs");break;case 22:return 91;case 24:return 92;case 25:this.begin("click");break;case 27:return 83;case 28:case 29:return e.lex.firstGraph()&&this.begin("dir"),24;case 30:return 38;case 31:return 42;case 32:case 33:case 34:case 35:return 94;case 36:return this.popState(),25;case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:return this.popState(),26;case 47:return 111;case 48:return 112;case 49:return 113;case 50:return 114;case 51:return 98;case 52:return 104;case 53:return 48;case 54:return 60;case 55:return 47;case 56:return 20;case 57:return 99;case 58:return 119;case 59:case 60:case 61:return 75;case 62:case 63:case 64:return 74;case 65:return 52;case 66:return 53;case 67:return 54;case 68:return 55;case 69:return 56;case 70:return 57;case 71:return 58;case 72:return 62;case 73:return 63;case 74:return 102;case 75:return 105;case 76:return 120;case 77:return 117;case 78:return 106;case 79:case 80:return 118;case 81:return 107;case 82:return 66;case 83:return 85;case 84:return"SEP";case 85:return 84;case 86:return 59;case 87:return 68;case 88:return 67;case 89:return 70;case 90:return 69;case 91:return 115;case 92:return 116;case 93:return 61;case 94:return 50;case 95:return 51;case 96:return 40;case 97:return 41;case 98:return 64;case 99:return 65;case 100:return 126;case 101:return 21;case 102:return 22;case 103:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[23,24],inclusive:!1},callbackname:{rules:[20,21,22],inclusive:!1},href:{rules:[17,18],inclusive:!1},click:{rules:[26,27],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[36,37,38,39,40,41,42,43,44,45,46],inclusive:!1},string:{rules:[8,9],inclusive:!1},INITIAL:{rules:[0,5,6,7,10,11,12,13,14,15,16,19,25,28,29,30,31,32,33,34,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],inclusive:!0}}};function et(){this.yy={}}return Qe.lexer=Je,et.prototype=Qe,Qe.Parser=et,new et}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?dbae").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/gantt/parser/gantt.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,3],n=[1,5],r=[7,9,11,12,13,14,15,16,17,18,19,20,22,29,34],o=[1,15],s=[1,16],a=[1,17],i=[1,18],d=[1,19],l=[1,20],u=[1,21],c=[1,22],f=[1,23],h=[1,25],m=[1,27],p=[1,30],g=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,29,34],_={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,excludes:16,includes:17,todayMarker:18,title:19,section:20,clickStatement:21,taskTxt:22,taskData:23,openDirective:24,typeDirective:25,closeDirective:26,":":27,argDirective:28,click:29,callbackname:30,callbackargs:31,href:32,clickStatementDebug:33,open_directive:34,type_directive:35,arg_directive:36,close_directive:37,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"excludes",17:"includes",18:"todayMarker",19:"title",20:"section",22:"taskTxt",23:"taskData",27:":",29:"click",30:"callbackname",31:"callbackargs",32:"href",34:"open_directive",35:"type_directive",36:"arg_directive",37:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[21,2],[21,3],[21,3],[21,4],[21,3],[21,4],[21,2],[33,2],[33,3],[33,3],[33,4],[33,3],[33,4],[33,2],[24,1],[25,1],[28,1],[26,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 2:return s[i-1];case 3:case 7:case 8:this.$=[];break;case 4:s[i-1].push(s[i]),this.$=s[i-1];break;case 5:case 6:this.$=s[i];break;case 9:r.setDateFormat(s[i].substr(11)),this.$=s[i].substr(11);break;case 10:r.enableInclusiveEndDates(),this.$=s[i].substr(18);break;case 11:r.TopAxis(),this.$=s[i].substr(8);break;case 12:r.setAxisFormat(s[i].substr(11)),this.$=s[i].substr(11);break;case 13:r.setExcludes(s[i].substr(9)),this.$=s[i].substr(9);break;case 14:r.setIncludes(s[i].substr(9)),this.$=s[i].substr(9);break;case 15:r.setTodayMarker(s[i].substr(12)),this.$=s[i].substr(12);break;case 16:r.setTitle(s[i].substr(6)),this.$=s[i].substr(6);break;case 17:r.addSection(s[i].substr(8)),this.$=s[i].substr(8);break;case 19:r.addTask(s[i-1],s[i]),this.$="task";break;case 23:this.$=s[i-1],r.setClickEvent(s[i-1],s[i],null);break;case 24:this.$=s[i-2],r.setClickEvent(s[i-2],s[i-1],s[i]);break;case 25:this.$=s[i-2],r.setClickEvent(s[i-2],s[i-1],null),r.setLink(s[i-2],s[i]);break;case 26:this.$=s[i-3],r.setClickEvent(s[i-3],s[i-2],s[i-1]),r.setLink(s[i-3],s[i]);break;case 27:this.$=s[i-2],r.setClickEvent(s[i-2],s[i],null),r.setLink(s[i-2],s[i-1]);break;case 28:this.$=s[i-3],r.setClickEvent(s[i-3],s[i-1],s[i]),r.setLink(s[i-3],s[i-2]);break;case 29:this.$=s[i-1],r.setLink(s[i-1],s[i]);break;case 30:case 36:this.$=s[i-1]+" "+s[i];break;case 31:case 32:case 34:this.$=s[i-2]+" "+s[i-1]+" "+s[i];break;case 33:case 35:this.$=s[i-3]+" "+s[i-2]+" "+s[i-1]+" "+s[i];break;case 37:r.parseDirective("%%{","open_directive");break;case 38:r.parseDirective(s[i],"type_directive");break;case 39:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 40:r.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:t,24:4,34:n},{1:[3]},{3:6,4:2,5:t,24:4,34:n},e(r,[2,3],{6:7}),{25:8,35:[1,9]},{35:[2,37]},{1:[2,1]},{4:26,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:o,13:s,14:a,15:i,16:d,17:l,18:u,19:c,20:f,21:24,22:h,24:4,29:m,34:n},{26:28,27:[1,29],37:p},e([27,37],[2,38]),e(r,[2,8],{1:[2,2]}),e(r,[2,4]),{4:26,10:31,12:o,13:s,14:a,15:i,16:d,17:l,18:u,19:c,20:f,21:24,22:h,24:4,29:m,34:n},e(r,[2,6]),e(r,[2,7]),e(r,[2,9]),e(r,[2,10]),e(r,[2,11]),e(r,[2,12]),e(r,[2,13]),e(r,[2,14]),e(r,[2,15]),e(r,[2,16]),e(r,[2,17]),e(r,[2,18]),{23:[1,32]},e(r,[2,20]),{30:[1,33],32:[1,34]},{11:[1,35]},{28:36,36:[1,37]},{11:[2,40]},e(r,[2,5]),e(r,[2,19]),e(r,[2,23],{31:[1,38],32:[1,39]}),e(r,[2,29],{30:[1,40]}),e(g,[2,21]),{26:41,37:p},{37:[2,39]},e(r,[2,24],{32:[1,42]}),e(r,[2,25]),e(r,[2,27],{31:[1,43]}),{11:[1,44]},e(r,[2,26]),e(r,[2,28]),e(g,[2,22])],defaultActions:{5:[2,37],6:[2,1],30:[2,40],37:[2,39]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),34;case 1:return this.begin("type_directive"),35;case 2:return this.popState(),this.begin("arg_directive"),27;case 3:return this.popState(),this.popState(),37;case 4:return 36;case 5:case 6:case 7:case 9:case 10:case 11:break;case 8:return 11;case 12:this.begin("href");break;case 13:case 16:case 19:case 22:this.popState();break;case 14:return 32;case 15:this.begin("callbackname");break;case 17:this.popState(),this.begin("callbackargs");break;case 18:return 30;case 20:return 31;case 21:this.begin("click");break;case 23:return 29;case 24:return 5;case 25:return 12;case 26:return 13;case 27:return 14;case 28:return 15;case 29:return 17;case 30:return 16;case 31:return 18;case 32:return"date";case 33:return 19;case 34:return 20;case 35:return 22;case 36:return 23;case 37:return 27;case 38:return 7;case 39:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[19,20],inclusive:!1},callbackname:{rules:[16,17,18],inclusive:!1},href:{rules:[13,14],inclusive:!1},click:{rules:[22,23],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,15,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};function v(){this.yy={}}return _.lexer=y,v.prototype=_,_.Parser=v,new v}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?8ed1").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/git/parser/gitGraph.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[2,3],n=[1,7],r=[7,12,15,17,19,20,21],o=[7,11,12,15,17,19,20,21],s=[2,20],a=[1,32],i={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 1:return s[i-1];case 2:return r.setDirection(s[i-3]),s[i-1];case 4:r.setOptions(s[i-1]),this.$=s[i];break;case 5:s[i-1]+=s[i],this.$=s[i-1];break;case 7:this.$=[];break;case 8:s[i-1].push(s[i]),this.$=s[i-1];break;case 9:this.$=s[i-1];break;case 11:r.commit(s[i]);break;case 12:r.branch(s[i]);break;case 13:r.checkout(s[i]);break;case 14:r.merge(s[i]);break;case 15:r.reset(s[i]);break;case 16:this.$="";break;case 17:this.$=s[i];break;case 18:this.$=s[i-1]+":"+s[i];break;case 19:this.$=s[i-1]+":"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:t,9:6,12:n},{5:[1,8]},{7:[1,9]},e(r,[2,7],{10:10,11:[1,11]}),e(o,[2,6]),{6:12,7:t,9:6,12:n},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},e(o,[2,5]),{7:[1,21]},e(r,[2,8]),{12:[1,22]},e(r,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},e(r,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:s,25:31,26:a},{12:s,25:33,26:a},{12:[2,18]},{12:s,25:34,26:a},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},d={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return 12;case 1:case 2:case 3:break;case 4:return 4;case 5:return 15;case 6:return 17;case 7:return 20;case 8:return 21;case 9:return 19;case 10:case 11:return 8;case 12:return 5;case 13:return 26;case 14:this.begin("options");break;case 15:case 18:this.popState();break;case 16:return 11;case 17:this.begin("string");break;case 19:return 23;case 20:return 18;case 21:return 7}},rules:[/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:branch\b)/i,/^(?:merge\b)/i,/^(?:reset\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:end\r?\n)/i,/^(?:[^\n]+\r?\n)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[a-zA-Z][-_\.a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],conditions:{options:{rules:[15,16],inclusive:!1},string:{rules:[18,19],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],inclusive:!0}}};function l(){this.yy={}}return i.lexer=d,l.prototype=i,i.Parser=l,new l}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?2b40").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/info/parser/info.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[6,9,10],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(e,t,n,r,o,s,a){switch(s.length,o){case 1:return r;case 4:break;case 6:r.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},e(t,[2,3]),e(t,[2,4]),e(t,[2,5]),e(t,[2,6])],defaultActions:{4:[2,1]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function o(){this.yy={}}return n.lexer=r,o.prototype=n,n.Parser=o,new o}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?c5f1").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/pie/parser/pie.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,4],n=[1,5],r=[1,6],o=[1,7],s=[1,9],a=[1,11,13,20,21,22,23],i=[2,5],d=[1,6,11,13,20,21,22,23],l=[20,21,22],u=[2,8],c=[1,18],f=[1,19],h=[1,24],m=[6,20,21,22,23],p={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,openDirective:15,typeDirective:16,closeDirective:17,":":18,argDirective:19,NEWLINE:20,";":21,EOF:22,open_directive:23,type_directive:24,arg_directive:25,close_directive:26,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",18:":",20:"NEWLINE",21:";",22:"EOF",23:"open_directive",24:"type_directive",25:"arg_directive",26:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[15,1],[16,1],[19,1],[17,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 4:r.setShowData(!0);break;case 7:this.$=s[i-1];break;case 9:r.addSection(s[i-1],r.cleanupValue(s[i]));break;case 10:this.$=s[i].trim(),r.setTitle(this.$);break;case 17:r.parseDirective("%%{","open_directive");break;case 18:r.parseDirective(s[i],"type_directive");break;case 19:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 20:r.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:t,15:8,20:n,21:r,22:o,23:s},{1:[3]},{3:10,4:2,5:3,6:t,15:8,20:n,21:r,22:o,23:s},{3:11,4:2,5:3,6:t,15:8,20:n,21:r,22:o,23:s},e(a,i,{7:12,8:[1,13]}),e(d,[2,14]),e(d,[2,15]),e(d,[2,16]),{16:14,24:[1,15]},{24:[2,17]},{1:[2,1]},{1:[2,2]},e(l,u,{15:8,9:16,10:17,5:20,1:[2,3],11:c,13:f,23:s}),e(a,i,{7:21}),{17:22,18:[1,23],26:h},e([18,26],[2,18]),e(a,[2,6]),{4:25,20:n,21:r,22:o},{12:[1,26]},{14:[1,27]},e(l,[2,11]),e(l,u,{15:8,9:16,10:17,5:20,1:[2,4],11:c,13:f,23:s}),e(m,[2,12]),{19:28,25:[1,29]},e(m,[2,20]),e(a,[2,7]),e(l,[2,9]),e(l,[2,10]),{17:30,26:h},{26:[2,19]},e(m,[2,13])],defaultActions:{9:[2,17],10:[2,1],11:[2,2],29:[2,19]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},g={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),23;case 1:return this.begin("type_directive"),24;case 2:return this.popState(),this.begin("arg_directive"),18;case 3:return this.popState(),this.popState(),26;case 4:return 25;case 5:case 6:case 8:case 9:break;case 7:return 20;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:this.begin("string");break;case 13:this.popState();break;case 14:return"txt";case 15:return 6;case 16:return 8;case 17:return"value";case 18:return 22}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,15,16,17,18],inclusive:!0}}};function _(){this.yy={}}return p.lexer=g,_.prototype=p,p.Parser=_,new _}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?a3fa").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/requirement/parser/requirementDiagram.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,3],n=[1,5],r=[1,17],o=[2,10],s=[1,21],a=[1,22],i=[1,23],d=[1,24],l=[1,25],u=[1,26],c=[1,19],f=[1,27],h=[1,28],m=[1,31],p=[66,67],g=[5,8,14,35,36,37,38,39,40,48,55,57,66,67],_=[5,6,8,14,35,36,37,38,39,40,48,66,67],y=[1,51],v=[1,52],b=[1,53],j=[1,54],x=[1,55],w=[1,56],k=[1,57],C=[57,58],T=[1,69],E=[1,65],S=[1,66],M=[1,67],A=[1,68],N=[1,70],D=[1,74],O=[1,75],B=[1,72],R=[1,73],I=[5,8,14,35,36,37,38,39,40,48,66,67],P={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,open_directive:14,type_directive:15,arg_directive:16,close_directive:17,requirementDef:18,elementDef:19,relationshipDef:20,requirementType:21,requirementName:22,STRUCT_START:23,requirementBody:24,ID:25,COLONSEP:26,id:27,TEXT:28,text:29,RISK:30,riskLevel:31,VERIFYMTHD:32,verifyType:33,STRUCT_STOP:34,REQUIREMENT:35,FUNCTIONAL_REQUIREMENT:36,INTERFACE_REQUIREMENT:37,PERFORMANCE_REQUIREMENT:38,PHYSICAL_REQUIREMENT:39,DESIGN_CONSTRAINT:40,LOW_RISK:41,MED_RISK:42,HIGH_RISK:43,VERIFY_ANALYSIS:44,VERIFY_DEMONSTRATION:45,VERIFY_INSPECTION:46,VERIFY_TEST:47,ELEMENT:48,elementName:49,elementBody:50,TYPE:51,type:52,DOCREF:53,ref:54,END_ARROW_L:55,relationship:56,LINE:57,END_ARROW_R:58,CONTAINS:59,COPIES:60,DERIVES:61,SATISFIES:62,VERIFIES:63,REFINES:64,TRACES:65,unqString:66,qString:67,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"open_directive",15:"type_directive",16:"arg_directive",17:"close_directive",23:"STRUCT_START",25:"ID",26:"COLONSEP",28:"TEXT",30:"RISK",32:"VERIFYMTHD",34:"STRUCT_STOP",35:"REQUIREMENT",36:"FUNCTIONAL_REQUIREMENT",37:"INTERFACE_REQUIREMENT",38:"PERFORMANCE_REQUIREMENT",39:"PHYSICAL_REQUIREMENT",40:"DESIGN_CONSTRAINT",41:"LOW_RISK",42:"MED_RISK",43:"HIGH_RISK",44:"VERIFY_ANALYSIS",45:"VERIFY_DEMONSTRATION",46:"VERIFY_INSPECTION",47:"VERIFY_TEST",48:"ELEMENT",51:"TYPE",53:"DOCREF",55:"END_ARROW_L",57:"LINE",58:"END_ARROW_R",59:"CONTAINS",60:"COPIES",61:"DERIVES",62:"SATISFIES",63:"VERIFIES",64:"REFINES",65:"TRACES",66:"unqString",67:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[18,5],[24,5],[24,5],[24,5],[24,5],[24,2],[24,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[31,1],[31,1],[31,1],[33,1],[33,1],[33,1],[33,1],[19,5],[50,5],[50,5],[50,2],[50,1],[20,5],[20,5],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[22,1],[22,1],[27,1],[27,1],[29,1],[29,1],[49,1],[49,1],[52,1],[52,1],[54,1],[54,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 6:r.parseDirective("%%{","open_directive");break;case 7:r.parseDirective(s[i],"type_directive");break;case 8:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 9:r.parseDirective("}%%","close_directive","pie");break;case 10:this.$=[];break;case 16:r.addRequirement(s[i-3],s[i-4]);break;case 17:r.setNewReqId(s[i-2]);break;case 18:r.setNewReqText(s[i-2]);break;case 19:r.setNewReqRisk(s[i-2]);break;case 20:r.setNewReqVerifyMethod(s[i-2]);break;case 23:this.$=r.RequirementType.REQUIREMENT;break;case 24:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 26:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 27:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 28:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 29:this.$=r.RiskLevel.LOW_RISK;break;case 30:this.$=r.RiskLevel.MED_RISK;break;case 31:this.$=r.RiskLevel.HIGH_RISK;break;case 32:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 33:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 34:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 35:this.$=r.VerifyType.VERIFY_TEST;break;case 36:r.addElement(s[i-3]);break;case 37:r.setNewElementType(s[i-2]);break;case 38:r.setNewElementDocRef(s[i-2]);break;case 41:r.addRelationship(s[i-2],s[i],s[i-4]);break;case 42:r.addRelationship(s[i-2],s[i-4],s[i]);break;case 43:this.$=r.Relationships.CONTAINS;break;case 44:this.$=r.Relationships.COPIES;break;case 45:this.$=r.Relationships.DERIVES;break;case 46:this.$=r.Relationships.SATISFIES;break;case 47:this.$=r.Relationships.VERIFIES;break;case 48:this.$=r.Relationships.REFINES;break;case 49:this.$=r.Relationships.TRACES}},table:[{3:1,4:2,6:t,9:4,14:n},{1:[3]},{3:7,4:2,5:[1,6],6:t,9:4,14:n},{5:[1,8]},{10:9,15:[1,10]},{15:[2,6]},{3:11,4:2,6:t,9:4,14:n},{1:[2,2]},{4:16,5:r,7:12,8:o,9:4,14:n,18:13,19:14,20:15,21:18,27:20,35:s,36:a,37:i,38:d,39:l,40:u,48:c,66:f,67:h},{11:29,12:[1,30],17:m},e([12,17],[2,7]),{1:[2,1]},{8:[1,32]},{4:16,5:r,7:33,8:o,9:4,14:n,18:13,19:14,20:15,21:18,27:20,35:s,36:a,37:i,38:d,39:l,40:u,48:c,66:f,67:h},{4:16,5:r,7:34,8:o,9:4,14:n,18:13,19:14,20:15,21:18,27:20,35:s,36:a,37:i,38:d,39:l,40:u,48:c,66:f,67:h},{4:16,5:r,7:35,8:o,9:4,14:n,18:13,19:14,20:15,21:18,27:20,35:s,36:a,37:i,38:d,39:l,40:u,48:c,66:f,67:h},{4:16,5:r,7:36,8:o,9:4,14:n,18:13,19:14,20:15,21:18,27:20,35:s,36:a,37:i,38:d,39:l,40:u,48:c,66:f,67:h},{4:16,5:r,7:37,8:o,9:4,14:n,18:13,19:14,20:15,21:18,27:20,35:s,36:a,37:i,38:d,39:l,40:u,48:c,66:f,67:h},{22:38,66:[1,39],67:[1,40]},{49:41,66:[1,42],67:[1,43]},{55:[1,44],57:[1,45]},e(p,[2,23]),e(p,[2,24]),e(p,[2,25]),e(p,[2,26]),e(p,[2,27]),e(p,[2,28]),e(g,[2,52]),e(g,[2,53]),e(_,[2,4]),{13:46,16:[1,47]},e(_,[2,9]),{1:[2,3]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{23:[1,48]},{23:[2,50]},{23:[2,51]},{23:[1,49]},{23:[2,56]},{23:[2,57]},{56:50,59:y,60:v,61:b,62:j,63:x,64:w,65:k},{56:58,59:y,60:v,61:b,62:j,63:x,64:w,65:k},{11:59,17:m},{17:[2,8]},{5:[1,60]},{5:[1,61]},{57:[1,62]},e(C,[2,43]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),{58:[1,63]},e(_,[2,5]),{5:T,24:64,25:E,28:S,30:M,32:A,34:N},{5:D,34:O,50:71,51:B,53:R},{27:76,66:f,67:h},{27:77,66:f,67:h},e(I,[2,16]),{26:[1,78]},{26:[1,79]},{26:[1,80]},{26:[1,81]},{5:T,24:82,25:E,28:S,30:M,32:A,34:N},e(I,[2,22]),e(I,[2,36]),{26:[1,83]},{26:[1,84]},{5:D,34:O,50:85,51:B,53:R},e(I,[2,40]),e(I,[2,41]),e(I,[2,42]),{27:86,66:f,67:h},{29:87,66:[1,88],67:[1,89]},{31:90,41:[1,91],42:[1,92],43:[1,93]},{33:94,44:[1,95],45:[1,96],46:[1,97],47:[1,98]},e(I,[2,21]),{52:99,66:[1,100],67:[1,101]},{54:102,66:[1,103],67:[1,104]},e(I,[2,39]),{5:[1,105]},{5:[1,106]},{5:[2,54]},{5:[2,55]},{5:[1,107]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[1,108]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[2,35]},{5:[1,109]},{5:[2,58]},{5:[2,59]},{5:[1,110]},{5:[2,60]},{5:[2,61]},{5:T,24:111,25:E,28:S,30:M,32:A,34:N},{5:T,24:112,25:E,28:S,30:M,32:A,34:N},{5:T,24:113,25:E,28:S,30:M,32:A,34:N},{5:T,24:114,25:E,28:S,30:M,32:A,34:N},{5:D,34:O,50:115,51:B,53:R},{5:D,34:O,50:116,51:B,53:R},e(I,[2,17]),e(I,[2,18]),e(I,[2,19]),e(I,[2,20]),e(I,[2,37]),e(I,[2,38])],defaultActions:{5:[2,6],7:[2,2],11:[2,1],32:[2,3],33:[2,11],34:[2,12],35:[2,13],36:[2,14],37:[2,15],39:[2,50],40:[2,51],42:[2,56],43:[2,57],47:[2,8],88:[2,54],89:[2,55],91:[2,29],92:[2,30],93:[2,31],95:[2,32],96:[2,33],97:[2,34],98:[2,35],100:[2,58],101:[2,59],103:[2,60],104:[2,61]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},L={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),14;case 1:return this.begin("type_directive"),15;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),17;case 4:return 16;case 5:return 5;case 6:case 7:case 8:break;case 9:return 8;case 10:return 6;case 11:return 23;case 12:return 34;case 13:return 26;case 14:return 25;case 15:return 28;case 16:return 30;case 17:return 32;case 18:return 35;case 19:return 36;case 20:return 37;case 21:return 38;case 22:return 39;case 23:return 40;case 24:return 41;case 25:return 42;case 26:return 43;case 27:return 44;case 28:return 45;case 29:return 46;case 30:return 47;case 31:return 48;case 32:return 59;case 33:return 60;case 34:return 61;case 35:return 62;case 36:return 63;case 37:return 64;case 38:return 65;case 39:return 51;case 40:return 53;case 41:return 55;case 42:return 58;case 43:return 57;case 44:this.begin("string");break;case 45:this.popState();break;case 46:return"qString";case 47:return t.yytext=t.yytext.trim(),66}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[45,46],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,47],inclusive:!0}}};function F(){this.yy={}}return P.lexer=L,F.prototype=P,P.Parser=F,new F}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?ebf4").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/sequence/parser/sequenceDiagram.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,2],n=[1,3],r=[1,5],o=[1,7],s=[2,5],a=[1,15],i=[1,17],d=[1,18],l=[1,19],u=[1,21],c=[1,22],f=[1,23],h=[1,29],m=[1,30],p=[1,31],g=[1,32],_=[1,33],y=[1,34],v=[1,37],b=[1,38],j=[1,39],x=[1,40],w=[1,41],k=[1,42],C=[1,45],T=[1,4,5,16,20,22,23,24,30,32,33,34,35,36,38,40,41,42,46,47,48,49,57,67],E=[1,58],S=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,42,46,47,48,49,57,67],M=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,41,42,46,47,48,49,57,67],A=[4,5,16,20,22,23,24,30,32,33,34,35,36,38,40,42,46,47,48,49,57,67],N=[55,56,57],D=[1,4,5,7,16,20,22,23,24,30,32,33,34,35,36,38,40,41,42,46,47,48,49,57,67],O={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,openDirective:11,typeDirective:12,closeDirective:13,":":14,argDirective:15,participant:16,actor:17,AS:18,restOfLine:19,participant_actor:20,signal:21,autonumber:22,activate:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,text2:31,loop:32,end:33,rect:34,opt:35,alt:36,else_sections:37,par:38,par_sections:39,and:40,else:41,note:42,placement:43,over:44,actor_pair:45,links:46,link:47,properties:48,details:49,spaceList:50,",":51,left_of:52,right_of:53,signaltype:54,"+":55,"-":56,ACTOR:57,SOLID_OPEN_ARROW:58,DOTTED_OPEN_ARROW:59,SOLID_ARROW:60,DOTTED_ARROW:61,SOLID_CROSS:62,DOTTED_CROSS:63,SOLID_POINT:64,DOTTED_POINT:65,TXT:66,open_directive:67,type_directive:68,arg_directive:69,close_directive:70,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",14:":",16:"participant",18:"AS",19:"restOfLine",20:"participant_actor",22:"autonumber",23:"activate",24:"deactivate",30:"title",32:"loop",33:"end",34:"rect",35:"opt",36:"alt",38:"par",40:"and",41:"else",42:"note",44:"over",46:"links",47:"link",48:"properties",49:"details",51:",",52:"left_of",53:"right_of",55:"+",56:"-",57:"ACTOR",58:"SOLID_OPEN_ARROW",59:"DOTTED_OPEN_ARROW",60:"SOLID_ARROW",61:"DOTTED_ARROW",62:"SOLID_CROSS",63:"DOTTED_CROSS",64:"SOLID_POINT",65:"DOTTED_POINT",66:"TXT",67:"open_directive",68:"type_directive",69:"arg_directive",70:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,1],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,3],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[39,1],[39,4],[37,1],[37,4],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[50,2],[50,1],[45,3],[45,1],[43,1],[43,1],[21,5],[21,5],[21,4],[17,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[31,1],[11,1],[12,1],[15,1],[13,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 4:return r.apply(s[i]),s[i];case 5:case 9:this.$=[];break;case 6:s[i-1].push(s[i]),this.$=s[i-1];break;case 7:case 8:case 45:this.$=s[i];break;case 12:s[i-3].type="addParticipant",s[i-3].description=r.parseMessage(s[i-1]),this.$=s[i-3];break;case 13:s[i-1].type="addParticipant",this.$=s[i-1];break;case 14:s[i-3].type="addActor",s[i-3].description=r.parseMessage(s[i-1]),this.$=s[i-3];break;case 15:s[i-1].type="addActor",this.$=s[i-1];break;case 17:r.enableSequenceNumbers();break;case 18:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[i-1]};break;case 19:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[i-1]};break;case 25:this.$=[{type:"setTitle",text:s[i-1]}];break;case 26:s[i-1].unshift({type:"loopStart",loopText:r.parseMessage(s[i-2]),signalType:r.LINETYPE.LOOP_START}),s[i-1].push({type:"loopEnd",loopText:s[i-2],signalType:r.LINETYPE.LOOP_END}),this.$=s[i-1];break;case 27:s[i-1].unshift({type:"rectStart",color:r.parseMessage(s[i-2]),signalType:r.LINETYPE.RECT_START}),s[i-1].push({type:"rectEnd",color:r.parseMessage(s[i-2]),signalType:r.LINETYPE.RECT_END}),this.$=s[i-1];break;case 28:s[i-1].unshift({type:"optStart",optText:r.parseMessage(s[i-2]),signalType:r.LINETYPE.OPT_START}),s[i-1].push({type:"optEnd",optText:r.parseMessage(s[i-2]),signalType:r.LINETYPE.OPT_END}),this.$=s[i-1];break;case 29:s[i-1].unshift({type:"altStart",altText:r.parseMessage(s[i-2]),signalType:r.LINETYPE.ALT_START}),s[i-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=s[i-1];break;case 30:s[i-1].unshift({type:"parStart",parText:r.parseMessage(s[i-2]),signalType:r.LINETYPE.PAR_START}),s[i-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[i-1];break;case 33:this.$=s[i-3].concat([{type:"and",parText:r.parseMessage(s[i-1]),signalType:r.LINETYPE.PAR_AND},s[i]]);break;case 35:this.$=s[i-3].concat([{type:"else",altText:r.parseMessage(s[i-1]),signalType:r.LINETYPE.ALT_ELSE},s[i]]);break;case 36:this.$=[s[i-1],{type:"addNote",placement:s[i-2],actor:s[i-1].actor,text:s[i]}];break;case 37:s[i-2]=[].concat(s[i-1],s[i-1]).slice(0,2),s[i-2][0]=s[i-2][0].actor,s[i-2][1]=s[i-2][1].actor,this.$=[s[i-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:s[i-2].slice(0,2),text:s[i]}];break;case 38:this.$=[s[i-1],{type:"addLinks",actor:s[i-1].actor,text:s[i]}];break;case 39:this.$=[s[i-1],{type:"addALink",actor:s[i-1].actor,text:s[i]}];break;case 40:this.$=[s[i-1],{type:"addProperties",actor:s[i-1].actor,text:s[i]}];break;case 41:this.$=[s[i-1],{type:"addDetails",actor:s[i-1].actor,text:s[i]}];break;case 44:this.$=[s[i-2],s[i]];break;case 46:this.$=r.PLACEMENT.LEFTOF;break;case 47:this.$=r.PLACEMENT.RIGHTOF;break;case 48:this.$=[s[i-4],s[i-1],{type:"addMessage",from:s[i-4].actor,to:s[i-1].actor,signalType:s[i-3],msg:s[i]},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[i-1]}];break;case 49:this.$=[s[i-4],s[i-1],{type:"addMessage",from:s[i-4].actor,to:s[i-1].actor,signalType:s[i-3],msg:s[i]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[i-4]}];break;case 50:this.$=[s[i-3],s[i-1],{type:"addMessage",from:s[i-3].actor,to:s[i-1].actor,signalType:s[i-2],msg:s[i]}];break;case 51:this.$={type:"addParticipant",actor:s[i]};break;case 52:this.$=r.LINETYPE.SOLID_OPEN;break;case 53:this.$=r.LINETYPE.DOTTED_OPEN;break;case 54:this.$=r.LINETYPE.SOLID;break;case 55:this.$=r.LINETYPE.DOTTED;break;case 56:this.$=r.LINETYPE.SOLID_CROSS;break;case 57:this.$=r.LINETYPE.DOTTED_CROSS;break;case 58:this.$=r.LINETYPE.SOLID_POINT;break;case 59:this.$=r.LINETYPE.DOTTED_POINT;break;case 60:this.$=r.parseMessage(s[i].trim().substring(1));break;case 61:r.parseDirective("%%{","open_directive");break;case 62:r.parseDirective(s[i],"type_directive");break;case 63:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 64:r.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:t,5:n,6:4,7:r,11:6,67:o},{1:[3]},{3:8,4:t,5:n,6:4,7:r,11:6,67:o},{3:9,4:t,5:n,6:4,7:r,11:6,67:o},{3:10,4:t,5:n,6:4,7:r,11:6,67:o},e([1,4,5,16,20,22,23,24,30,32,34,35,36,38,42,46,47,48,49,57,67],s,{8:11}),{12:12,68:[1,13]},{68:[2,61]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:a,5:i,6:35,9:14,10:16,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,34:p,35:g,36:_,38:y,42:v,46:b,47:j,48:x,49:w,57:k,67:o},{13:43,14:[1,44],70:C},e([14,70],[2,62]),e(T,[2,6]),{6:35,10:46,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,34:p,35:g,36:_,38:y,42:v,46:b,47:j,48:x,49:w,57:k,67:o},e(T,[2,8]),e(T,[2,9]),{17:47,57:k},{17:48,57:k},{5:[1,49]},e(T,[2,17]),{17:50,57:k},{17:51,57:k},{5:[1,52]},{5:[1,53]},{5:[1,54]},{5:[1,55]},{5:[1,56]},{31:57,66:E},{19:[1,59]},{19:[1,60]},{19:[1,61]},{19:[1,62]},{19:[1,63]},e(T,[2,31]),{54:64,58:[1,65],59:[1,66],60:[1,67],61:[1,68],62:[1,69],63:[1,70],64:[1,71],65:[1,72]},{43:73,44:[1,74],52:[1,75],53:[1,76]},{17:77,57:k},{17:78,57:k},{17:79,57:k},{17:80,57:k},e([5,18,51,58,59,60,61,62,63,64,65,66],[2,51]),{5:[1,81]},{15:82,69:[1,83]},{5:[2,64]},e(T,[2,7]),{5:[1,85],18:[1,84]},{5:[1,87],18:[1,86]},e(T,[2,16]),{5:[1,88]},{5:[1,89]},e(T,[2,20]),e(T,[2,21]),e(T,[2,22]),e(T,[2,23]),e(T,[2,24]),{5:[1,90]},{5:[2,60]},e(S,s,{8:91}),e(S,s,{8:92}),e(S,s,{8:93}),e(M,s,{37:94,8:95}),e(A,s,{39:96,8:97}),{17:100,55:[1,98],56:[1,99],57:k},e(N,[2,52]),e(N,[2,53]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),e(N,[2,57]),e(N,[2,58]),e(N,[2,59]),{17:101,57:k},{17:103,45:102,57:k},{57:[2,46]},{57:[2,47]},{31:104,66:E},{31:105,66:E},{31:106,66:E},{31:107,66:E},e(D,[2,10]),{13:108,70:C},{70:[2,63]},{19:[1,109]},e(T,[2,13]),{19:[1,110]},e(T,[2,15]),e(T,[2,18]),e(T,[2,19]),e(T,[2,25]),{4:a,5:i,6:35,9:14,10:16,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,33:[1,111],34:p,35:g,36:_,38:y,42:v,46:b,47:j,48:x,49:w,57:k,67:o},{4:a,5:i,6:35,9:14,10:16,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,33:[1,112],34:p,35:g,36:_,38:y,42:v,46:b,47:j,48:x,49:w,57:k,67:o},{4:a,5:i,6:35,9:14,10:16,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,33:[1,113],34:p,35:g,36:_,38:y,42:v,46:b,47:j,48:x,49:w,57:k,67:o},{33:[1,114]},{4:a,5:i,6:35,9:14,10:16,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,33:[2,34],34:p,35:g,36:_,38:y,41:[1,115],42:v,46:b,47:j,48:x,49:w,57:k,67:o},{33:[1,116]},{4:a,5:i,6:35,9:14,10:16,11:6,16:d,17:36,20:l,21:20,22:u,23:c,24:f,25:24,26:25,27:26,28:27,29:28,30:h,32:m,33:[2,32],34:p,35:g,36:_,38:y,40:[1,117],42:v,46:b,47:j,48:x,49:w,57:k,67:o},{17:118,57:k},{17:119,57:k},{31:120,66:E},{31:121,66:E},{31:122,66:E},{51:[1,123],66:[2,45]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},{5:[1,124]},{5:[1,125]},{5:[1,126]},e(T,[2,26]),e(T,[2,27]),e(T,[2,28]),e(T,[2,29]),{19:[1,127]},e(T,[2,30]),{19:[1,128]},{31:129,66:E},{31:130,66:E},{5:[2,50]},{5:[2,36]},{5:[2,37]},{17:131,57:k},e(D,[2,11]),e(T,[2,12]),e(T,[2,14]),e(M,s,{8:95,37:132}),e(A,s,{8:97,39:133}),{5:[2,48]},{5:[2,49]},{66:[2,44]},{33:[2,35]},{33:[2,33]}],defaultActions:{7:[2,61],8:[2,1],9:[2,2],10:[2,3],45:[2,64],58:[2,60],75:[2,46],76:[2,47],83:[2,63],104:[2,38],105:[2,39],106:[2,40],107:[2,41],120:[2,50],121:[2,36],122:[2,37],129:[2,48],130:[2,49],131:[2,44],132:[2,35],133:[2,33]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},B={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),67;case 1:return this.begin("type_directive"),68;case 2:return this.popState(),this.begin("arg_directive"),14;case 3:return this.popState(),this.popState(),70;case 4:return 69;case 5:case 39:case 52:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return this.begin("ID"),16;case 12:return this.begin("ID"),20;case 13:return t.yytext=t.yytext.trim(),this.begin("ALIAS"),57;case 14:return this.popState(),this.popState(),this.begin("LINE"),18;case 15:return this.popState(),this.popState(),5;case 16:return this.begin("LINE"),32;case 17:return this.begin("LINE"),34;case 18:return this.begin("LINE"),35;case 19:return this.begin("LINE"),36;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),38;case 22:return this.begin("LINE"),40;case 23:return this.popState(),19;case 24:return 33;case 25:return 52;case 26:return 53;case 27:return 46;case 28:return 47;case 29:return 48;case 30:return 49;case 31:return 44;case 32:return 42;case 33:return this.begin("ID"),23;case 34:return this.begin("ID"),24;case 35:return 30;case 36:return 7;case 37:return 22;case 38:return 51;case 40:return t.yytext=t.yytext.trim(),57;case 41:return 60;case 42:return 61;case 43:return 58;case 44:return 59;case 45:return 62;case 46:return 63;case 47:return 64;case 48:return 65;case 49:return 66;case 50:return 55;case 51:return 56;case 53:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,13],inclusive:!1},ALIAS:{rules:[7,8,14,15],inclusive:!1},LINE:{rules:[7,8,23],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],inclusive:!0}}};function R(){this.yy={}}return O.lexer=B,R.prototype=O,O.Parser=R,new R}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?e940").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/state/parser/stateDiagram.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,2],n=[1,3],r=[1,5],o=[1,7],s=[2,5],a=[1,15],i=[1,17],d=[1,19],l=[1,20],u=[1,21],c=[1,22],f=[1,30],h=[1,23],m=[1,24],p=[1,25],g=[1,26],_=[1,27],y=[1,32],v=[1,33],b=[1,34],j=[1,35],x=[1,31],w=[1,38],k=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],C=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],T=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],E=[4,5,14,15,17,19,20,22,23,24,25,26,27,36,37,38,39,42,45],S={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,idStatement:11,DESCR:12,"--\x3e":13,HIDE_EMPTY:14,scale:15,WIDTH:16,COMPOSIT_STATE:17,STRUCT_START:18,STRUCT_STOP:19,STATE_DESCR:20,AS:21,ID:22,FORK:23,JOIN:24,CHOICE:25,CONCURRENT:26,note:27,notePosition:28,NOTE_TEXT:29,direction:30,openDirective:31,typeDirective:32,closeDirective:33,":":34,argDirective:35,direction_tb:36,direction_bt:37,direction_rl:38,direction_lr:39,eol:40,";":41,EDGE_STATE:42,left_of:43,right_of:44,open_directive:45,type_directive:46,arg_directive:47,close_directive:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",12:"DESCR",13:"--\x3e",14:"HIDE_EMPTY",15:"scale",16:"WIDTH",17:"COMPOSIT_STATE",18:"STRUCT_START",19:"STRUCT_STOP",20:"STATE_DESCR",21:"AS",22:"ID",23:"FORK",24:"JOIN",25:"CHOICE",26:"CONCURRENT",27:"note",29:"NOTE_TEXT",34:":",36:"direction_tb",37:"direction_bt",38:"direction_rl",39:"direction_lr",41:";",42:"EDGE_STATE",43:"left_of",44:"right_of",45:"open_directive",46:"type_directive",47:"arg_directive",48:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[40,1],[40,1],[11,1],[11,1],[28,1],[28,1],[31,1],[32,1],[35,1],[33,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 4:return r.setRootDoc(s[i]),s[i];case 5:this.$=[];break;case 6:"nl"!=s[i]&&(s[i-1].push(s[i]),this.$=s[i-1]);break;case 7:case 8:case 36:case 37:this.$=s[i];break;case 9:this.$="nl";break;case 10:this.$={stmt:"state",id:s[i],type:"default",description:""};break;case 11:this.$={stmt:"state",id:s[i-1],type:"default",description:r.trimColon(s[i])};break;case 12:this.$={stmt:"relation",state1:{stmt:"state",id:s[i-2],type:"default",description:""},state2:{stmt:"state",id:s[i],type:"default",description:""}};break;case 13:this.$={stmt:"relation",state1:{stmt:"state",id:s[i-3],type:"default",description:""},state2:{stmt:"state",id:s[i-1],type:"default",description:""},description:s[i].substr(1).trim()};break;case 17:this.$={stmt:"state",id:s[i-3],type:"default",description:"",doc:s[i-1]};break;case 18:var d=s[i],l=s[i-2].trim();if(s[i].match(":")){var u=s[i].split(":");d=u[0],l=[l,u[1]]}this.$={stmt:"state",id:d,type:"default",description:l};break;case 19:this.$={stmt:"state",id:s[i-3],type:"default",description:s[i-5],doc:s[i-1]};break;case 20:this.$={stmt:"state",id:s[i],type:"fork"};break;case 21:this.$={stmt:"state",id:s[i],type:"join"};break;case 22:this.$={stmt:"state",id:s[i],type:"choice"};break;case 23:this.$={stmt:"state",id:r.getDividerId(),type:"divider"};break;case 24:this.$={stmt:"state",id:s[i-1].trim(),note:{position:s[i-2].trim(),text:s[i].trim()}};break;case 30:r.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 31:r.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 32:r.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 33:r.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:r.parseDirective("%%{","open_directive");break;case 41:r.parseDirective(s[i],"type_directive");break;case 42:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 43:r.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:t,5:n,6:4,7:r,31:6,45:o},{1:[3]},{3:8,4:t,5:n,6:4,7:r,31:6,45:o},{3:9,4:t,5:n,6:4,7:r,31:6,45:o},{3:10,4:t,5:n,6:4,7:r,31:6,45:o},e([1,4,5,14,15,17,20,22,23,24,25,26,27,36,37,38,39,42,45],s,{8:11}),{32:12,46:[1,13]},{46:[2,40]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:a,5:i,6:28,9:14,10:16,11:18,14:d,15:l,17:u,20:c,22:f,23:h,24:m,25:p,26:g,27:_,30:29,31:6,36:y,37:v,38:b,39:j,42:x,45:o},{33:36,34:[1,37],48:w},e([34,48],[2,41]),e(k,[2,6]),{6:28,10:39,11:18,14:d,15:l,17:u,20:c,22:f,23:h,24:m,25:p,26:g,27:_,30:29,31:6,36:y,37:v,38:b,39:j,42:x,45:o},e(k,[2,8]),e(k,[2,9]),e(k,[2,10],{12:[1,40],13:[1,41]}),e(k,[2,14]),{16:[1,42]},e(k,[2,16],{18:[1,43]}),{21:[1,44]},e(k,[2,20]),e(k,[2,21]),e(k,[2,22]),e(k,[2,23]),{28:45,29:[1,46],43:[1,47],44:[1,48]},e(k,[2,26]),e(k,[2,27]),e(C,[2,36]),e(C,[2,37]),e(k,[2,30]),e(k,[2,31]),e(k,[2,32]),e(k,[2,33]),e(T,[2,28]),{35:49,47:[1,50]},e(T,[2,43]),e(k,[2,7]),e(k,[2,11]),{11:51,22:f,42:x},e(k,[2,15]),e(E,s,{8:52}),{22:[1,53]},{22:[1,54]},{21:[1,55]},{22:[2,38]},{22:[2,39]},{33:56,48:w},{48:[2,42]},e(k,[2,12],{12:[1,57]}),{4:a,5:i,6:28,9:14,10:16,11:18,14:d,15:l,17:u,19:[1,58],20:c,22:f,23:h,24:m,25:p,26:g,27:_,30:29,31:6,36:y,37:v,38:b,39:j,42:x,45:o},e(k,[2,18],{18:[1,59]}),{29:[1,60]},{22:[1,61]},e(T,[2,29]),e(k,[2,13]),e(k,[2,17]),e(E,s,{8:62}),e(k,[2,24]),e(k,[2,25]),{4:a,5:i,6:28,9:14,10:16,11:18,14:d,15:l,17:u,19:[1,63],20:c,22:f,23:h,24:m,25:p,26:g,27:_,30:29,31:6,36:y,37:v,38:b,39:j,42:x,45:o},e(k,[2,19])],defaultActions:{7:[2,40],8:[2,1],9:[2,2],10:[2,3],47:[2,38],48:[2,39],50:[2,42]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},M={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:case 26:return 36;case 1:case 27:return 37;case 2:case 28:return 38;case 3:case 29:return 39;case 4:return this.begin("open_directive"),45;case 5:return this.begin("type_directive"),46;case 6:return this.popState(),this.begin("arg_directive"),34;case 7:return this.popState(),this.popState(),48;case 8:return 47;case 9:case 10:case 12:case 13:case 14:case 15:case 39:case 45:break;case 11:case 59:return 5;case 16:return this.pushState("SCALE"),15;case 17:return 16;case 18:case 33:case 36:this.popState();break;case 19:this.pushState("STATE");break;case 20:case 23:return this.popState(),t.yytext=t.yytext.slice(0,-8).trim(),23;case 21:case 24:return this.popState(),t.yytext=t.yytext.slice(0,-8).trim(),24;case 22:case 25:return this.popState(),t.yytext=t.yytext.slice(0,-10).trim(),25;case 30:this.begin("STATE_STRING");break;case 31:return this.popState(),this.pushState("STATE_ID"),"AS";case 32:case 47:return this.popState(),"ID";case 34:return"STATE_DESCR";case 35:return 17;case 37:return this.popState(),this.pushState("struct"),18;case 38:return this.popState(),19;case 40:return this.begin("NOTE"),27;case 41:return this.popState(),this.pushState("NOTE_ID"),43;case 42:return this.popState(),this.pushState("NOTE_ID"),44;case 43:this.popState(),this.pushState("FLOATING_NOTE");break;case 44:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 46:return"NOTE_TEXT";case 48:return this.popState(),this.pushState("NOTE_TEXT"),22;case 49:return this.popState(),t.yytext=t.yytext.substr(2).trim(),29;case 50:return this.popState(),t.yytext=t.yytext.slice(0,-8).trim(),29;case 51:case 52:return 7;case 53:return 14;case 54:return 42;case 55:return 22;case 56:return t.yytext=t.yytext.trim(),12;case 57:return 13;case 58:return 26;case 60:return"INVALID"}},rules:[/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[13,14],inclusive:!1},close_directive:{rules:[13,14],inclusive:!1},arg_directive:{rules:[7,8,13,14],inclusive:!1},type_directive:{rules:[6,7,13,14],inclusive:!1},open_directive:{rules:[5,13,14],inclusive:!1},struct:{rules:[13,14,19,26,27,28,29,38,39,40,54,55,56,57,58],inclusive:!1},FLOATING_NOTE_ID:{rules:[47],inclusive:!1},FLOATING_NOTE:{rules:[44,45,46],inclusive:!1},NOTE_TEXT:{rules:[49,50],inclusive:!1},NOTE_ID:{rules:[48],inclusive:!1},NOTE:{rules:[41,42,43],inclusive:!1},SCALE:{rules:[17,18],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[32],inclusive:!1},STATE_STRING:{rules:[33,34],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[13,14,20,21,22,23,24,25,30,31,35,36,37],inclusive:!1},ID:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,12,14,15,16,19,37,40,51,52,53,54,55,56,57,59,60],inclusive:!0}}};function A(){this.yy={}}return S.lexer=M,A.prototype=S,S.Parser=A,new A}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?a3b8").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./src/diagrams/user-journey/parser/journey.jison":(e,t,n)=>{e=n.nmd(e);var r=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,2],n=[1,5],r=[6,9,11,17,18,19,21],o=[1,15],s=[1,16],a=[1,17],i=[1,21],d=[4,6,9,11,17,18,19,21],l={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,section:18,taskName:19,taskData:20,open_directive:21,type_directive:22,arg_directive:23,close_directive:24,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"section",19:"taskName",20:"taskData",21:"open_directive",22:"type_directive",23:"arg_directive",24:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(e,t,n,r,o,s,a){var i=s.length-1;switch(o){case 1:return s[i-1];case 3:case 7:case 8:this.$=[];break;case 4:s[i-1].push(s[i]),this.$=s[i-1];break;case 5:case 6:this.$=s[i];break;case 11:r.setTitle(s[i].substr(6)),this.$=s[i].substr(6);break;case 12:r.addSection(s[i].substr(8)),this.$=s[i].substr(8);break;case 13:r.addTask(s[i-1],s[i]),this.$="task";break;case 15:r.parseDirective("%%{","open_directive");break;case 16:r.parseDirective(s[i],"type_directive");break;case 17:s[i]=s[i].trim().replace(/'/g,'"'),r.parseDirective(s[i],"arg_directive");break;case 18:r.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:t,7:3,12:4,21:n},{1:[3]},e(r,[2,3],{5:6}),{3:7,4:t,7:3,12:4,21:n},{13:8,22:[1,9]},{22:[2,15]},{6:[1,10],7:18,8:11,9:[1,12],10:13,11:[1,14],12:4,17:o,18:s,19:a,21:n},{1:[2,2]},{14:19,15:[1,20],24:i},e([15,24],[2,16]),e(r,[2,8],{1:[2,1]}),e(r,[2,4]),{7:18,10:22,12:4,17:o,18:s,19:a,21:n},e(r,[2,6]),e(r,[2,7]),e(r,[2,11]),e(r,[2,12]),{20:[1,23]},e(r,[2,14]),{11:[1,24]},{16:25,23:[1,26]},{11:[2,18]},e(r,[2,5]),e(r,[2,13]),e(d,[2,9]),{14:27,24:i},{24:[2,17]},{11:[1,28]},e(d,[2,10])],defaultActions:{5:[2,15],7:[2,2],21:[2,18],26:[2,17]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],o=[null],s=[],a=this.table,i="",d=0,l=0,u=0,c=2,f=1,h=s.slice.call(arguments,1),m=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);m.setInput(e,p.yy),p.yy.lexer=m,p.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var _=m.yylloc;s.push(_);var y=m.options&&m.options.ranges;function v(){var e;return"number"!=typeof(e=r.pop()||m.lex()||f)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,j,x,w,k,C,T,E,S,M={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=v()),w=a[x]&&a[x][b]),void 0===w||!w.length||!w[0]){var A="";for(C in S=[],a[x])this.terminals_[C]&&C>c&&S.push("'"+this.terminals_[C]+"'");A=m.showPosition?"Parse error on line "+(d+1)+":\n"+m.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(d+1)+": Unexpected "+(b==f?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:_,expected:S})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),o.push(m.yytext),s.push(m.yylloc),n.push(w[1]),b=null,j?(b=j,j=null):(l=m.yyleng,i=m.yytext,d=m.yylineno,_=m.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],M.$=o[o.length-T],M._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},y&&(M._$.range=[s[s.length-(T||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[i,l,d,p.yy,w[1],o,s].concat(h))))return k;T&&(n=n.slice(0,-1*T*2),o=o.slice(0,-1*T),s=s.slice(0,-1*T)),n.push(this.productions_[w[1]][0]),o.push(M.$),s.push(M._$),E=a[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},u={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return this.begin("open_directive"),21;case 1:return this.begin("type_directive"),22;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),24;case 4:return 23;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return 18;case 13:return 19;case 14:return 20;case 15:return 15;case 16:return 6;case 17:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};function c(){this.yy={}}return l.lexer=u,c.prototype=l,l.Parser=c,new c}();t.parser=r,t.Parser=r.Parser,t.parse=function(){return r.parse.apply(r,arguments)},t.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var r=n("?0f62").readFileSync(n("./node_modules/path-browserify/index.js").normalize(e[1]),"utf8");return t.parser.parse(r)},n.c[n.s]===e&&t.main(process.argv.slice(1))},"./node_modules/@braintree/sanitize-url/index.js":e=>{"use strict";var t=/^(%20|\s)*(javascript|data)/im,n=/[^\x20-\x7E]/gim,r=/^([^:]+):/gm,o=[".","/"];e.exports={sanitizeUrl:function(e){if(!e)return"about:blank";var s,a,i=e.replace(n,"").trim();return function(e){return o.indexOf(e[0])>-1}(i)?i:(a=i.match(r))?(s=a[0],t.test(s)?"about:blank":i):"about:blank"}}},"./src/config.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{defaultConfig:()=>l,updateCurrentConfig:()=>h,setSiteConfig:()=>m,saveConfigFromInitilize:()=>p,updateSiteConfig:()=>g,getSiteConfig:()=>_,setConfig:()=>y,getConfig:()=>v,sanitize:()=>b,addDirective:()=>j,reset:()=>x});var r=n("./src/utils.js"),o=n("./src/logger.js"),s=n("./src/themes/index.js"),a=n("./src/defaultConfig.js");function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var d,l=Object.freeze(a.default),u=(0,r.assignWithDepth)({},l),c=[],f=(0,r.assignWithDepth)({},l),h=function(e,t){for(var n=(0,r.assignWithDepth)({},e),o={},a=0;a-1||t[n].indexOf(">")>-1||t[n].indexOf("url(data:")>-1)&&delete t[n],"object"===i(t[n])&&e(t[n])}))},j=function(e){e.fontFamily&&(e.themeVariables&&e.themeVariables.fontFamily||(e.themeVariables={fontFamily:e.fontFamily})),c.push(e),h(u,c)},x=function(){h(u,c=[])}},"./src/dagre-wrapper/clusters.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{insertCluster:()=>c,getClusterTitleWidth:()=>f,clear:()=>h,positionCluster:()=>m});var r=n("./src/dagre-wrapper/intersect/intersect-rect.js"),o=n("./src/logger.js"),s=n("./src/dagre-wrapper/createLabel.js"),a=n("./node_modules/d3/src/index.js"),i=n("./src/config.js"),d=n("./src/diagrams/common/common.js"),l={rect:function(e,t){o.log.trace("Creating subgraph rect for ",t.id,t);var n=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),l=n.insert("rect",":first-child"),u=n.insert("g").attr("class","cluster-label"),c=u.node().appendChild((0,s.default)(t.labelText,t.labelStyle,void 0,!0)),f=c.getBBox();if((0,d.evaluate)((0,i.getConfig)().flowchart.htmlLabels)){var h=c.children[0],m=(0,a.select)(c);f=h.getBoundingClientRect(),m.attr("width",f.width),m.attr("height",f.height)}var p=0*t.padding,g=p/2,_=t.width<=f.width+p?f.width+p:t.width;t.width<=f.width+p?t.diff=(f.width-t.width)/2:t.diff=-t.padding/2,o.log.trace("Data ",t,JSON.stringify(t)),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-_/2).attr("y",t.y-t.height/2-g).attr("width",_).attr("height",t.height+p),u.attr("transform","translate("+(t.x-f.width/2)+", "+(t.y-t.height/2+t.padding/3)+")");var y=l.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(e){return(0,r.default)(t,e)},n},roundedWithTitle:function(e,t){var n=e.insert("g").attr("class",t.classes).attr("id",t.id),o=n.insert("rect",":first-child"),l=n.insert("g").attr("class","cluster-label"),u=n.append("rect"),c=l.node().appendChild((0,s.default)(t.labelText,t.labelStyle,void 0,!0)),f=c.getBBox();if((0,d.evaluate)((0,i.getConfig)().flowchart.htmlLabels)){var h=c.children[0],m=(0,a.select)(c);f=h.getBoundingClientRect(),m.attr("width",f.width),m.attr("height",f.height)}f=c.getBBox();var p=0*t.padding,g=p/2,_=t.width<=f.width+t.padding?f.width+t.padding:t.width;t.width<=f.width+t.padding?t.diff=(f.width+0*t.padding-t.width)/2:t.diff=-t.padding/2,o.attr("class","outer").attr("x",t.x-_/2-g).attr("y",t.y-t.height/2-g).attr("width",_+p).attr("height",t.height+p),u.attr("class","inner").attr("x",t.x-_/2-g).attr("y",t.y-t.height/2-g+f.height-1).attr("width",_+p).attr("height",t.height+p-f.height-3),l.attr("transform","translate("+(t.x-f.width/2)+", "+(t.y-t.height/2-t.padding/3+((0,d.evaluate)((0,i.getConfig)().flowchart.htmlLabels)?5:3))+")");var y=o.node().getBBox();return t.height=y.height,t.intersect=function(e){return(0,r.default)(t,e)},n},noteGroup:function(e,t){var n=e.insert("g").attr("class","note-cluster").attr("id",t.id),o=n.insert("rect",":first-child"),s=0*t.padding,a=s/2;o.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");var i=o.node().getBBox();return t.width=i.width,t.height=i.height,t.intersect=function(e){return(0,r.default)(t,e)},n},divider:function(e,t){var n=e.insert("g").attr("class",t.classes).attr("id",t.id),o=n.insert("rect",":first-child"),s=0*t.padding,a=s/2;o.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);var i=o.node().getBBox();return t.width=i.width,t.height=i.height,t.diff=-t.padding/2,t.intersect=function(e){return(0,r.default)(t,e)},n}},u={},c=function(e,t){o.log.trace("Inserting cluster");var n=t.shape||"rect";u[t.id]=l[n](e,t)},f=function(e,t){var n=(0,s.default)(t.labelText,t.labelStyle,void 0,!0);e.node().appendChild(n);var r=n.getBBox().width;return e.node().removeChild(n),r},h=function(){u={}},m=function(e){o.log.info("Position cluster ("+e.id+", "+e.x+", "+e.y+")"),u[e.id].attr("transform","translate("+e.x+", "+e.y+")")}},"./src/dagre-wrapper/createLabel.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/d3/src/index.js"),o=n("./src/logger.js"),s=n("./src/config.js"),a=n("./src/diagrams/common/common.js");function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}const d=function(e,t,n,d){var l,u,c,f,h,m,p=e||"";if("object"===i(p)&&(p=p[0]),(0,a.evaluate)((0,s.getConfig)().flowchart.htmlLabels))return p=p.replace(/\\n|\n/g,"
"),o.log.info("vertexText"+p),l={isNode:d,label:p.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(e){return"")})),labelStyle:t.replace("fill:","color:")},c=(0,r.select)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),f=c.append("xhtml:div"),h=l.label,m=l.isNode?"nodeLabel":"edgeLabel",f.html('"+h+""),(u=l.labelStyle)&&f.attr("style",u),f.style("display","inline-block"),f.style("white-space","nowrap"),f.attr("xmlns","http://www.w3.org/1999/xhtml"),c.node();var g=document.createElementNS("http://www.w3.org/2000/svg","text");g.setAttribute("style",t.replace("color:","fill:"));var _=[];_="string"==typeof p?p.split(/\\n|\n|/gi):Array.isArray(p)?p:[];for(var y=0;y<_.length;y++){var v=document.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","0"),n?v.setAttribute("class","title-row"):v.setAttribute("class","row"),v.textContent=_[y].trim(),g.appendChild(v)}return g}},"./src/dagre-wrapper/edges.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{clear:()=>c,insertEdgeLabel:()=>f,positionEdgeLabel:()=>m,intersection:()=>p,insertEdge:()=>_});var r=n("./src/logger.js"),o=n("./src/dagre-wrapper/createLabel.js"),s=n("./node_modules/d3/src/index.js"),a=n("./src/config.js"),i=n("./src/utils.js"),d=n("./src/diagrams/common/common.js"),l={},u={},c=function(){l={},u={}},f=function(e,t){var n=(0,o.default)(t.label,t.labelStyle),r=e.insert("g").attr("class","edgeLabel"),i=r.insert("g").attr("class","label");i.node().appendChild(n);var c,f=n.getBBox();if((0,d.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var m=n.children[0],p=(0,s.select)(n);f=m.getBoundingClientRect(),p.attr("width",f.width),p.attr("height",f.height)}if(i.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),l[t.id]=r,t.width=f.width,t.height=f.height,t.startLabelLeft){var g=(0,o.default)(t.startLabelLeft,t.labelStyle),_=e.insert("g").attr("class","edgeTerminals"),y=_.insert("g").attr("class","inner");c=y.node().appendChild(g);var v=g.getBBox();y.attr("transform","translate("+-v.width/2+", "+-v.height/2+")"),u[t.id]||(u[t.id]={}),u[t.id].startLeft=_,h(c,t.startLabelLeft)}if(t.startLabelRight){var b=(0,o.default)(t.startLabelRight,t.labelStyle),j=e.insert("g").attr("class","edgeTerminals"),x=j.insert("g").attr("class","inner");c=j.node().appendChild(b),x.node().appendChild(b);var w=b.getBBox();x.attr("transform","translate("+-w.width/2+", "+-w.height/2+")"),u[t.id]||(u[t.id]={}),u[t.id].startRight=j,h(c,t.startLabelRight)}if(t.endLabelLeft){var k=(0,o.default)(t.endLabelLeft,t.labelStyle),C=e.insert("g").attr("class","edgeTerminals"),T=C.insert("g").attr("class","inner");c=T.node().appendChild(k);var E=k.getBBox();T.attr("transform","translate("+-E.width/2+", "+-E.height/2+")"),C.node().appendChild(k),u[t.id]||(u[t.id]={}),u[t.id].endLeft=C,h(c,t.endLabelLeft)}if(t.endLabelRight){var S=(0,o.default)(t.endLabelRight,t.labelStyle),M=e.insert("g").attr("class","edgeTerminals"),A=M.insert("g").attr("class","inner");c=A.node().appendChild(S);var N=S.getBBox();A.attr("transform","translate("+-N.width/2+", "+-N.height/2+")"),M.node().appendChild(S),u[t.id]||(u[t.id]={}),u[t.id].endRight=M,h(c,t.endLabelRight)}};function h(e,t){(0,a.getConfig)().flowchart.htmlLabels&&e&&(e.style.width=9*t.length+"px",e.style.height="12px")}var m=function(e,t){r.log.info("Moving label abc78 ",e.id,e.label,l[e.id]);var n=t.updatedPath?t.updatedPath:t.originalPath;if(e.label){var o=l[e.id],s=e.x,a=e.y;if(n){var d=i.default.calcLabelPosition(n);r.log.info("Moving label from (",s,",",a,") to (",d.x,",",d.y,") abc78")}o.attr("transform","translate("+s+", "+a+")")}if(e.startLabelLeft){var c=u[e.id].startLeft,f=e.x,h=e.y;if(n){var m=i.default.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",n);f=m.x,h=m.y}c.attr("transform","translate("+f+", "+h+")")}if(e.startLabelRight){var p=u[e.id].startRight,g=e.x,_=e.y;if(n){var y=i.default.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",n);g=y.x,_=y.y}p.attr("transform","translate("+g+", "+_+")")}if(e.endLabelLeft){var v=u[e.id].endLeft,b=e.x,j=e.y;if(n){var x=i.default.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",n);b=x.x,j=x.y}v.attr("transform","translate("+b+", "+j+")")}if(e.endLabelRight){var w=u[e.id].endRight,k=e.x,C=e.y;if(n){var T=i.default.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",n);k=T.x,C=T.y}w.attr("transform","translate("+k+", "+C+")")}},p=function(e,t,n){r.log.warn("intersection calc abc89:\n outsidePoint: ".concat(JSON.stringify(t),"\n insidePoint : ").concat(JSON.stringify(n),"\n node : x:").concat(e.x," y:").concat(e.y," w:").concat(e.width," h:").concat(e.height));var o=e.x,s=e.y,a=Math.abs(o-n.x),i=e.width/2,d=n.xMath.abs(o-t.x)*l){var f=n.y=a||s>=i}(t,e)||s)r.log.warn("abc88 outside",e,o),o=e,s||n.push(e);else{var a=p(t,o,e);r.log.warn("abc88 inside",e,o,a),r.log.warn("abc88 intersection",a);var i=!1;n.forEach((function(e){i=i||e.x===a.x&&e.y===a.y})),n.find((function(e){return e.x===a.x&&e.y===a.y}))?r.log.warn("abc88 no intersect",a,n):n.push(a),s=!0}})),r.log.warn("abc88 returning points",n),n},_=function(e,t,n,o,i,d){var l=n.points,u=!1,c=d.node(t.v),f=d.node(t.w);r.log.info("abc88 InsertEdge: ",n),f.intersect&&c.intersect&&((l=l.slice(1,n.points.length-1)).unshift(c.intersect(l[0])),r.log.info("Last point",l[l.length-1],f,f.intersect(l[l.length-1])),l.push(f.intersect(l[l.length-1]))),n.toCluster&&(r.log.info("to cluster abc88",o[n.toCluster]),l=g(n.points,o[n.toCluster].node),u=!0),n.fromCluster&&(r.log.info("from cluster abc88",o[n.fromCluster]),l=g(l.reverse(),o[n.fromCluster].node).reverse(),u=!0);var h,m=l.filter((function(e){return!Number.isNaN(e.y)}));h=("graph"===i||"flowchart"===i)&&n.curve||s.curveBasis;var p,_=(0,s.line)().x((function(e){return e.x})).y((function(e){return e.y})).curve(h);switch(n.thickness){case"normal":p="edge-thickness-normal";break;case"thick":p="edge-thickness-thick";break;default:p=""}switch(n.pattern){case"solid":p+=" edge-pattern-solid";break;case"dotted":p+=" edge-pattern-dotted";break;case"dashed":p+=" edge-pattern-dashed"}var y=e.append("path").attr("d",_(m)).attr("id",n.id).attr("class"," "+p+(n.classes?" "+n.classes:"")).attr("style",n.style),v="";switch((0,a.getConfig)().state.arrowMarkerAbsolute&&(v=(v=(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),r.log.info("arrowTypeStart",n.arrowTypeStart),r.log.info("arrowTypeEnd",n.arrowTypeEnd),n.arrowTypeStart){case"arrow_cross":y.attr("marker-start","url("+v+"#"+i+"-crossStart)");break;case"arrow_point":y.attr("marker-start","url("+v+"#"+i+"-pointStart)");break;case"arrow_barb":y.attr("marker-start","url("+v+"#"+i+"-barbStart)");break;case"arrow_circle":y.attr("marker-start","url("+v+"#"+i+"-circleStart)");break;case"aggregation":y.attr("marker-start","url("+v+"#"+i+"-aggregationStart)");break;case"extension":y.attr("marker-start","url("+v+"#"+i+"-extensionStart)");break;case"composition":y.attr("marker-start","url("+v+"#"+i+"-compositionStart)");break;case"dependency":y.attr("marker-start","url("+v+"#"+i+"-dependencyStart)")}switch(n.arrowTypeEnd){case"arrow_cross":y.attr("marker-end","url("+v+"#"+i+"-crossEnd)");break;case"arrow_point":y.attr("marker-end","url("+v+"#"+i+"-pointEnd)");break;case"arrow_barb":y.attr("marker-end","url("+v+"#"+i+"-barbEnd)");break;case"arrow_circle":y.attr("marker-end","url("+v+"#"+i+"-circleEnd)");break;case"aggregation":y.attr("marker-end","url("+v+"#"+i+"-aggregationEnd)");break;case"extension":y.attr("marker-end","url("+v+"#"+i+"-extensionEnd)");break;case"composition":y.attr("marker-end","url("+v+"#"+i+"-compositionEnd)");break;case"dependency":y.attr("marker-end","url("+v+"#"+i+"-dependencyEnd)")}var b={};return u&&(b.updatedPath=l),b.originalPath=n.points,b}},"./src/dagre-wrapper/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{render:()=>p});var r=n("./node_modules/dagre/index.js"),o=n.n(r),s=n("./node_modules/graphlib/index.js"),a=n.n(s),i=n("./src/dagre-wrapper/markers.js"),d=n("./src/dagre-wrapper/shapes/util.js"),l=n("./src/dagre-wrapper/mermaid-graphlib.js"),u=n("./src/dagre-wrapper/nodes.js"),c=n("./src/dagre-wrapper/clusters.js"),f=n("./src/dagre-wrapper/edges.js"),h=n("./src/logger.js"),m=function e(t,n,r,s){h.log.info("Graph in recursive render: XXX",a().json.write(n),s);var i=n.graph().rankdir;h.log.trace("Dir in recursive render - dir:",i);var m=t.insert("g").attr("class","root");n.nodes()?h.log.info("Recursive render XXX",n.nodes()):h.log.info("No nodes found for",n),n.edges().length>0&&h.log.trace("Recursive edges",n.edge(n.edges()[0]));var p=m.insert("g").attr("class","clusters"),g=m.insert("g").attr("class","edgePaths"),_=m.insert("g").attr("class","edgeLabels"),y=m.insert("g").attr("class","nodes");n.nodes().forEach((function(t){var o=n.node(t);if(void 0!==s){var a=JSON.parse(JSON.stringify(s.clusterData));h.log.info("Setting data for cluster XXX (",t,") ",a,s),n.setNode(s.id,a),n.parent(t)||(h.log.trace("Setting parent",t,s.id),n.setParent(t,s.id,a))}if(h.log.info("(Insert) Node XXX"+t+": "+JSON.stringify(n.node(t))),o&&o.clusterNode){h.log.info("Cluster identified",t,o.width,n.node(t));var c=e(y,o.graph,r,n.node(t)),f=c.elem;(0,d.updateNodeBounds)(o,f),o.diff=c.diff||0,h.log.info("Node bounds (abc123)",t,o,o.width,o.x,o.y),(0,u.setNodeElem)(f,o),h.log.warn("Recursive render complete ",f,o)}else n.children(t).length>0?(h.log.info("Cluster - the non recursive path XXX",t,o.id,o,n),h.log.info((0,l.findNonClusterChild)(o.id,n)),l.clusterDb[o.id]={id:(0,l.findNonClusterChild)(o.id,n),node:o}):(h.log.info("Node - the non recursive path",t,o.id,o),(0,u.insertNode)(y,n.node(t),i))})),n.edges().forEach((function(e){var t=n.edge(e.v,e.w,e.name);h.log.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),h.log.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(n.edge(e))),h.log.info("Fix",l.clusterDb,"ids:",e.v,e.w,"Translateing: ",l.clusterDb[e.v],l.clusterDb[e.w]),(0,f.insertEdgeLabel)(_,t)})),n.edges().forEach((function(e){h.log.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e))})),h.log.info("#############################################"),h.log.info("### Layout ###"),h.log.info("#############################################"),h.log.info(n),o().layout(n),h.log.info("Graph after layout:",a().json.write(n));var v=0;return(0,l.sortNodesByHierarchy)(n).forEach((function(e){var t=n.node(e);h.log.info("Position "+e+": "+JSON.stringify(n.node(e))),h.log.info("Position "+e+": ("+t.x,","+t.y,") width: ",t.width," height: ",t.height),t&&t.clusterNode?(0,u.positionNode)(t):n.children(e).length>0?((0,c.insertCluster)(p,t),l.clusterDb[t.id].node=t):(0,u.positionNode)(t)})),n.edges().forEach((function(e){var t=n.edge(e);h.log.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t),t);var o=(0,f.insertEdge)(g,e,t,l.clusterDb,r,n);(0,f.positionEdgeLabel)(t,o)})),n.nodes().forEach((function(e){var t=n.node(e);h.log.info(e,t.type,t.diff),"group"===t.type&&(v=t.diff)})),{elem:m,diff:v}},p=function(e,t,n,r,o){(0,i.default)(e,n,r,o),(0,u.clear)(),(0,f.clear)(),(0,c.clear)(),(0,l.clear)(),h.log.warn("Graph at first:",a().json.write(t)),(0,l.adjustClustersAndEdges)(t),h.log.warn("Graph after:",a().json.write(t)),m(e,t,r)}},"./src/dagre-wrapper/intersect/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n("./src/dagre-wrapper/intersect/intersect-node.js"),o=n.n(r),s=n("./src/dagre-wrapper/intersect/intersect-circle.js"),a=n("./src/dagre-wrapper/intersect/intersect-ellipse.js"),i=n("./src/dagre-wrapper/intersect/intersect-polygon.js"),d=n("./src/dagre-wrapper/intersect/intersect-rect.js");const l={node:o(),circle:s.default,ellipse:a.default,polygon:i.default,rect:d.default}},"./src/dagre-wrapper/intersect/intersect-circle.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./src/dagre-wrapper/intersect/intersect-ellipse.js");const o=function(e,t,n){return(0,r.default)(e,t,t,n)}},"./src/dagre-wrapper/intersect/intersect-ellipse.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function(e,t,n,r){var o=e.x,s=e.y,a=o-r.x,i=s-r.y,d=Math.sqrt(t*t*i*i+n*n*a*a),l=Math.abs(t*n*a/d);r.x{"use strict";function r(e,t){return e*t>0}n.r(t),n.d(t,{default:()=>o});const o=function(e,t,n,o){var s,a,i,d,l,u,c,f,h,m,p,g,_;if(s=t.y-e.y,i=e.x-t.x,l=t.x*e.y-e.x*t.y,h=s*n.x+i*n.y+l,m=s*o.x+i*o.y+l,!(0!==h&&0!==m&&r(h,m)||(a=o.y-n.y,d=n.x-o.x,u=o.x*n.y-n.x*o.y,c=a*e.x+d*e.y+u,f=a*t.x+d*t.y+u,0!==c&&0!==f&&r(c,f)||0==(p=s*d-a*i))))return g=Math.abs(p/2),{x:(_=i*u-d*l)<0?(_-g)/p:(_+g)/p,y:(_=a*l-s*u)<0?(_-g)/p:(_+g)/p}}},"./src/dagre-wrapper/intersect/intersect-node.js":e=>{e.exports=function(e,t){return e.intersect(t)}},"./src/dagre-wrapper/intersect/intersect-polygon.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./src/dagre-wrapper/intersect/intersect-line.js");const o=function(e,t,n){var o=e.x,s=e.y,a=[],i=Number.POSITIVE_INFINITY,d=Number.POSITIVE_INFINITY;"function"==typeof t.forEach?t.forEach((function(e){i=Math.min(i,e.x),d=Math.min(d,e.y)})):(i=Math.min(i,t.x),d=Math.min(d,t.y));for(var l=o-e.width/2-i,u=s-e.height/2-d,c=0;c1&&a.sort((function(e,t){var r=e.x-n.x,o=e.y-n.y,s=Math.sqrt(r*r+o*o),a=t.x-n.x,i=t.y-n.y,d=Math.sqrt(a*a+i*i);return s{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function(e,t){var n,r,o=e.x,s=e.y,a=t.x-o,i=t.y-s,d=e.width/2,l=e.height/2;return Math.abs(i)*d>Math.abs(a)*l?(i<0&&(l=-l),n=0===i?0:l*a/i,r=l):(a<0&&(d=-d),n=d,r=0===a?0:d*i/a),{x:o+n,y:s+r}}},"./src/dagre-wrapper/markers.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./src/logger.js"),o={extension:function(e,t,n){r.log.trace("Making markers for ",n),e.append("defs").append("marker").attr("id",t+"-extensionStart").attr("class","marker extension "+t).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:function(e,t){e.append("defs").append("marker").attr("id",t+"-compositionStart").attr("class","marker composition "+t).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:function(e,t){e.append("defs").append("marker").attr("id",t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:function(e,t){e.append("defs").append("marker").attr("id",t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},point:function(e,t){e.append("marker").attr("id",t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:function(e,t){e.append("marker").attr("id",t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:function(e,t){e.append("marker").attr("id",t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:function(e,t){e.append("defs").append("marker").attr("id",t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}};const s=function(e,t,n,r){t.forEach((function(t){o[t](e,n,r)}))}},"./src/dagre-wrapper/mermaid-graphlib.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{clusterDb:()=>a,clear:()=>l,extractDecendants:()=>f,validate:()=>h,findNonClusterChild:()=>m,adjustClustersAndEdges:()=>g,extractor:()=>_,sortNodesByHierarchy:()=>v});var r=n("./src/logger.js"),o=n("./node_modules/graphlib/index.js"),s=n.n(o),a={},i={},d={},l=function(){i={},d={},a={}},u=function(e,t){return r.log.trace("In isDecendant",t," ",e," = ",i[t].indexOf(e)>=0),i[t].indexOf(e)>=0},c=function e(t,n,o,s){r.log.warn("Copying children of ",t,"root",s,"data",n.node(t),s);var a=n.children(t)||[];t!==s&&a.push(t),r.log.warn("Copying (nodes) clusterId",t,"nodes",a),a.forEach((function(a){if(n.children(a).length>0)e(a,n,o,s);else{var d=n.node(a);r.log.info("cp ",a," to ",s," with parent ",t),o.setNode(a,d),s!==n.parent(a)&&(r.log.warn("Setting parent",a,n.parent(a)),o.setParent(a,n.parent(a))),t!==s&&a!==t?(r.log.debug("Setting parent",a,t),o.setParent(a,t)):(r.log.info("In copy ",t,"root",s,"data",n.node(t),s),r.log.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==s,"node!==clusterId",a!==t));var l=n.edges(a);r.log.debug("Copying Edges",l),l.forEach((function(e){r.log.info("Edge",e);var a=n.edge(e.v,e.w,e.name);r.log.info("Edge data",a,s);try{!function(e,t){return r.log.info("Decendants of ",t," is ",i[t]),r.log.info("Edge is ",e),e.v!==t&&e.w!==t&&(i[t]?(r.log.info("Here "),i[t].indexOf(e.v)>=0||!!u(e.v,t)||!!u(e.w,t)||i[t].indexOf(e.w)>=0):(r.log.debug("Tilt, ",t,",not in decendants"),!1))}(e,s)?r.log.info("Skipping copy of edge ",e.v,"--\x3e",e.w," rootId: ",s," clusterId:",t):(r.log.info("Copying as ",e.v,e.w,a,e.name),o.setEdge(e.v,e.w,a,e.name),r.log.info("newGraph edges ",o.edges(),o.edge(o.edges()[0])))}catch(e){r.log.error(e)}}))}r.log.debug("Removing node",a),n.removeNode(a)}))},f=function e(t,n){for(var r=n.children(t),o=[].concat(r),s=0;s0)return r.log.trace("The node ",t[n].v," is part of and edge even though it has children"),!1;if(e.children(t[n].w).length>0)return r.log.trace("The node ",t[n].w," is part of and edge even though it has children"),!1}return!0},m=function e(t,n){r.log.trace("Searching",t);var o=n.children(t);if(r.log.trace("Searching children of id ",t,o),o.length<1)return r.log.trace("This is a valid node",t),t;for(var s=0;s ",a),a}},p=function(e){return a[e]&&a[e].externalConnections&&a[e]?a[e].id:e},g=function(e,t){!e||t>10?r.log.debug("Opting out, no graph "):(r.log.debug("Opting in, graph "),e.nodes().forEach((function(t){e.children(t).length>0&&(r.log.warn("Cluster identified",t," Replacement id in edges: ",m(t,e)),i[t]=f(t,e),a[t]={id:m(t,e),clusterData:e.node(t)})})),e.nodes().forEach((function(t){var n=e.children(t),o=e.edges();n.length>0?(r.log.debug("Cluster identified",t,i),o.forEach((function(e){e.v!==t&&e.w!==t&&u(e.v,t)^u(e.w,t)&&(r.log.warn("Edge: ",e," leaves cluster ",t),r.log.warn("Decendants of XXX ",t,": ",i[t]),a[t].externalConnections=!0)}))):r.log.debug("Not a cluster ",t,i)})),e.edges().forEach((function(t){var n=e.edge(t);r.log.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),r.log.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));var o=t.v,s=t.w;r.log.warn("Fix XXX",a,"ids:",t.v,t.w,"Translateing: ",a[t.v]," --- ",a[t.w]),(a[t.v]||a[t.w])&&(r.log.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),o=p(t.v),s=p(t.w),e.removeEdge(t.v,t.w,t.name),o!==t.v&&(n.fromCluster=t.v),s!==t.w&&(n.toCluster=t.w),r.log.warn("Fix Replacing with XXX",o,s,t.name),e.setEdge(o,s,n,t.name))})),r.log.warn("Adjusted Graph",s().json.write(e)),_(e,0),r.log.trace(a))},_=function e(t,n){if(r.log.warn("extractor - ",n,s().json.write(t),t.children("D")),n>10)r.log.error("Bailing out");else{for(var o=t.nodes(),i=!1,d=0;d0}if(i){r.log.debug("Nodes = ",o,n);for(var f=0;f0){r.log.warn("Cluster without external connections, without a parent and with children",h,n);var m="TB"===t.graph().rankdir?"LR":"TB";a[h]&&a[h].clusterData&&a[h].clusterData.dir&&(m=a[h].clusterData.dir,r.log.warn("Fixing dir",a[h].clusterData.dir,m));var p=new(s().Graph)({multigraph:!0,compound:!0}).setGraph({rankdir:m,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));r.log.warn("Old graph before copy",s().json.write(t)),c(h,t,p,h),t.setNode(h,{clusterNode:!0,id:h,clusterData:a[h].clusterData,labelText:a[h].labelText,graph:p}),r.log.warn("New graph after copy node: (",h,")",s().json.write(p)),r.log.debug("Old graph after copy",s().json.write(t))}else r.log.warn("Cluster ** ",h," **not meeting the criteria !externalConnections:",!a[h].externalConnections," no parent: ",!t.parent(h)," children ",t.children(h)&&t.children(h).length>0,t.children("D"),n),r.log.debug(a);else r.log.debug("Not a cluster",h,n)}o=t.nodes(),r.log.warn("New list of nodes",o);for(var g=0;g{"use strict";n.r(t),n.d(t,{insertNode:()=>g,setNodeElem:()=>_,clear:()=>y,positionNode:()=>v});var r=n("./node_modules/d3/src/index.js"),o=n("./src/logger.js"),s=n("./src/dagre-wrapper/shapes/util.js"),a=n("./src/config.js"),i=n("./src/dagre-wrapper/intersect/index.js"),d=n("./src/dagre-wrapper/createLabel.js"),l=n("./src/dagre-wrapper/shapes/note.js"),u=n("./src/diagrams/class/svgDraw.js"),c=n("./src/diagrams/common/common.js");function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}var h=function(e,t,n){var r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),o=70,a=10;"LR"===n&&(o=10,a=70);var d=r.append("rect").attr("x",-1*o/2).attr("y",-1*a/2).attr("width",o).attr("height",a).attr("class","fork-join");return(0,s.updateNodeBounds)(t,d),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(e){return i.default.rect(t,e)},r},m={question:function(e,t){var n=(0,s.labelHelper)(e,t,void 0,!0),r=n.shapeSvg,a=n.bbox,d=a.width+t.padding+(a.height+t.padding),l=[{x:d/2,y:0},{x:d,y:-d/2},{x:d/2,y:-d},{x:0,y:-d/2}];o.log.info("Question main (Circle)");var u=(0,s.insertPolygonShape)(r,d,d,l);return u.attr("style",t.style),(0,s.updateNodeBounds)(t,u),t.intersect=function(e){return o.log.warn("Intersect called"),i.default.polygon(t,l,e)},r},rect:function(e,t){var n=(0,s.labelHelper)(e,t,"node "+t.classes,!0),r=n.shapeSvg,a=n.bbox,d=n.halfPadding;o.log.trace("Classes = ",t.classes);var l=r.insert("rect",":first-child"),u=a.width+t.padding,c=a.height+t.padding;if(l.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",-a.width/2-d).attr("y",-a.height/2-d).attr("width",u).attr("height",c),t.props){var f=new Set(Object.keys(t.props));t.props.borders&&(function(e,t,n,r){var s=[],a=function(e){s.push(e),s.push(0)},i=function(e){s.push(0),s.push(e)};t.includes("t")?(o.log.debug("add top border"),a(n)):i(n),t.includes("r")?(o.log.debug("add right border"),a(r)):i(r),t.includes("b")?(o.log.debug("add bottom border"),a(n)):i(n),t.includes("l")?(o.log.debug("add left border"),a(r)):i(r),e.attr("stroke-dasharray",s.join(" "))}(l,t.props.borders,u,c),f.delete("borders")),f.forEach((function(e){o.log.warn("Unknown node property ".concat(e))}))}return(0,s.updateNodeBounds)(t,l),t.intersect=function(e){return i.default.rect(t,e)},r},rectWithTitle:function(e,t){var n;n=t.classes?"node "+t.classes:"node default";var l,u=e.insert("g").attr("class",n).attr("id",t.domId||t.id),h=u.insert("rect",":first-child"),m=u.insert("line"),p=u.insert("g").attr("class","label"),g=t.labelText.flat?t.labelText.flat():t.labelText;l="object"===f(g)?g[0]:g,o.log.info("Label text abc79",l,g,"object"===f(g));var _=p.node().appendChild((0,d.default)(l,t.labelStyle,!0,!0)),y={width:0,height:0};if((0,c.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var v=_.children[0],b=(0,r.select)(_);y=v.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}o.log.info("Text 2",g);var j=g.slice(1,g.length),x=_.getBBox(),w=p.node().appendChild((0,d.default)(j.join?j.join("
"):j,t.labelStyle,!0,!0));if((0,c.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var k=w.children[0],C=(0,r.select)(w);y=k.getBoundingClientRect(),C.attr("width",y.width),C.attr("height",y.height)}var T=t.padding/2;return(0,r.select)(w).attr("transform","translate( "+(y.width>x.width?0:(x.width-y.width)/2)+", "+(x.height+T+5)+")"),(0,r.select)(_).attr("transform","translate( "+(y.widtht.height/2-l)){var o=l*l*(1-r*r/(d*d));0!=o&&(o=Math.sqrt(o)),o=l-o,e.y-t.y>0&&(o=-o),n.y+=o}return n},r},start:function(e,t){var n=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),r=n.insert("circle",":first-child");return r.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),(0,s.updateNodeBounds)(t,r),t.intersect=function(e){return i.default.circle(t,7,e)},n},end:function(e,t){var n=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),r=n.insert("circle",":first-child"),o=n.insert("circle",":first-child");return o.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),r.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),(0,s.updateNodeBounds)(t,o),t.intersect=function(e){return i.default.circle(t,7,e)},n},note:l.default,subroutine:function(e,t){var n=(0,s.labelHelper)(e,t,void 0,!0),r=n.shapeSvg,o=n.bbox,a=o.width+t.padding,d=o.height+t.padding,l=[{x:0,y:0},{x:a,y:0},{x:a,y:-d},{x:0,y:-d},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-d},{x:-8,y:-d},{x:-8,y:0}],u=(0,s.insertPolygonShape)(r,a,d,l);return u.attr("style",t.style),(0,s.updateNodeBounds)(t,u),t.intersect=function(e){return i.default.polygon(t,l,e)},r},fork:h,join:h,class_box:function(e,t){var n,o=t.padding/2;n=t.classes?"node "+t.classes:"node default";var l=e.insert("g").attr("class",n).attr("id",t.domId||t.id),f=l.insert("rect",":first-child"),h=l.insert("line"),m=l.insert("line"),p=0,g=4,_=l.insert("g").attr("class","label"),y=0,v=t.classData.annotations&&t.classData.annotations[0],b=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",j=_.node().appendChild((0,d.default)(b,t.labelStyle,!0,!0)),x=j.getBBox();if((0,c.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var w=j.children[0],k=(0,r.select)(j);x=w.getBoundingClientRect(),k.attr("width",x.width),k.attr("height",x.height)}t.classData.annotations[0]&&(g+=x.height+4,p+=x.width);var C=t.classData.id;void 0!==t.classData.type&&""!==t.classData.type&&((0,a.getConfig)().flowchart.htmlLabels?C+="<"+t.classData.type+">":C+="<"+t.classData.type+">");var T=_.node().appendChild((0,d.default)(C,t.labelStyle,!0,!0));(0,r.select)(T).attr("class","classTitle");var E=T.getBBox();if((0,c.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var S=T.children[0],M=(0,r.select)(T);E=S.getBoundingClientRect(),M.attr("width",E.width),M.attr("height",E.height)}g+=E.height+4,E.width>p&&(p=E.width);var A=[];t.classData.members.forEach((function(e){var n=(0,u.parseMember)(e),o=n.displayText;(0,a.getConfig)().flowchart.htmlLabels&&(o=o.replace(//g,">"));var s=_.node().appendChild((0,d.default)(o,n.cssStyle?n.cssStyle:t.labelStyle,!0,!0)),i=s.getBBox();if((0,c.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var l=s.children[0],f=(0,r.select)(s);i=l.getBoundingClientRect(),f.attr("width",i.width),f.attr("height",i.height)}i.width>p&&(p=i.width),g+=i.height+4,A.push(s)})),g+=8;var N=[];if(t.classData.methods.forEach((function(e){var n=(0,u.parseMember)(e),o=n.displayText;(0,a.getConfig)().flowchart.htmlLabels&&(o=o.replace(//g,">"));var s=_.node().appendChild((0,d.default)(o,n.cssStyle?n.cssStyle:t.labelStyle,!0,!0)),i=s.getBBox();if((0,c.evaluate)((0,a.getConfig)().flowchart.htmlLabels)){var l=s.children[0],f=(0,r.select)(s);i=l.getBoundingClientRect(),f.attr("width",i.width),f.attr("height",i.height)}i.width>p&&(p=i.width),g+=i.height+4,N.push(s)})),g+=8,v){var D=(p-x.width)/2;(0,r.select)(j).attr("transform","translate( "+(-1*p/2+D)+", "+-1*g/2+")"),y=x.height+4}var O=(p-E.width)/2;return(0,r.select)(T).attr("transform","translate( "+(-1*p/2+O)+", "+(-1*g/2+y)+")"),y+=E.height+4,h.attr("class","divider").attr("x1",-p/2-o).attr("x2",p/2+o).attr("y1",-g/2-o+8+y).attr("y2",-g/2-o+8+y),y+=8,A.forEach((function(e){(0,r.select)(e).attr("transform","translate( "+-p/2+", "+(-1*g/2+y+4)+")"),y+=E.height+4})),y+=8,m.attr("class","divider").attr("x1",-p/2-o).attr("x2",p/2+o).attr("y1",-g/2-o+8+y).attr("y2",-g/2-o+8+y),y+=8,N.forEach((function(e){(0,r.select)(e).attr("transform","translate( "+-p/2+", "+(-1*g/2+y)+")"),y+=E.height+4})),f.attr("class","outer title-state").attr("x",-p/2-o).attr("y",-g/2-o).attr("width",p+t.padding).attr("height",g+t.padding),(0,s.updateNodeBounds)(t,f),t.intersect=function(e){return i.default.rect(t,e)},l}},p={},g=function(e,t,n){var r,o,s;t.link?("sandbox"===(0,a.getConfig)().securityLevel?s="_top":t.linkTarget&&(s=t.linkTarget||"_blank"),r=e.insert("svg:a").attr("xlink:href",t.link).attr("target",s),o=m[t.shape](r,t,n)):r=o=m[t.shape](e,t,n),t.tooltip&&o.attr("title",t.tooltip),t.class&&o.attr("class","node default "+t.class),p[t.id]=r,t.haveCallback&&p[t.id].attr("class",p[t.id].attr("class")+" clickable")},_=function(e,t){p[t.id]=e},y=function(){p={}},v=function(e){var t=p[e.id];o.log.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");var n=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+n-e.width/2)+", "+(e.y-e.height/2-8)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),n}},"./src/dagre-wrapper/shapes/note.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./src/dagre-wrapper/shapes/util.js"),o=n("./src/logger.js"),s=n("./src/dagre-wrapper/intersect/index.js");const a=function(e,t){var n=(0,r.labelHelper)(e,t,"node "+t.classes,!0),a=n.shapeSvg,i=n.bbox,d=n.halfPadding;o.log.info("Classes = ",t.classes);var l=a.insert("rect",":first-child");return l.attr("rx",t.rx).attr("ry",t.ry).attr("x",-i.width/2-d).attr("y",-i.height/2-d).attr("width",i.width+t.padding).attr("height",i.height+t.padding),(0,r.updateNodeBounds)(t,l),t.intersect=function(e){return s.default.rect(t,e)},a}},"./src/dagre-wrapper/shapes/util.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{labelHelper:()=>d,updateNodeBounds:()=>l,insertPolygonShape:()=>u});var r=n("./src/dagre-wrapper/createLabel.js"),o=n("./src/config.js"),s=n("./src/mermaidAPI.js"),a=n("./node_modules/d3/src/index.js"),i=n("./src/diagrams/common/common.js"),d=function(e,t,n,d){var l;l=n||"node default";var u=e.insert("g").attr("class",l).attr("id",t.domId||t.id),c=u.insert("g").attr("class","label").attr("style",t.labelStyle),f="string"==typeof t.labelText?t.labelText:t.labelText[0],h=c.node().appendChild((0,r.default)((0,i.sanitizeText)((0,s.decodeEntities)(f),(0,o.getConfig)()),t.labelStyle,!1,d)),m=h.getBBox();if((0,i.evaluate)((0,o.getConfig)().flowchart.htmlLabels)){var p=h.children[0],g=(0,a.select)(h);m=p.getBoundingClientRect(),g.attr("width",m.width),g.attr("height",m.height)}var _=t.padding/2;return c.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),{shapeSvg:u,bbox:m,halfPadding:_,label:c}},l=function(e,t){var n=t.node().getBBox();e.width=n.width,e.height=n.height};function u(e,t,n,r){return e.insert("polygon",":first-child").attr("points",r.map((function(e){return e.x+","+e.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+n/2+")")}},"./src/defaultConfig.js":(e,t,n)=>{"use strict";function r(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ni,default:()=>d});var a={theme:"default",themeVariables:n("./src/themes/index.js").default.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-d3"},sequence:{activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open-Sans", "sans-serif"',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open-Sans", "sans-serif"',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{arrowMarkerAbsolute:!1,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},git:{arrowMarkerAbsolute:!1,useWidth:void 0,useMaxWidth:!0},state:{dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20}};a.class.arrowMarkerAbsolute=a.arrowMarkerAbsolute,a.git.arrowMarkerAbsolute=a.arrowMarkerAbsolute;var i=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object.keys(t).reduce((function(o,a){return Array.isArray(t[a])?o:"object"===s(t[a])&&null!==t[a]?[].concat(r(o),[n+a],r(e(t[a],""))):[].concat(r(o),[n+a])}),[])}(a,"");const d=a},"./src/diagrams/class/classDb.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{parseDirective:()=>g,addClass:()=>y,lookUpDomId:()=>v,clear:()=>b,getClass:()=>j,getClasses:()=>x,getRelations:()=>w,addRelation:()=>k,addAnnotation:()=>C,addMember:()=>T,addMembers:()=>E,cleanupLabel:()=>S,setCssClass:()=>M,setLink:()=>A,setClickEvent:()=>N,bindFunctions:()=>O,lineType:()=>B,relationType:()=>R,default:()=>L});var r=n("./node_modules/d3/src/index.js"),o=n("./src/logger.js"),s=n("./src/config.js"),a=n("./src/diagrams/common/common.js"),i=n("./src/utils.js"),d=n("./src/mermaidAPI.js");function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0){var r=e.split("~");n=r[0],t=a.default.sanitizeText(r[1],s.getConfig())}return{className:n,type:t}},y=function(e){var t=_(e);void 0===f[t.className]&&(f[t.className]={id:t.className,type:t.type,cssClasses:[],methods:[],members:[],annotations:[],domId:u+t.className+"-"+h},h++)},v=function(e){for(var t=Object.keys(f),n=0;n>")?r.annotations.push(p(o.substring(2,o.length-2))):o.indexOf(")")>0?r.methods.push(p(o)):o&&r.members.push(p(o))}},E=function(e,t){Array.isArray(t)&&(t.reverse(),t.forEach((function(t){return T(e,t)})))},S=function(e){return":"===e.substring(0,1)?a.default.sanitizeText(e.substr(1).trim(),s.getConfig()):p(e.trim())},M=function(e,t){e.split(",").forEach((function(e){var n=e;e[0].match(/\d/)&&(n=u+n),void 0!==f[n]&&f[n].cssClasses.push(t)}))},A=function(e,t,n){var r=s.getConfig();e.split(",").forEach((function(e){var o=e;e[0].match(/\d/)&&(o=u+o),void 0!==f[o]&&(f[o].link=i.default.formatUrl(t,r),"sandbox"===r.securityLevel?f[o].linkTarget="_top":f[o].linkTarget="string"==typeof n?p(n):"_blank")})),M(e,"clickable")},N=function(e,t,n){e.split(",").forEach((function(e){D(e,t,n),f[e].haveCallback=!0})),M(e,"clickable")},D=function(e,t,n){var r=s.getConfig(),o=e,a=v(o);if("loose"===r.securityLevel&&void 0!==t&&void 0!==f[o]){var d=[];if("string"==typeof n){d=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(var u=0;u{"use strict";n.r(t),n.d(t,{addClasses:()=>m,addRelations:()=>p,setConf:()=>g,draw:()=>_,default:()=>v});var r=n("./node_modules/d3/src/index.js"),o=(n("./node_modules/dagre/index.js"),n("./node_modules/graphlib/index.js")),s=n.n(o),a=n("./src/logger.js"),i=n("./src/diagrams/class/classDb.js"),d=n("./src/diagrams/class/parser/classDiagram.jison"),l=n("./src/config.js"),u=n("./src/dagre-wrapper/index.js"),c=n("./src/utils.js"),f=n("./src/diagrams/common/common.js");d.parser.yy=i.default;var h={dividerMargin:10,padding:5,textHeight:10},m=function(e,t){var n=Object.keys(e);a.log.info("keys:",n),a.log.info(e),n.forEach((function(n){var r=e[n],o="";r.cssClasses.length>0&&(o=o+" "+r.cssClasses.join(" "));var s,i,d={labelStyle:""},u=void 0!==r.text?r.text:r.id;r.type,i="class_box",t.setNode(r.id,{labelStyle:d.labelStyle,shape:i,labelText:(s=u,f.default.sanitizeText(s,(0,l.getConfig)())),classData:r,rx:0,ry:0,class:o,style:d.style,id:r.id,domId:r.domId,haveCallback:r.haveCallback,link:r.link,width:"group"===r.type?500:void 0,type:r.type,padding:(0,l.getConfig)().flowchart.padding}),a.log.info("setNode",{labelStyle:d.labelStyle,shape:i,labelText:u,rx:0,ry:0,class:o,style:d.style,id:r.id,width:"group"===r.type?500:void 0,type:r.type,padding:(0,l.getConfig)().flowchart.padding})}))},p=function(e,t){var n=0;e.forEach((function(o){n++;var s={classes:"relation"};s.pattern=1==o.relation.lineType?"dashed":"solid",s.id="id"+n,"arrow_open"===o.type?s.arrowhead="none":s.arrowhead="normal",a.log.info(s,o),s.startLabelRight="none"===o.relationTitle1?"":o.relationTitle1,s.endLabelLeft="none"===o.relationTitle2?"":o.relationTitle2,s.arrowTypeStart=y(o.relation.type1),s.arrowTypeEnd=y(o.relation.type2);var i="",d="";if(void 0!==o.style){var u=(0,c.getStylesFromArray)(o.style);i=u.style,d=u.labelStyle}else i="fill:none";s.style=i,s.labelStyle=d,void 0!==o.interpolate?s.curve=(0,c.interpolateToCurve)(o.interpolate,r.curveLinear):void 0!==e.defaultInterpolate?s.curve=(0,c.interpolateToCurve)(e.defaultInterpolate,r.curveLinear):s.curve=(0,c.interpolateToCurve)(h.curve,r.curveLinear),o.text=o.title,void 0===o.text?void 0!==o.style&&(s.arrowheadStyle="fill: #333"):(s.arrowheadStyle="fill: #333",s.labelpos="c",(0,l.getConfig)().flowchart.htmlLabels?(s.labelType="html",s.label=''+o.text+""):(s.labelType="text",s.label=o.text.replace(f.default.lineBreakRegex,"\n"),void 0===o.style&&(s.style=s.style||"stroke: #333; stroke-width: 1.5px;fill:none"),s.labelStyle=s.labelStyle.replace("color:","fill:"))),t.setEdge(o.id1,o.id2,s,n)}))},g=function(e){Object.keys(e).forEach((function(t){h[t]=e[t]}))},_=function(e,t){a.log.info("Drawing class - ",t),i.default.clear(),d.parser.parse(e);var n=(0,l.getConfig)().flowchart,o=(0,l.getConfig)().securityLevel;a.log.info("config:",n);var f,h=n.nodeSpacing||50,g=n.rankSpacing||50,_=new(s().Graph)({multigraph:!0,compound:!0}).setGraph({rankdir:i.default.getDirection(),nodesep:h,ranksep:g,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),y=i.default.getClasses(),v=i.default.getRelations();a.log.info(v),m(y,_,t),p(v,_),"sandbox"===o&&(f=(0,r.select)("#i"+t));var b="sandbox"===o?(0,r.select)(f.nodes()[0].contentDocument.body):(0,r.select)("body"),j=b.select('[id="'.concat(t,'"]'));j.attr("xmlns:xlink","http://www.w3.org/1999/xlink");var x=b.select("#"+t+" g");(0,u.render)(x,_,["aggregation","extension","composition","dependency"],"classDiagram",t);var w=j.node().getBBox(),k=w.width+16,C=w.height+16;if(a.log.debug("new ViewBox 0 0 ".concat(k," ").concat(C),"translate(".concat(8-_._label.marginx,", ").concat(8-_._label.marginy,")")),(0,c.configureSvgSize)(j,C,k,n.useMaxWidth),j.attr("viewBox","0 0 ".concat(k," ").concat(C)),j.select("g").attr("transform","translate(".concat(8-_._label.marginx,", ").concat(8-w.y,")")),!n.htmlLabels)for(var T="sandbox"===o?f.nodes()[0].contentDocument:document,E=T.querySelectorAll('[id="'+t+'"] .edgeLabel .label'),S=0;S{"use strict";n.r(t),n.d(t,{setConf:()=>_,draw:()=>y,default:()=>v});var r=n("./node_modules/d3/src/index.js"),o=n("./node_modules/dagre/index.js"),s=n.n(o),a=n("./node_modules/graphlib/index.js"),i=n.n(a),d=n("./src/logger.js"),l=n("./src/diagrams/class/classDb.js"),u=n("./src/diagrams/class/parser/classDiagram.jison"),c=n("./src/diagrams/class/svgDraw.js"),f=n("./src/utils.js"),h=n("./src/config.js");u.parser.yy=l.default;var m={},p={dividerMargin:10,padding:5,textHeight:10},g=function(e){var t=Object.entries(m).find((function(t){return t[1].label===e}));if(t)return t[0]},_=function(e){Object.keys(e).forEach((function(t){p[t]=e[t]}))},y=function(e,t){m={},u.parser.yy.clear(),u.parser.parse(e),d.log.info("Rendering diagram "+e);var n,o=(0,h.getConfig)().securityLevel;"sandbox"===o&&(n=(0,r.select)("#i"+t));var a,_="sandbox"===o?(0,r.select)(n.nodes()[0].contentDocument.body):(0,r.select)("body"),y=("sandbox"===o?n.nodes()[0].contentDocument:document,_.select("[id='".concat(t,"']")));y.attr("xmlns:xlink","http://www.w3.org/1999/xlink"),(a=y).append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),a.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),a.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),a.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),a.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),a.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),a.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),a.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z");var v=new(i().Graph)({multigraph:!0});v.setGraph({isMultiGraph:!0}),v.setDefaultEdgeLabel((function(){return{}}));for(var b=l.default.getClasses(),j=Object.keys(b),x=0;x "+e.w+": "+JSON.stringify(v.edge(e))),c.default.drawEdge(y,v.edge(e),v.edge(e).relation,p))}));var C=y.node().getBBox(),T=C.width+40,E=C.height+40;(0,f.configureSvgSize)(y,E,T,p.useMaxWidth);var S="".concat(C.x-20," ").concat(C.y-20," ").concat(T," ").concat(E);d.log.debug("viewBox ".concat(S)),y.attr("viewBox",S)};const v={setConf:_,draw:y}},"./src/diagrams/class/styles.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function(e){return"g.classGroup text {\n fill: ".concat(e.nodeBorder,";\n fill: ").concat(e.classText,";\n stroke: none;\n font-family: ").concat(e.fontFamily,";\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ").concat(e.classText,";\n}\n.edgeLabel .label rect {\n fill: ").concat(e.mainBkg,";\n}\n.label text {\n fill: ").concat(e.classText,";\n}\n.edgeLabel .label span {\n background: ").concat(e.mainBkg,";\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(e.mainBkg,";\n stroke: ").concat(e.nodeBorder,";\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ").concat(e.nodeBorder,";\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ").concat(e.mainBkg,";\n stroke: ").concat(e.nodeBorder,";\n}\n\ng.classGroup line {\n stroke: ").concat(e.nodeBorder,";\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ").concat(e.mainBkg,";\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ").concat(e.nodeBorder,";\n font-size: 10px;\n}\n\n.relation {\n stroke: ").concat(e.lineColor,";\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ").concat(e.lineColor," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ").concat(e.lineColor," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(e.lineColor," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(e.lineColor," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ").concat(e.lineColor," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ").concat(e.lineColor," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ").concat(e.mainBkg," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ").concat(e.mainBkg," !important;\n stroke: ").concat(e.lineColor," !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n")}},"./src/diagrams/class/svgDraw.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{drawEdge:()=>d,drawClass:()=>l,parseMember:()=>u,default:()=>_});var r=n("./node_modules/d3/src/index.js"),o=n("./src/diagrams/class/classDb.js"),s=n("./src/utils.js"),a=n("./src/logger.js"),i=0,d=function(e,t,n,d){var l=function(e){switch(e){case o.relationType.AGGREGATION:return"aggregation";case o.relationType.EXTENSION:return"extension";case o.relationType.COMPOSITION:return"composition";case o.relationType.DEPENDENCY:return"dependency"}};t.points=t.points.filter((function(e){return!Number.isNaN(e.y)}));var u,c,f=t.points,h=(0,r.line)().x((function(e){return e.x})).y((function(e){return e.y})).curve(r.curveBasis),m=e.append("path").attr("d",h(f)).attr("id","edge"+i).attr("class","relation"),p="";d.arrowMarkerAbsolute&&(p=(p=(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),1==n.relation.lineType&&m.attr("class","relation dashed-line"),"none"!==n.relation.type1&&m.attr("marker-start","url("+p+"#"+l(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&m.attr("marker-end","url("+p+"#"+l(n.relation.type2)+"End)");var g,_,y,v,b=t.points.length,j=s.default.calcLabelPosition(t.points);if(u=j.x,c=j.y,b%2!=0&&b>1){var x=s.default.calcCardinalityPosition("none"!==n.relation.type1,t.points,t.points[0]),w=s.default.calcCardinalityPosition("none"!==n.relation.type2,t.points,t.points[b-1]);a.log.debug("cardinality_1_point "+JSON.stringify(x)),a.log.debug("cardinality_2_point "+JSON.stringify(w)),g=x.x,_=x.y,y=w.x,v=w.y}if(void 0!==n.title){var k=e.append("g").attr("class","classLabel"),C=k.append("text").attr("class","label").attr("x",u).attr("y",c).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=C;var T=C.node().getBBox();k.insert("rect",":first-child").attr("class","box").attr("x",T.x-d.padding/2).attr("y",T.y-d.padding/2).attr("width",T.width+d.padding).attr("height",T.height+d.padding)}a.log.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1&&e.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",_).attr("fill","black").attr("font-size","6").text(n.relationTitle1),void 0!==n.relationTitle2&&"none"!==n.relationTitle2&&e.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",y).attr("y",v).attr("fill","black").attr("font-size","6").text(n.relationTitle2),i++},l=function(e,t,n){a.log.info("Rendering class "+t);var r,s=t.id,i={id:s,label:t.id,width:0,height:0},d=e.append("g").attr("id",(0,o.lookUpDomId)(s)).attr("class","classGroup");r=t.link?d.append("svg:a").attr("xlink:href",t.link).attr("target",t.linkTarget).append("text").attr("y",n.textHeight+n.padding).attr("x",0):d.append("text").attr("y",n.textHeight+n.padding).attr("x",0);var l=!0;t.annotations.forEach((function(e){var t=r.append("tspan").text("«"+e+"»");l||t.attr("dy",n.textHeight),l=!1}));var u=t.id;void 0!==t.type&&""!==t.type&&(u+="<"+t.type+">");var c=r.append("tspan").text(u).attr("class","title");l||c.attr("dy",n.textHeight);var f=r.node().getBBox().height,h=d.append("line").attr("x1",0).attr("y1",n.padding+f+n.dividerMargin/2).attr("y2",n.padding+f+n.dividerMargin/2),p=d.append("text").attr("x",n.padding).attr("y",f+n.dividerMargin+n.textHeight).attr("fill","white").attr("class","classText");l=!0,t.members.forEach((function(e){m(p,e,l,n),l=!1}));var g=p.node().getBBox(),_=d.append("line").attr("x1",0).attr("y1",n.padding+f+n.dividerMargin+g.height).attr("y2",n.padding+f+n.dividerMargin+g.height),y=d.append("text").attr("x",n.padding).attr("y",f+2*n.dividerMargin+g.height+n.textHeight).attr("fill","white").attr("class","classText");l=!0,t.methods.forEach((function(e){m(y,e,l,n),l=!1}));var v=d.node().getBBox(),b=" ";t.cssClasses.length>0&&(b+=t.cssClasses.join(" "));var j=d.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",v.width+2*n.padding).attr("height",v.height+n.padding+.5*n.dividerMargin).attr("class",b).node().getBBox().width;return r.node().childNodes.forEach((function(e){e.setAttribute("x",(j-e.getBBox().width)/2)})),t.tooltip&&r.insert("title").text(t.tooltip),h.attr("x2",j),_.attr("x2",j),i.width=j,i.height=v.height+n.padding+.5*n.dividerMargin,i},u=function(e){var t=e.match(/^(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+) *(\*|\$)?$/),n=e.match(/^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/);return t&&!n?c(t):n?f(n):h(e)},c=function(e){var t="",n="";try{var r=e[1]?e[1].trim():"",o=e[2]?e[2].trim():"",s=e[3]?p(e[3].trim()):"",a=e[4]?e[4].trim():"",i=e[5]?e[5].trim():"";n=r+o+s+" "+a,t=g(i)}catch(t){n=e}return{displayText:n,cssStyle:t}},f=function(e){var t="",n="";try{var r=e[1]?e[1].trim():"",o=e[2]?e[2].trim():"",s=e[3]?p(e[3].trim()):"",a=e[4]?e[4].trim():"";n=r+o+"("+s+")"+(e[5]?" : "+p(e[5]).trim():""),t=g(a)}catch(t){n=e}return{displayText:n,cssStyle:t}},h=function(e){var t="",n="",r="",o=e.indexOf("("),s=e.indexOf(")");if(o>1&&s>o&&s<=e.length){var a="",i="",d=e.substring(0,1);d.match(/\w/)?i=e.substring(0,o).trim():(d.match(/\+|-|~|#/)&&(a=d),i=e.substring(1,o).trim());var l=e.substring(o+1,s),u=e.substring(s+1,1);n=g(u),t=a+i+"("+p(l.trim())+")",s<"".length&&""!==(r=e.substring(s+2).trim())&&(r=" : "+p(r))}else t=p(e);return{displayText:t,cssStyle:n}},m=function(e,t,n,r){var o=u(t),s=e.append("tspan").attr("x",r.padding).text(o.displayText);""!==o.cssStyle&&s.attr("style",o.cssStyle),n||s.attr("dy",r.textHeight)},p=function e(t){var n=t;return-1!=t.indexOf("~")?e(n=(n=n.replace("~","<")).replace("~",">")):n},g=function(e){switch(e){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}};const _={drawClass:l,drawEdge:d,parseMember:u}},"./src/diagrams/common/common.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{getRows:()=>s,removeEscapes:()=>a,removeScript:()=>i,sanitizeText:()=>d,sanitizeTextOrArray:()=>l,lineBreakRegex:()=>u,hasBreaks:()=>c,splitBreaks:()=>f,evaluate:()=>p,default:()=>g});var r=n("./node_modules/dompurify/dist/purify.js"),o=n.n(r),s=function(e){if(!e)return 1;var t=m(e);return(t=t.replace(/\\n/g,"#br#")).split("#br#")},a=function(e){var t=e.replace(/\\u[\dA-F]{4}/gi,(function(e){return String.fromCharCode(parseInt(e.replace(/\\u/g,""),16))}));return(t=(t=t.replace(/\\x([0-9a-f]{2})/gi,(function(e,t){return String.fromCharCode(parseInt(t,16))}))).replace(/\\[\d\d\d]{3}/gi,(function(e){return String.fromCharCode(parseInt(e.replace(/\\/g,""),8))}))).replace(/\\[\d\d\d]{2}/gi,(function(e){return String.fromCharCode(parseInt(e.replace(/\\/g,""),8))}))},i=function(e){for(var t="",n=0;n>=0;){if(!((n=e.indexOf("=0)){t+=e,n=-1;break}t+=e.substr(0,n),(n=(e=e.substr(n+1)).indexOf("<\/script>"))>=0&&(n+=9,e=e.substr(n))}var r=a(t);return(r=(r=(r=r.replace(/script>/gi,"#")).replace(/javascript:/gi,"#")).replace(/onerror=/gi,"onerror:")).replace(/')}if(void 0!==n)switch(M){case"flowchart":case"flowchart-v2":n(U,_.default.bindFunctions);break;case"gantt":n(U,x.default.bindFunctions);break;case"class":case"classDiagram":n(U,d.default.bindFunctions);break;default:n(U)}else re.log.debug("CB = undefined!");(0,ne.attachFunctions)();var W="sandbox"===p.securityLevel?"#i"+e:"#d"+e,$=(0,r.select)(W).node();return null!==$&&"function"==typeof $.remove&&(0,r.select)(W).node().remove(),U},parse:function(e){var t=i.getConfig(),n=ae.default.detectInit(e,t);n&&re.log.debug("reinit ",n);var r,o=ae.default.detectType(e,t);switch(re.log.debug("Type "+o),o){case"git":(r=M()).parser.yy=T.default;break;case"flowchart":case"flowchart-v2":_.default.clear(),(r=j()).parser.yy=_.default;break;case"sequence":(r=U()).parser.yy=H.default;break;case"gantt":(r=C()).parser.yy=x.default;break;case"class":case"classDiagram":(r=f()).parser.yy=d.default;break;case"state":case"stateDiagram":(r=W()).parser.yy=$.default;break;case"info":re.log.debug("info info info"),(r=O()).parser.yy=A.default;break;case"pie":re.log.debug("pie"),(r=R()).parser.yy=I.default;break;case"er":re.log.debug("er"),(r=g()).parser.yy=h.default;break;case"journey":re.log.debug("Journey"),(r=ee()).parser.yy=K.default;break;case"requirement":case"requirementDiagram":re.log.debug("RequirementDiagram"),(r=F()).parser.yy=z.default}return r.parser.yy.graphType=o,r.parser.yy.parseError=function(e,t){throw{str:e,hash:t}},r.parse(e),r},parseDirective:function(e,t,n,r){try{if(void 0!==t)switch(t=t.trim(),n){case"open_directive":ue={};break;case"type_directive":ue.type=t.toLowerCase();break;case"arg_directive":ue.args=JSON.parse(t);break;case"close_directive":(function(e,t,n){switch(re.log.debug("Directive type=".concat(t.type," with args:"),t.args),t.type){case"init":case"initialize":["config"].forEach((function(e){void 0!==t.args[e]&&("flowchart-v2"===n&&(n="flowchart"),t.args[n]=t.args[e],delete t.args[e])})),re.log.debug("sanitize in handleDirective",t.args),(0,ae.directiveSanitizer)(t.args),re.log.debug("sanitize in handleDirective (done)",t.args),t.args,i.addDirective(t.args);break;case"wrap":case"nowrap":e&&e.setWrap&&e.setWrap("wrap"===t.type);break;case"themeCss":re.log.warn("themeCss encountered");break;default:re.log.warn("Unhandled directive: source: '%%{".concat(t.type,": ").concat(JSON.stringify(t.args?t.args:{}),"}%%"),t)}})(e,ue,r),ue=null}}catch(e){re.log.error("Error while rendering sequenceDiagram directive: ".concat(t," jison context: ").concat(n)),re.log.error(e.message)}},initialize:function(e){e&&e.fontFamily&&(e.themeVariables&&e.themeVariables.fontFamily||(e.themeVariables={fontFamily:e.fontFamily})),i.saveConfigFromInitilize(e),e&&e.theme&&se.default[e.theme]?e.themeVariables=se.default[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=se.default.default.getThemeVariables(e.themeVariables));var t="object"===ie(e)?i.setSiteConfig(e):i.getSiteConfig();ce(t),(0,re.setLogLevel)(t.logLevel)},reinitialize:function(){},getConfig:i.getConfig,setConfig:i.setConfig,getSiteConfig:i.getSiteConfig,updateSiteConfig:i.updateSiteConfig,reset:function(){i.reset()},globalReset:function(){i.reset(i.defaultConfig),ce(i.getConfig())},defaultConfig:i.defaultConfig});(0,re.setLogLevel)(i.getConfig().logLevel),i.reset(i.getConfig());const he=fe},"./src/styles.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{calcThemeVariables:()=>p,default:()=>g});var r=n("./src/diagrams/class/styles.js"),o=n("./src/diagrams/er/styles.js"),s=n("./src/diagrams/flowchart/styles.js"),a=n("./src/diagrams/gantt/styles.js"),i=n("./src/diagrams/git/styles.js"),d=n("./src/diagrams/info/styles.js"),l=n("./src/diagrams/pie/styles.js"),u=n("./src/diagrams/requirement/styles.js"),c=n("./src/diagrams/sequence/styles.js"),f=n("./src/diagrams/state/styles.js"),h=n("./src/diagrams/user-journey/styles.js"),m={flowchart:s.default,"flowchart-v2":s.default,sequence:c.default,gantt:a.default,classDiagram:r.default,"classDiagram-v2":r.default,class:r.default,stateDiagram:f.default,state:f.default,git:i.default,info:d.default,pie:l.default,er:o.default,journey:h.default,requirement:u.default},p=function(e,t){return e.calcColors(t)};const g=function(e,t,n){return" {\n font-family: ".concat(n.fontFamily,";\n font-size: ").concat(n.fontSize,";\n fill: ").concat(n.textColor,"\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ").concat(n.errorBkgColor,";\n }\n .error-text {\n fill: ").concat(n.errorTextColor,";\n stroke: ").concat(n.errorTextColor,";\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ").concat(n.lineColor,";\n stroke: ").concat(n.lineColor,";\n }\n .marker.cross {\n stroke: ").concat(n.lineColor,";\n }\n\n svg {\n font-family: ").concat(n.fontFamily,";\n font-size: ").concat(n.fontSize,";\n }\n\n ").concat(m[e](n),"\n\n ").concat(t,"\n")}},"./src/themes/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./src/themes/theme-base.js"),o=n("./src/themes/theme-dark.js"),s=n("./src/themes/theme-default.js"),a=n("./src/themes/theme-forest.js"),i=n("./src/themes/theme-neutral.js");const d={base:{getThemeVariables:r.getThemeVariables},dark:{getThemeVariables:o.getThemeVariables},default:{getThemeVariables:s.getThemeVariables},forest:{getThemeVariables:a.getThemeVariables},neutral:{getThemeVariables:i.getThemeVariables}}},"./src/themes/theme-base.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{getThemeVariables:()=>d});var r=n("./node_modules/khroma/dist/index.js"),o=n("./src/themes/theme-helpers.js");function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{getThemeVariables:()=>d});var r=n("./node_modules/khroma/dist/index.js"),o=n("./src/themes/theme-helpers.js");function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{getThemeVariables:()=>d});var r=n("./node_modules/khroma/dist/index.js"),o=n("./src/themes/theme-helpers.js");function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{getThemeVariables:()=>d});var r=n("./node_modules/khroma/dist/index.js"),o=n("./src/themes/theme-helpers.js");function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{mkBorder:()=>o});var r=n("./node_modules/khroma/dist/index.js"),o=function(e,t){return t?(0,r.adjust)(e,{s:-40,l:10}):(0,r.adjust)(e,{s:-40,l:-10})}},"./src/themes/theme-neutral.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{getThemeVariables:()=>d});var r=n("./node_modules/khroma/dist/index.js"),o=n("./src/themes/theme-helpers.js");function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{detectInit:()=>b,detectDirective:()=>j,detectType:()=>x,isSubstringInArray:()=>k,interpolateToCurve:()=>C,formatUrl:()=>T,runFunc:()=>E,getStylesFromArray:()=>M,generateId:()=>N,random:()=>D,assignWithDepth:()=>O,getTextObj:()=>B,drawSimpleText:()=>R,wrapLabel:()=>I,calculateTextHeight:()=>L,calculateTextWidth:()=>F,calculateTextDimensions:()=>z,calculateSvgSizeAttrs:()=>q,configureSvgSize:()=>Y,initIdGeneratior:()=>U,entityDecode:()=>H,directiveSanitizer:()=>G,sanitizeCss:()=>V,default:()=>W});var r=n("./node_modules/@braintree/sanitize-url/index.js"),o=n("./node_modules/d3/src/index.js"),s=n("./src/diagrams/common/common.js"),a=n("./src/defaultConfig.js"),i=n("./src/logger.js"),d=void 0;function l(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){i=!0,s=e},f:function(){try{a||null==n.return||n.return()}finally{if(i)throw s}}}}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function f(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:null;try{var n=new RegExp("[%]{2}(?![{]".concat(y.source,")(?=[}][%]{2}).*\n"),"ig");e=e.trim().replace(n,"").replace(/'/gm,'"'),i.log.debug("Detecting diagram directive".concat(null!==t?" type:"+t:""," based on the text:").concat(e));for(var r,o=[];null!==(r=_.exec(e));)if(r.index===_.lastIndex&&_.lastIndex++,r&&!t||t&&r[1]&&r[1].match(t)||t&&r[2]&&r[2].match(t)){var s=r[1]?r[1]:r[2],a=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;o.push({type:s,args:a})}return 0===o.length&&o.push({type:e,args:null}),1===o.length?o[0]:o}catch(n){return i.log.error("ERROR: ".concat(n.message," - Unable to parse directive\n ").concat(null!==t?" type:"+t:""," based on the text:").concat(e)),{type:null,args:null}}},x=function(e,t){return(e=e.replace(_,"").replace(v,"\n")).match(/^\s*sequenceDiagram/)?"sequence":e.match(/^\s*gantt/)?"gantt":e.match(/^\s*classDiagram-v2/)?"classDiagram":e.match(/^\s*classDiagram/)?t&&t.class&&"dagre-wrapper"===t.class.defaultRenderer?"classDiagram":"class":e.match(/^\s*stateDiagram-v2/)?"stateDiagram":e.match(/^\s*stateDiagram/)?t&&t.class&&"dagre-wrapper"===t.state.defaultRenderer?"stateDiagram":"state":e.match(/^\s*gitGraph/)?"git":e.match(/^\s*flowchart/)?"flowchart-v2":e.match(/^\s*info/)?"info":e.match(/^\s*pie/)?"pie":e.match(/^\s*erDiagram/)?"er":e.match(/^\s*journey/)?"journey":e.match(/^\s*requirement/)||e.match(/^\s*requirementDiagram/)?"requirement":t&&t.flowchart&&"dagre-wrapper"===t.flowchart.defaultRenderer?"flowchart-v2":"flowchart"},w=function(e,t){var n={};return function(){for(var r=arguments.length,o=new Array(r),s=0;s1?i-1:0),l=1;l"},n),s.default.lineBreakRegex.test(e))return e;var r=e.split(" "),o=[],a="";return r.forEach((function(e,s){var i=F("".concat(e," "),n),d=F(a,n);if(i>t){var l=P(e,t,"-",n),u=l.hyphenatedStrings,c=l.remainingWord;o.push.apply(o,[a].concat(f(u))),a=c}else d+i>=t?(o.push(a),a=e):a=[a,e].filter(Boolean).join(" ");s+1===r.length&&o.push(a)})),o.filter((function(e){return""!==e})).join(n.joinWith)}),(function(e,t,n){return"".concat(e,"-").concat(t,"-").concat(n.fontSize,"-").concat(n.fontWeight,"-").concat(n.fontFamily,"-").concat(n.joinWith)})),P=w((function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=arguments.length>3?arguments[3]:void 0;r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);var o=e.split(""),s=[],a="";return o.forEach((function(e,i){var d="".concat(a).concat(e);if(F(d,r)>=t){var l=i+1,u=o.length===l,c="".concat(d).concat(n);s.push(u?d:c),a=""}else a=d})),{hyphenatedStrings:s,remainingWord:a}}),(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=arguments.length>3?arguments[3]:void 0;return"".concat(e,"-").concat(t,"-").concat(n,"-").concat(r.fontSize,"-").concat(r.fontWeight,"-").concat(r.fontFamily)})),L=function(e,t){return t=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},t),z(e,t).height},F=function(e,t){return t=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},t),z(e,t).width},z=w((function(e,t){var n=t=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},t),r=n.fontSize,a=n.fontFamily,i=n.fontWeight;if(!e)return{width:0,height:0};var d=["sans-serif",a],l=e.split(s.default.lineBreakRegex),c=[],f=(0,o.select)("body");if(!f.remove)return{width:0,height:0,lineHeight:0};for(var h=f.append("svg"),m=0,p=d;mc[1].height&&c[0].width>c[1].width&&c[0].lineHeight>c[1].lineHeight?0:1]}),(function(e,t){return"".concat(e,"-").concat(t.fontSize,"-").concat(t.fontWeight,"-").concat(t.fontFamily)})),q=function(e,t,n){var r=new Map;return r.set("height",e),n?(r.set("width","100%"),r.set("style","max-width: ".concat(t,"px;"))):r.set("width",t),r},Y=function(e,t,n,r){!function(e,t){var n,r=u(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;e.attr(o[0],o[1])}}catch(e){r.e(e)}finally{r.f()}}(e,q(t,n,r))},U=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.deterministic=t,this.seed=n,this.count=n?n.length:0}var t,n;return t=e,(n=[{key:"next",value:function(){return this.deterministic?this.count++:Date.now()}}])&&l(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}(),H=function(e){return p=p||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),p.innerHTML=e,unescape(p.textContent)},G=function e(t){i.log.debug("directiveSanitizer called with",t),"object"===c(t)&&(t.length?t.forEach((function(t){return e(t)})):Object.keys(t).forEach((function(n){i.log.debug("Checking key",n),0===n.indexOf("__")&&(i.log.debug("sanitize deleting __ option",n),delete t[n]),n.indexOf("proto")>=0&&(i.log.debug("sanitize deleting proto option",n),delete t[n]),n.indexOf("constr")>=0&&(i.log.debug("sanitize deleting constr option",n),delete t[n]),n.indexOf("themeCSS")>=0&&(i.log.debug("sanitizing themeCss option"),t[n]=V(t[n])),a.configKeys.indexOf(n)<0?(i.log.debug("sanitize deleting option",n),delete t[n]):"object"===c(t[n])&&(i.log.debug("sanitize deleting object",n),e(t[n]))})))},V=function(e){return(e.match(/\{/g)||[]).length!==(e.match(/\}/g)||[]).length?"{ /* ERROR: Unbalanced CSS */ }":e};const W={assignWithDepth:O,wrapLabel:I,calculateTextHeight:L,calculateTextWidth:F,calculateTextDimensions:z,calculateSvgSizeAttrs:q,configureSvgSize:Y,detectInit:b,detectDirective:j,detectType:x,isSubstringInArray:k,interpolateToCurve:C,calcLabelPosition:function(e){return function(e){var t,n=0;e.forEach((function(e){n+=S(e,t),t=e}));var r=n/2,o=void 0;return t=void 0,e.forEach((function(e){if(t&&!o){var n=S(e,t);if(n=1&&(o={x:e.x,y:e.y}),s>0&&s<1&&(o={x:(1-s)*t.x+s*e.x,y:(1-s)*t.y+s*e.y})}}t=e})),o}(e)},calcCardinalityPosition:function(e,t,n){var r;i.log.info("our points",t),t[0]!==n&&(t=t.reverse()),t.forEach((function(e){S(e,r),r=e}));var o,s=25;r=void 0,t.forEach((function(e){if(r&&!o){var t=S(e,r);if(t=1&&(o={x:e.x,y:e.y}),n>0&&n<1&&(o={x:(1-n)*r.x+n*e.x,y:(1-n)*r.y+n*e.y})}}r=e}));var a=e?10:5,d=Math.atan2(t[0].y-o.y,t[0].x-o.x),l={x:0,y:0};return l.x=Math.sin(d)*a+(t[0].x+o.x)/2,l.y=-Math.cos(d)*a+(t[0].y+o.y)/2,l},calcTerminalLabelPosition:function(e,t,n){var r,o=JSON.parse(JSON.stringify(n));i.log.info("our points",o),"start_left"!==t&&"start_right"!==t&&(o=o.reverse()),o.forEach((function(e){S(e,r),r=e}));var s,a=25+e;r=void 0,o.forEach((function(e){if(r&&!s){var t=S(e,r);if(t=1&&(s={x:e.x,y:e.y}),n>0&&n<1&&(s={x:(1-n)*r.x+n*e.x,y:(1-n)*r.y+n*e.y})}}r=e}));var d=10+.5*e,l=Math.atan2(o[0].y-s.y,o[0].x-s.x),u={x:0,y:0};return u.x=Math.sin(l)*d+(o[0].x+s.x)/2,u.y=-Math.cos(l)*d+(o[0].y+s.y)/2,"start_left"===t&&(u.x=Math.sin(l+Math.PI)*d+(o[0].x+s.x)/2,u.y=-Math.cos(l+Math.PI)*d+(o[0].y+s.y)/2),"end_right"===t&&(u.x=Math.sin(l-Math.PI)*d+(o[0].x+s.x)/2-5,u.y=-Math.cos(l-Math.PI)*d+(o[0].y+s.y)/2-5),"end_left"===t&&(u.x=Math.sin(l)*d+(o[0].x+s.x)/2-5,u.y=-Math.cos(l)*d+(o[0].y+s.y)/2-5),u},formatUrl:T,getStylesFromArray:M,generateId:N,random:D,memoize:w,runFunc:E,entityDecode:H,initIdGeneratior:U,directiveSanitizer:G,sanitizeCss:V}},"./node_modules/d3-array/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{slice:()=>o,map:()=>s});var r=Array.prototype,o=r.slice,s=r.map},"./node_modules/d3-array/src/ascending.js":(e,t,n)=>{"use strict";function r(e,t){return et?1:e>=t?0:NaN}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/bisect.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{bisectRight:()=>s,bisectLeft:()=>a,default:()=>i});var r=n("./node_modules/d3-array/src/ascending.js"),o=(0,n("./node_modules/d3-array/src/bisector.js").default)(r.default),s=o.right,a=o.left;const i=s},"./node_modules/d3-array/src/bisector.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/ascending.js");function o(e){var t;return 1===e.length&&(t=e,e=function(e,n){return(0,r.default)(t(e),n)}),{left:function(t,n,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r>>1;e(t[s],n)<0?r=s+1:o=s}return r},right:function(t,n,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r>>1;e(t[s],n)>0?o=s:r=s+1}return r}}}},"./node_modules/d3-array/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/cross.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/pairs.js");function o(e,t,n){var o,s,a,i,d=e.length,l=t.length,u=new Array(d*l);for(null==n&&(n=r.pair),o=a=0;o{"use strict";function r(e,t){return te?1:t>=e?0:NaN}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/deviation.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/variance.js");function o(e,t){var n=(0,r.default)(e,t);return n?Math.sqrt(n):n}},"./node_modules/d3-array/src/extent.js":(e,t,n)=>{"use strict";function r(e,t){var n,r,o,s=e.length,a=-1;if(null==t){for(;++a=n)for(r=o=n;++an&&(r=n),o=n)for(r=o=n;++an&&(r=n),or})},"./node_modules/d3-array/src/histogram.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n("./node_modules/d3-array/src/array.js"),o=n("./node_modules/d3-array/src/bisect.js"),s=n("./node_modules/d3-array/src/constant.js"),a=n("./node_modules/d3-array/src/extent.js"),i=n("./node_modules/d3-array/src/identity.js"),d=n("./node_modules/d3-array/src/range.js"),l=n("./node_modules/d3-array/src/ticks.js"),u=n("./node_modules/d3-array/src/threshold/sturges.js");function c(){var e=i.default,t=a.default,n=u.default;function c(r){var s,a,i=r.length,u=new Array(i);for(s=0;sh;)m.pop(),--p;var g,_=new Array(p+1);for(s=0;s<=p;++s)(g=_[s]=[]).x0=s>0?m[s-1]:f,g.x1=s{"use strict";function r(e){return e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{bisect:()=>r.default,bisectRight:()=>r.bisectRight,bisectLeft:()=>r.bisectLeft,ascending:()=>o.default,bisector:()=>s.default,cross:()=>a.default,descending:()=>i.default,deviation:()=>d.default,extent:()=>l.default,histogram:()=>u.default,thresholdFreedmanDiaconis:()=>c.default,thresholdScott:()=>f.default,thresholdSturges:()=>h.default,max:()=>m.default,mean:()=>p.default,median:()=>g.default,merge:()=>_.default,min:()=>y.default,pairs:()=>v.default,permute:()=>b.default,quantile:()=>j.default,range:()=>x.default,scan:()=>w.default,shuffle:()=>k.default,sum:()=>C.default,ticks:()=>T.default,tickIncrement:()=>T.tickIncrement,tickStep:()=>T.tickStep,transpose:()=>E.default,variance:()=>S.default,zip:()=>M.default});var r=n("./node_modules/d3-array/src/bisect.js"),o=n("./node_modules/d3-array/src/ascending.js"),s=n("./node_modules/d3-array/src/bisector.js"),a=n("./node_modules/d3-array/src/cross.js"),i=n("./node_modules/d3-array/src/descending.js"),d=n("./node_modules/d3-array/src/deviation.js"),l=n("./node_modules/d3-array/src/extent.js"),u=n("./node_modules/d3-array/src/histogram.js"),c=n("./node_modules/d3-array/src/threshold/freedmanDiaconis.js"),f=n("./node_modules/d3-array/src/threshold/scott.js"),h=n("./node_modules/d3-array/src/threshold/sturges.js"),m=n("./node_modules/d3-array/src/max.js"),p=n("./node_modules/d3-array/src/mean.js"),g=n("./node_modules/d3-array/src/median.js"),_=n("./node_modules/d3-array/src/merge.js"),y=n("./node_modules/d3-array/src/min.js"),v=n("./node_modules/d3-array/src/pairs.js"),b=n("./node_modules/d3-array/src/permute.js"),j=n("./node_modules/d3-array/src/quantile.js"),x=n("./node_modules/d3-array/src/range.js"),w=n("./node_modules/d3-array/src/scan.js"),k=n("./node_modules/d3-array/src/shuffle.js"),C=n("./node_modules/d3-array/src/sum.js"),T=n("./node_modules/d3-array/src/ticks.js"),E=n("./node_modules/d3-array/src/transpose.js"),S=n("./node_modules/d3-array/src/variance.js"),M=n("./node_modules/d3-array/src/zip.js")},"./node_modules/d3-array/src/max.js":(e,t,n)=>{"use strict";function r(e,t){var n,r,o=e.length,s=-1;if(null==t){for(;++s=n)for(r=n;++sr&&(r=n)}else for(;++s=n)for(r=n;++sr&&(r=n);return r}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/mean.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/number.js");function o(e,t){var n,o=e.length,s=o,a=-1,i=0;if(null==t)for(;++a{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-array/src/ascending.js"),o=n("./node_modules/d3-array/src/number.js"),s=n("./node_modules/d3-array/src/quantile.js");function a(e,t){var n,a=e.length,i=-1,d=[];if(null==t)for(;++i{"use strict";function r(e){for(var t,n,r,o=e.length,s=-1,a=0;++s=0;)for(t=(r=e[o]).length;--t>=0;)n[--a]=r[t];return n}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/min.js":(e,t,n)=>{"use strict";function r(e,t){var n,r,o=e.length,s=-1;if(null==t){for(;++s=n)for(r=n;++sn&&(r=n)}else for(;++s=n)for(r=n;++sn&&(r=n);return r}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/number.js":(e,t,n)=>{"use strict";function r(e){return null===e?NaN:+e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/pairs.js":(e,t,n)=>{"use strict";function r(e,t){null==t&&(t=o);for(var n=0,r=e.length-1,s=e[0],a=new Array(r<0?0:r);nr,pair:()=>o})},"./node_modules/d3-array/src/permute.js":(e,t,n)=>{"use strict";function r(e,t){for(var n=t.length,r=new Array(n);n--;)r[n]=e[t[n]];return r}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/quantile.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/number.js");function o(e,t,n){if(null==n&&(n=r.default),o=e.length){if((t=+t)<=0||o<2)return+n(e[0],0,e);if(t>=1)return+n(e[o-1],o-1,e);var o,s=(o-1)*t,a=Math.floor(s),i=+n(e[a],a,e);return i+(+n(e[a+1],a+1,e)-i)*(s-a)}}},"./node_modules/d3-array/src/range.js":(e,t,n)=>{"use strict";function r(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),s=new Array(o);++rr})},"./node_modules/d3-array/src/scan.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/ascending.js");function o(e,t){if(n=e.length){var n,o,s=0,a=0,i=e[a];for(null==t&&(t=r.default);++s{"use strict";function r(e,t,n){for(var r,o,s=(null==n?e.length:n)-(t=null==t?0:+t);s;)o=Math.random()*s--|0,r=e[s+t],e[s+t]=e[o+t],e[o+t]=r;return e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/sum.js":(e,t,n)=>{"use strict";function r(e,t){var n,r=e.length,o=-1,s=0;if(null==t)for(;++or})},"./node_modules/d3-array/src/threshold/freedmanDiaconis.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-array/src/array.js"),o=n("./node_modules/d3-array/src/ascending.js"),s=n("./node_modules/d3-array/src/number.js"),a=n("./node_modules/d3-array/src/quantile.js");function i(e,t,n){return e=r.map.call(e,s.default).sort(o.default),Math.ceil((n-t)/(2*((0,a.default)(e,.75)-(0,a.default)(e,.25))*Math.pow(e.length,-1/3)))}},"./node_modules/d3-array/src/threshold/scott.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/deviation.js");function o(e,t,n){return Math.ceil((n-t)/(3.5*(0,r.default)(e)*Math.pow(e.length,-1/3)))}},"./node_modules/d3-array/src/threshold/sturges.js":(e,t,n)=>{"use strict";function r(e){return Math.ceil(Math.log(e.length)/Math.LN2)+1}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-array/src/ticks.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,tickIncrement:()=>i,tickStep:()=>d});var r=Math.sqrt(50),o=Math.sqrt(10),s=Math.sqrt(2);function a(e,t,n){var r,o,s,a,d=-1;if(n=+n,(e=+e)==(t=+t)&&n>0)return[e];if((r=t0)for(e=Math.ceil(e/a),t=Math.floor(t/a),s=new Array(o=Math.ceil(t-e+1));++d=0?(d>=r?10:d>=o?5:d>=s?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(d>=r?10:d>=o?5:d>=s?2:1)}function d(e,t,n){var a=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(a)/Math.LN10)),d=a/i;return d>=r?i*=10:d>=o?i*=5:d>=s&&(i*=2),t{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/min.js");function o(e){if(!(a=e.length))return[];for(var t=-1,n=(0,r.default)(e,s),o=new Array(n);++t{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/number.js");function o(e,t){var n,o,s=e.length,a=0,i=-1,d=0,l=0;if(null==t)for(;++i1)return l/(a-1)}},"./node_modules/d3-array/src/zip.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-array/src/transpose.js");function o(){return(0,r.default)(arguments)}},"./node_modules/d3-collection/src/entries.js":(e,t,n)=>{"use strict";function r(e){var t=[];for(var n in e)t.push({key:n,value:e[n]});return t}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-collection/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{nest:()=>r.default,set:()=>o.default,map:()=>s.default,keys:()=>a.default,values:()=>i.default,entries:()=>d.default});var r=n("./node_modules/d3-collection/src/nest.js"),o=n("./node_modules/d3-collection/src/set.js"),s=n("./node_modules/d3-collection/src/map.js"),a=n("./node_modules/d3-collection/src/keys.js"),i=n("./node_modules/d3-collection/src/values.js"),d=n("./node_modules/d3-collection/src/entries.js")},"./node_modules/d3-collection/src/keys.js":(e,t,n)=>{"use strict";function r(e){var t=[];for(var n in e)t.push(n);return t}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-collection/src/map.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{prefix:()=>r,default:()=>a});var r="$";function o(){}function s(e,t){var n=new o;if(e instanceof o)e.each((function(e,t){n.set(t,e)}));else if(Array.isArray(e)){var r,s=-1,a=e.length;if(null==t)for(;++s{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-collection/src/map.js");function o(){var e,t,n,o=[],l=[];function u(n,s,a,i){if(s>=o.length)return null!=e&&n.sort(e),null!=t?t(n):n;for(var d,l,c,f=-1,h=n.length,m=o[s++],p=(0,r.default)(),g=a();++fo.length)return e;var r,s=l[n-1];return null!=t&&n>=o.length?r=e.entries():(r=[],e.each((function(e,t){r.push({key:t,values:c(e,n)})}))),null!=s?r.sort((function(e,t){return s(e.key,t.key)})):r}return n={object:function(e){return u(e,0,s,a)},map:function(e){return u(e,0,i,d)},entries:function(e){return c(u(e,0,i,d),0)},key:function(e){return o.push(e),n},sortKeys:function(e){return l[o.length-1]=e,n},sortValues:function(t){return e=t,n},rollup:function(e){return t=e,n}}}function s(){return{}}function a(e,t,n){e[t]=n}function i(){return(0,r.default)()}function d(e,t,n){e.set(t,n)}},"./node_modules/d3-collection/src/set.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-collection/src/map.js");function o(){}var s=r.default.prototype;function a(e,t){var n=new o;if(e instanceof o)e.each((function(e){n.add(e)}));else if(e){var r=-1,s=e.length;if(null==t)for(;++r{"use strict";function r(e){var t=[];for(var n in e)t.push(e[n]);return t}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-color/src/color.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{Color:()=>o,darker:()=>s,brighter:()=>a,default:()=>b,rgbConvert:()=>w,rgb:()=>k,Rgb:()=>C,hslConvert:()=>A,hsl:()=>N});var r=n("./node_modules/d3-color/src/define.js");function o(){}var s=.7,a=1/s,i="\\s*([+-]?\\d+)\\s*",d="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",l="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",u=/^#([0-9a-f]{3,8})$/,c=new RegExp("^rgb\\("+[i,i,i]+"\\)$"),f=new RegExp("^rgb\\("+[l,l,l]+"\\)$"),h=new RegExp("^rgba\\("+[i,i,i,d]+"\\)$"),m=new RegExp("^rgba\\("+[l,l,l,d]+"\\)$"),p=new RegExp("^hsl\\("+[d,l,l]+"\\)$"),g=new RegExp("^hsla\\("+[d,l,l,d]+"\\)$"),_={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function y(){return this.rgb().formatHex()}function v(){return this.rgb().formatRgb()}function b(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=u.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?j(t):3===n?new C(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?x(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?x(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=c.exec(e))?new C(t[1],t[2],t[3],1):(t=f.exec(e))?new C(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=h.exec(e))?x(t[1],t[2],t[3],t[4]):(t=m.exec(e))?x(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=p.exec(e))?M(t[1],t[2]/100,t[3]/100,1):(t=g.exec(e))?M(t[1],t[2]/100,t[3]/100,t[4]):_.hasOwnProperty(e)?j(_[e]):"transparent"===e?new C(NaN,NaN,NaN,0):null}function j(e){return new C(e>>16&255,e>>8&255,255&e,1)}function x(e,t,n,r){return r<=0&&(e=t=n=NaN),new C(e,t,n,r)}function w(e){return e instanceof o||(e=b(e)),e?new C((e=e.rgb()).r,e.g,e.b,e.opacity):new C}function k(e,t,n,r){return 1===arguments.length?w(e):new C(e,t,n,null==r?1:r)}function C(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function T(){return"#"+S(this.r)+S(this.g)+S(this.b)}function E(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function S(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function M(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new D(e,t,n,r)}function A(e){if(e instanceof D)return new D(e.h,e.s,e.l,e.opacity);if(e instanceof o||(e=b(e)),!e)return new D;if(e instanceof D)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,d=a-s,l=(a+s)/2;return d?(i=t===a?(n-r)/d+6*(n0&&l<1?0:i,new D(i,d,l,e.opacity)}function N(e,t,n,r){return 1===arguments.length?A(e):new D(e,t,n,null==r?1:r)}function D(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function O(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}(0,r.default)(o,b,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:y,formatHex:y,formatHsl:function(){return A(this).formatHsl()},formatRgb:v,toString:v}),(0,r.default)(C,k,(0,r.extend)(o,{brighter:function(e){return e=null==e?a:Math.pow(a,e),new C(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?s:Math.pow(s,e),new C(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:T,formatHex:T,formatRgb:E,toString:E})),(0,r.default)(D,N,(0,r.extend)(o,{brighter:function(e){return e=null==e?a:Math.pow(a,e),new D(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?s:Math.pow(s,e),new D(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new C(O(e>=240?e-240:e+120,o,r),O(e,o,r),O(e<120?e+240:e-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}))},"./node_modules/d3-color/src/cubehelix.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p,Cubehelix:()=>g});var r=n("./node_modules/d3-color/src/define.js"),o=n("./node_modules/d3-color/src/color.js"),s=n("./node_modules/d3-color/src/math.js"),a=-.14861,i=1.78277,d=-.29227,l=-.90649,u=1.97294,c=u*l,f=u*i,h=i*d-l*a;function m(e){if(e instanceof g)return new g(e.h,e.s,e.l,e.opacity);e instanceof o.Rgb||(e=(0,o.rgbConvert)(e));var t=e.r/255,n=e.g/255,r=e.b/255,a=(h*r+c*t-f*n)/(h+c-f),i=r-a,m=(u*(n-a)-d*i)/l,p=Math.sqrt(m*m+i*i)/(u*a*(1-a)),_=p?Math.atan2(m,i)*s.rad2deg-120:NaN;return new g(_<0?_+360:_,p,a,e.opacity)}function p(e,t,n,r){return 1===arguments.length?m(e):new g(e,t,n,null==r?1:r)}function g(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}(0,r.default)(g,p,(0,r.extend)(o.Color,{brighter:function(e){return e=null==e?o.brighter:Math.pow(o.brighter,e),new g(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?o.darker:Math.pow(o.darker,e),new g(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=isNaN(this.h)?0:(this.h+120)*s.deg2rad,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),c=Math.sin(e);return new o.Rgb(255*(t+n*(a*r+i*c)),255*(t+n*(d*r+l*c)),255*(t+n*(u*r)),this.opacity)}}))},"./node_modules/d3-color/src/define.js":(e,t,n)=>{"use strict";function r(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function o(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}n.r(t),n.d(t,{default:()=>r,extend:()=>o})},"./node_modules/d3-color/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{color:()=>r.default,rgb:()=>r.rgb,hsl:()=>r.hsl,lab:()=>o.default,hcl:()=>o.hcl,lch:()=>o.lch,gray:()=>o.gray,cubehelix:()=>s.default});var r=n("./node_modules/d3-color/src/color.js"),o=n("./node_modules/d3-color/src/lab.js"),s=n("./node_modules/d3-color/src/cubehelix.js")},"./node_modules/d3-color/src/lab.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{gray:()=>f,default:()=>h,Lab:()=>m,lch:()=>b,hcl:()=>j,Hcl:()=>x});var r=n("./node_modules/d3-color/src/define.js"),o=n("./node_modules/d3-color/src/color.js"),s=n("./node_modules/d3-color/src/math.js"),a=.96422,i=.82521,d=4/29,l=6/29,u=3*l*l;function c(e){if(e instanceof m)return new m(e.l,e.a,e.b,e.opacity);if(e instanceof x)return w(e);e instanceof o.Rgb||(e=(0,o.rgbConvert)(e));var t,n,r=y(e.r),s=y(e.g),d=y(e.b),l=p((.2225045*r+.7168786*s+.0606169*d)/1);return r===s&&s===d?t=n=l:(t=p((.4360747*r+.3850649*s+.1430804*d)/a),n=p((.0139322*r+.0971045*s+.7141733*d)/i)),new m(116*l-16,500*(t-l),200*(l-n),e.opacity)}function f(e,t){return new m(e,0,0,null==t?1:t)}function h(e,t,n,r){return 1===arguments.length?c(e):new m(e,t,n,null==r?1:r)}function m(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function p(e){return e>.008856451679035631?Math.pow(e,1/3):e/u+d}function g(e){return e>l?e*e*e:u*(e-d)}function _(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function y(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function v(e){if(e instanceof x)return new x(e.h,e.c,e.l,e.opacity);if(e instanceof m||(e=c(e)),0===e.a&&0===e.b)return new x(NaN,0{"use strict";n.r(t),n.d(t,{deg2rad:()=>r,rad2deg:()=>o});var r=Math.PI/180,o=180/Math.PI},"./node_modules/d3-dispatch/src/dispatch.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r={value:function(){}};function o(){for(var e,t=0,n=arguments.length,r={};t=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function i(e,t){for(var n,r=0,o=e.length;r0)for(var n,r,o=new Array(n),s=0;s{"use strict";n.r(t),n.d(t,{dispatch:()=>r.default});var r=n("./node_modules/d3-dispatch/src/dispatch.js")},"./node_modules/d3-drag/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-drag/src/drag.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>g});var r=n("./node_modules/d3-dispatch/src/dispatch.js"),o=n("./node_modules/d3-selection/src/selection/on.js"),s=n("./node_modules/d3-selection/src/mouse.js"),a=n("./node_modules/d3-selection/src/select.js"),i=n("./node_modules/d3-selection/src/touch.js"),d=n("./node_modules/d3-drag/src/nodrag.js"),l=n("./node_modules/d3-drag/src/noevent.js"),u=n("./node_modules/d3-drag/src/constant.js"),c=n("./node_modules/d3-drag/src/event.js");function f(){return!o.event.ctrlKey&&!o.event.button}function h(){return this.parentNode}function m(e){return null==e?{x:o.event.x,y:o.event.y}:e}function p(){return navigator.maxTouchPoints||"ontouchstart"in this}function g(){var e,t,n,g,_=f,y=h,v=m,b=p,j={},x=(0,r.default)("start","drag","end"),w=0,k=0;function C(e){e.on("mousedown.drag",T).filter(b).on("touchstart.drag",M).on("touchmove.drag",A).on("touchend.drag touchcancel.drag",N).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function T(){if(!g&&_.apply(this,arguments)){var r=D("mouse",y.apply(this,arguments),s.default,this,arguments);r&&((0,a.default)(o.event.view).on("mousemove.drag",E,!0).on("mouseup.drag",S,!0),(0,d.default)(o.event.view),(0,l.nopropagation)(),n=!1,e=o.event.clientX,t=o.event.clientY,r("start"))}}function E(){if((0,l.default)(),!n){var r=o.event.clientX-e,s=o.event.clientY-t;n=r*r+s*s>k}j.mouse("drag")}function S(){(0,a.default)(o.event.view).on("mousemove.drag mouseup.drag",null),(0,d.yesdrag)(o.event.view,n),(0,l.default)(),j.mouse("end")}function M(){if(_.apply(this,arguments)){var e,t,n=o.event.changedTouches,r=y.apply(this,arguments),s=n.length;for(e=0;e{"use strict";function r(e,t,n,r,o,s,a,i,d,l){this.target=e,this.type=t,this.subject=n,this.identifier=r,this.active=o,this.x=s,this.y=a,this.dx=i,this.dy=d,this._=l}n.r(t),n.d(t,{default:()=>r}),r.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e}},"./node_modules/d3-drag/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{drag:()=>r.default,dragDisable:()=>o.default,dragEnable:()=>o.yesdrag});var r=n("./node_modules/d3-drag/src/drag.js"),o=n("./node_modules/d3-drag/src/nodrag.js")},"./node_modules/d3-drag/src/nodrag.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,yesdrag:()=>a});var r=n("./node_modules/d3-selection/src/select.js"),o=n("./node_modules/d3-drag/src/noevent.js");function s(e){var t=e.document.documentElement,n=(0,r.default)(e).on("dragstart.drag",o.default,!0);"onselectstart"in t?n.on("selectstart.drag",o.default,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function a(e,t){var n=e.document.documentElement,s=(0,r.default)(e).on("dragstart.drag",null);t&&(s.on("click.drag",o.default,!0),setTimeout((function(){s.on("click.drag",null)}),0)),"onselectstart"in n?s.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}},"./node_modules/d3-drag/src/noevent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{nopropagation:()=>o,default:()=>s});var r=n("./node_modules/d3-selection/src/selection/on.js");function o(){r.event.stopImmediatePropagation()}function s(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},"./node_modules/d3-dsv/src/autoType.js":(e,t,n)=>{"use strict";function r(e){for(var t in e){var n,r,s=e[t].trim();if(s)if("true"===s)s=!0;else if("false"===s)s=!1;else if("NaN"===s)s=NaN;else if(isNaN(n=+s)){if(!(r=s.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;o&&r[4]&&!r[7]&&(s=s.replace(/-/g,"/").replace(/T/," ")),s=new Date(s)}else s=n;else s=null;e[t]=s}return e}n.r(t),n.d(t,{default:()=>r});var o=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours()},"./node_modules/d3-dsv/src/csv.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{csvParse:()=>o,csvParseRows:()=>s,csvFormat:()=>a,csvFormatBody:()=>i,csvFormatRows:()=>d,csvFormatRow:()=>l,csvFormatValue:()=>u});var r=(0,n("./node_modules/d3-dsv/src/dsv.js").default)(","),o=r.parse,s=r.parseRows,a=r.format,i=r.formatBody,d=r.formatRows,l=r.formatRow,u=r.formatValue},"./node_modules/d3-dsv/src/dsv.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r={},o={};function s(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function a(e){var t=Object.create(null),n=[];return e.forEach((function(e){for(var r in e)r in t||n.push(t[r]=r)})),n}function i(e,t){var n=e+"",r=n.length;return r=i?u=!0:10===(s=e.charCodeAt(d++))?c=!0:13===s&&(c=!0,10===e.charCodeAt(d)&&++d),e.slice(a+1,t-1).replace(/""/g,'"')}for(;d9999?"+"+i(r,6):i(r,4))+"-"+i(n.getUTCMonth()+1,2)+"-"+i(n.getUTCDate(),2)+(d?"T"+i(o,2)+":"+i(s,2)+":"+i(a,2)+"."+i(d,3)+"Z":a?"T"+i(o,2)+":"+i(s,2)+":"+i(a,2)+"Z":s||o?"T"+i(o,2)+":"+i(s,2)+"Z":"")):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e;var n,r,o,s,a,d}return{parse:function(e,t){var n,r,o=d(e,(function(e,o){if(n)return n(e,o-1);r=e,n=t?function(e,t){var n=s(e);return function(r,o){return t(n(r),o,e)}}(e,t):s(e)}));return o.columns=r||[],o},parseRows:d,format:function(t,n){return null==n&&(n=a(t)),[n.map(c).join(e)].concat(l(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=a(e)),l(e,t).join("\n")},formatRows:function(e){return e.map(u).join("\n")},formatRow:u,formatValue:c}}},"./node_modules/d3-dsv/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{dsvFormat:()=>r.default,csvParse:()=>o.csvParse,csvParseRows:()=>o.csvParseRows,csvFormat:()=>o.csvFormat,csvFormatBody:()=>o.csvFormatBody,csvFormatRows:()=>o.csvFormatRows,csvFormatRow:()=>o.csvFormatRow,csvFormatValue:()=>o.csvFormatValue,tsvParse:()=>s.tsvParse,tsvParseRows:()=>s.tsvParseRows,tsvFormat:()=>s.tsvFormat,tsvFormatBody:()=>s.tsvFormatBody,tsvFormatRows:()=>s.tsvFormatRows,tsvFormatRow:()=>s.tsvFormatRow,tsvFormatValue:()=>s.tsvFormatValue,autoType:()=>a.default});var r=n("./node_modules/d3-dsv/src/dsv.js"),o=n("./node_modules/d3-dsv/src/csv.js"),s=n("./node_modules/d3-dsv/src/tsv.js"),a=n("./node_modules/d3-dsv/src/autoType.js")},"./node_modules/d3-dsv/src/tsv.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{tsvParse:()=>o,tsvParseRows:()=>s,tsvFormat:()=>a,tsvFormatBody:()=>i,tsvFormatRows:()=>d,tsvFormatRow:()=>l,tsvFormatValue:()=>u});var r=(0,n("./node_modules/d3-dsv/src/dsv.js").default)("\t"),o=r.parse,s=r.parseRows,a=r.format,i=r.formatBody,d=r.formatRows,l=r.formatRow,u=r.formatValue},"./node_modules/d3-ease/src/back.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{backIn:()=>o,backOut:()=>s,backInOut:()=>a});var r=1.70158,o=function e(t){function n(e){return(e=+e)*e*(t*(e-1)+e)}return t=+t,n.overshoot=e,n}(r),s=function e(t){function n(e){return--e*e*((e+1)*t+e)+1}return t=+t,n.overshoot=e,n}(r),a=function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(r)},"./node_modules/d3-ease/src/bounce.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{bounceIn:()=>o,bounceOut:()=>s,bounceInOut:()=>a});var r=7.5625;function o(e){return 1-s(1-e)}function s(e){return(e=+e)<.36363636363636365?r*e*e:e<.7272727272727273?r*(e-=.5454545454545454)*e+.75:e<.9090909090909091?r*(e-=.8181818181818182)*e+.9375:r*(e-=.9545454545454546)*e+.984375}function a(e){return((e*=2)<=1?1-s(1-e):s(e-1)+1)/2}},"./node_modules/d3-ease/src/circle.js":(e,t,n)=>{"use strict";function r(e){return 1-Math.sqrt(1-e*e)}function o(e){return Math.sqrt(1- --e*e)}function s(e){return((e*=2)<=1?1-Math.sqrt(1-e*e):Math.sqrt(1-(e-=2)*e)+1)/2}n.r(t),n.d(t,{circleIn:()=>r,circleOut:()=>o,circleInOut:()=>s})},"./node_modules/d3-ease/src/cubic.js":(e,t,n)=>{"use strict";function r(e){return e*e*e}function o(e){return--e*e*e+1}function s(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}n.r(t),n.d(t,{cubicIn:()=>r,cubicOut:()=>o,cubicInOut:()=>s})},"./node_modules/d3-ease/src/elastic.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{elasticIn:()=>s,elasticOut:()=>a,elasticInOut:()=>i});var r=n("./node_modules/d3-ease/src/math.js"),o=2*Math.PI,s=function e(t,n){var s=Math.asin(1/(t=Math.max(1,t)))*(n/=o);function a(e){return t*(0,r.tpmt)(- --e)*Math.sin((s-e)/n)}return a.amplitude=function(t){return e(t,n*o)},a.period=function(n){return e(t,n)},a}(1,.3),a=function e(t,n){var s=Math.asin(1/(t=Math.max(1,t)))*(n/=o);function a(e){return 1-t*(0,r.tpmt)(e=+e)*Math.sin((e+s)/n)}return a.amplitude=function(t){return e(t,n*o)},a.period=function(n){return e(t,n)},a}(1,.3),i=function e(t,n){var s=Math.asin(1/(t=Math.max(1,t)))*(n/=o);function a(e){return((e=2*e-1)<0?t*(0,r.tpmt)(-e)*Math.sin((s-e)/n):2-t*(0,r.tpmt)(e)*Math.sin((s+e)/n))/2}return a.amplitude=function(t){return e(t,n*o)},a.period=function(n){return e(t,n)},a}(1,.3)},"./node_modules/d3-ease/src/exp.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{expIn:()=>o,expOut:()=>s,expInOut:()=>a});var r=n("./node_modules/d3-ease/src/math.js");function o(e){return(0,r.tpmt)(1-+e)}function s(e){return 1-(0,r.tpmt)(e)}function a(e){return((e*=2)<=1?(0,r.tpmt)(1-e):2-(0,r.tpmt)(e-1))/2}},"./node_modules/d3-ease/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{easeLinear:()=>r.linear,easeQuad:()=>o.quadInOut,easeQuadIn:()=>o.quadIn,easeQuadOut:()=>o.quadOut,easeQuadInOut:()=>o.quadInOut,easeCubic:()=>s.cubicInOut,easeCubicIn:()=>s.cubicIn,easeCubicOut:()=>s.cubicOut,easeCubicInOut:()=>s.cubicInOut,easePoly:()=>a.polyInOut,easePolyIn:()=>a.polyIn,easePolyOut:()=>a.polyOut,easePolyInOut:()=>a.polyInOut,easeSin:()=>i.sinInOut,easeSinIn:()=>i.sinIn,easeSinOut:()=>i.sinOut,easeSinInOut:()=>i.sinInOut,easeExp:()=>d.expInOut,easeExpIn:()=>d.expIn,easeExpOut:()=>d.expOut,easeExpInOut:()=>d.expInOut,easeCircle:()=>l.circleInOut,easeCircleIn:()=>l.circleIn,easeCircleOut:()=>l.circleOut,easeCircleInOut:()=>l.circleInOut,easeBounce:()=>u.bounceOut,easeBounceIn:()=>u.bounceIn,easeBounceOut:()=>u.bounceOut,easeBounceInOut:()=>u.bounceInOut,easeBack:()=>c.backInOut,easeBackIn:()=>c.backIn,easeBackOut:()=>c.backOut,easeBackInOut:()=>c.backInOut,easeElastic:()=>f.elasticOut,easeElasticIn:()=>f.elasticIn,easeElasticOut:()=>f.elasticOut,easeElasticInOut:()=>f.elasticInOut});var r=n("./node_modules/d3-ease/src/linear.js"),o=n("./node_modules/d3-ease/src/quad.js"),s=n("./node_modules/d3-ease/src/cubic.js"),a=n("./node_modules/d3-ease/src/poly.js"),i=n("./node_modules/d3-ease/src/sin.js"),d=n("./node_modules/d3-ease/src/exp.js"),l=n("./node_modules/d3-ease/src/circle.js"),u=n("./node_modules/d3-ease/src/bounce.js"),c=n("./node_modules/d3-ease/src/back.js"),f=n("./node_modules/d3-ease/src/elastic.js")},"./node_modules/d3-ease/src/linear.js":(e,t,n)=>{"use strict";function r(e){return+e}n.r(t),n.d(t,{linear:()=>r})},"./node_modules/d3-ease/src/math.js":(e,t,n)=>{"use strict";function r(e){return 1.0009775171065494*(Math.pow(2,-10*e)-.0009765625)}n.r(t),n.d(t,{tpmt:()=>r})},"./node_modules/d3-ease/src/poly.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{polyIn:()=>r,polyOut:()=>o,polyInOut:()=>s});var r=function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n}(3),o=function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(3),s=function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(3)},"./node_modules/d3-ease/src/quad.js":(e,t,n)=>{"use strict";function r(e){return e*e}function o(e){return e*(2-e)}function s(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}n.r(t),n.d(t,{quadIn:()=>r,quadOut:()=>o,quadInOut:()=>s})},"./node_modules/d3-ease/src/sin.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{sinIn:()=>s,sinOut:()=>a,sinInOut:()=>i});var r=Math.PI,o=r/2;function s(e){return 1==+e?1:1-Math.cos(e*o)}function a(e){return Math.sin(e*o)}function i(e){return(1-Math.cos(r*e))/2}},"./node_modules/d3-format/src/defaultLocale.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{format:()=>o,formatPrefix:()=>s,default:()=>i});var r,o,s,a=n("./node_modules/d3-format/src/locale.js");function i(e){return r=(0,a.default)(e),o=r.format,s=r.formatPrefix,r}i({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"})},"./node_modules/d3-format/src/exponent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-format/src/formatDecimal.js");function o(e){return(e=(0,r.formatDecimalParts)(Math.abs(e)))?e[1]:NaN}},"./node_modules/d3-format/src/formatDecimal.js":(e,t,n)=>{"use strict";function r(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function o(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}n.r(t),n.d(t,{default:()=>r,formatDecimalParts:()=>o})},"./node_modules/d3-format/src/formatGroup.js":(e,t,n)=>{"use strict";function r(e,t){return function(n,r){for(var o=n.length,s=[],a=0,i=e[0],d=0;o>0&&i>0&&(d+i+1>r&&(i=Math.max(1,r-d)),s.push(n.substring(o-=i,o+i)),!((d+=i+1)>r));)i=e[a=(a+1)%e.length];return s.reverse().join(t)}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-format/src/formatNumerals.js":(e,t,n)=>{"use strict";function r(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-format/src/formatPrefixAuto.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{prefixExponent:()=>r,default:()=>s});var r,o=n("./node_modules/d3-format/src/formatDecimal.js");function s(e,t){var n=(0,o.formatDecimalParts)(e,t);if(!n)return e+"";var s=n[0],a=n[1],i=a-(r=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,d=s.length;return i===d?s:i>d?s+new Array(i-d+1).join("0"):i>0?s.slice(0,i)+"."+s.slice(i):"0."+new Array(1-i).join("0")+(0,o.formatDecimalParts)(e,Math.max(0,t+i-1))[0]}},"./node_modules/d3-format/src/formatRounded.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-format/src/formatDecimal.js");function o(e,t){var n=(0,r.formatDecimalParts)(e,t);if(!n)return e+"";var o=n[0],s=n[1];return s<0?"0."+new Array(-s).join("0")+o:o.length>s+1?o.slice(0,s+1)+"."+o.slice(s+1):o+new Array(s-o.length+2).join("0")}},"./node_modules/d3-format/src/formatSpecifier.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o,FormatSpecifier:()=>s});var r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(e){if(!(t=r.exec(e)))throw new Error("invalid format: "+e);var t;return new s({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function s(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}o.prototype=s.prototype,s.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type}},"./node_modules/d3-format/src/formatTrim.js":(e,t,n)=>{"use strict";function r(e){e:for(var t,n=e.length,r=1,o=-1;r0&&(o=0)}return o>0?e.slice(0,o)+e.slice(t+1):e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-format/src/formatTypes.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-format/src/formatDecimal.js"),o=n("./node_modules/d3-format/src/formatPrefixAuto.js"),s=n("./node_modules/d3-format/src/formatRounded.js");const a={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:r.default,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return(0,s.default)(100*e,t)},r:s.default,s:o.default,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}}},"./node_modules/d3-format/src/identity.js":(e,t,n)=>{"use strict";function r(e){return e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-format/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{formatDefaultLocale:()=>r.default,format:()=>r.format,formatPrefix:()=>r.formatPrefix,formatLocale:()=>o.default,formatSpecifier:()=>s.default,FormatSpecifier:()=>s.FormatSpecifier,precisionFixed:()=>a.default,precisionPrefix:()=>i.default,precisionRound:()=>d.default});var r=n("./node_modules/d3-format/src/defaultLocale.js"),o=n("./node_modules/d3-format/src/locale.js"),s=n("./node_modules/d3-format/src/formatSpecifier.js"),a=n("./node_modules/d3-format/src/precisionFixed.js"),i=n("./node_modules/d3-format/src/precisionPrefix.js"),d=n("./node_modules/d3-format/src/precisionRound.js")},"./node_modules/d3-format/src/locale.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>h});var r=n("./node_modules/d3-format/src/exponent.js"),o=n("./node_modules/d3-format/src/formatGroup.js"),s=n("./node_modules/d3-format/src/formatNumerals.js"),a=n("./node_modules/d3-format/src/formatSpecifier.js"),i=n("./node_modules/d3-format/src/formatTrim.js"),d=n("./node_modules/d3-format/src/formatTypes.js"),l=n("./node_modules/d3-format/src/formatPrefixAuto.js"),u=n("./node_modules/d3-format/src/identity.js"),c=Array.prototype.map,f=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function h(e){var t=void 0===e.grouping||void 0===e.thousands?u.default:(0,o.default)(c.call(e.grouping,Number),e.thousands+""),n=void 0===e.currency?"":e.currency[0]+"",h=void 0===e.currency?"":e.currency[1]+"",m=void 0===e.decimal?".":e.decimal+"",p=void 0===e.numerals?u.default:(0,s.default)(c.call(e.numerals,String)),g=void 0===e.percent?"%":e.percent+"",_=void 0===e.minus?"-":e.minus+"",y=void 0===e.nan?"NaN":e.nan+"";function v(e){var r=(e=(0,a.default)(e)).fill,o=e.align,s=e.sign,u=e.symbol,c=e.zero,v=e.width,b=e.comma,j=e.precision,x=e.trim,w=e.type;"n"===w?(b=!0,w="g"):d.default[w]||(void 0===j&&(j=12),x=!0,w="g"),(c||"0"===r&&"="===o)&&(c=!0,r="0",o="=");var k="$"===u?n:"#"===u&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",C="$"===u?h:/[%p]/.test(w)?g:"",T=d.default[w],E=/[defgprs%]/.test(w);function S(e){var n,a,d,u=k,h=C;if("c"===w)h=T(e)+h,e="";else{var g=(e=+e)<0||1/e<0;if(e=isNaN(e)?y:T(Math.abs(e),j),x&&(e=(0,i.default)(e)),g&&0==+e&&"+"!==s&&(g=!1),u=(g?"("===s?s:_:"-"===s||"("===s?"":s)+u,h=("s"===w?f[8+l.prefixExponent/3]:"")+h+(g&&"("===s?")":""),E)for(n=-1,a=e.length;++n(d=e.charCodeAt(n))||d>57){h=(46===d?m+e.slice(n+1):e.slice(n))+h,e=e.slice(0,n);break}}b&&!c&&(e=t(e,1/0));var S=u.length+e.length+h.length,M=S>1)+u+e+h+M.slice(S);break;default:e=M+u+e+h}return p(e)}return j=void 0===j?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j)),S.toString=function(){return e+""},S}return{format:v,formatPrefix:function(e,t){var n=v(((e=(0,a.default)(e)).type="f",e)),o=3*Math.max(-8,Math.min(8,Math.floor((0,r.default)(t)/3))),s=Math.pow(10,-o),i=f[8+o/3];return function(e){return n(s*e)+i}}}}},"./node_modules/d3-format/src/precisionFixed.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-format/src/exponent.js");function o(e){return Math.max(0,-(0,r.default)(Math.abs(e)))}},"./node_modules/d3-format/src/precisionPrefix.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-format/src/exponent.js");function o(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,r.default)(t)/3)))-(0,r.default)(Math.abs(e)))}},"./node_modules/d3-format/src/precisionRound.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-format/src/exponent.js");function o(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,(0,r.default)(t)-(0,r.default)(e))+1}},"./node_modules/d3-interpolate/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,genericArray:()=>a});var r=n("./node_modules/d3-interpolate/src/value.js"),o=n("./node_modules/d3-interpolate/src/numberArray.js");function s(e,t){return((0,o.isNumberArray)(t)?o.default:a)(e,t)}function a(e,t){var n,o=t?t.length:0,s=e?Math.min(o,e.length):0,a=new Array(s),i=new Array(o);for(n=0;n{"use strict";function r(e,t,n,r,o){var s=e*e,a=s*e;return((1-3*e+3*s-a)*t+(4-6*s+3*a)*n+(1+3*e+3*s-3*a)*r+a*o)/6}function o(e){var t=e.length-1;return function(n){var o=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[o],a=e[o+1],i=o>0?e[o-1]:2*s-a,d=or,default:()=>o})},"./node_modules/d3-interpolate/src/basisClosed.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-interpolate/src/basis.js");function o(e){var t=e.length;return function(n){var o=Math.floor(((n%=1)<0?++n:n)*t),s=e[(o+t-1)%t],a=e[o%t],i=e[(o+1)%t],d=e[(o+2)%t];return(0,r.basis)((n-o/t)*t,s,a,i,d)}}},"./node_modules/d3-interpolate/src/color.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{hue:()=>s,gamma:()=>a,default:()=>i});var r=n("./node_modules/d3-interpolate/src/constant.js");function o(e,t){return function(n){return e+n*t}}function s(e,t){var n=t-e;return n?o(e,n>180||n<-180?n-360*Math.round(n/360):n):(0,r.default)(isNaN(e)?t:e)}function a(e){return 1==(e=+e)?i:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):(0,r.default)(isNaN(t)?n:t)}}function i(e,t){var n=t-e;return n?o(e,n):(0,r.default)(isNaN(e)?t:e)}},"./node_modules/d3-interpolate/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-interpolate/src/cubehelix.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,cubehelixLong:()=>i});var r=n("./node_modules/d3-color/src/cubehelix.js"),o=n("./node_modules/d3-interpolate/src/color.js");function s(e){return function t(n){function s(t,s){var a=e((t=(0,r.default)(t)).h,(s=(0,r.default)(s)).h),i=(0,o.default)(t.s,s.s),d=(0,o.default)(t.l,s.l),l=(0,o.default)(t.opacity,s.opacity);return function(e){return t.h=a(e),t.s=i(e),t.l=d(Math.pow(e,n)),t.opacity=l(e),t+""}}return n=+n,s.gamma=t,s}(1)}const a=s(o.hue);var i=s(o.default)},"./node_modules/d3-interpolate/src/date.js":(e,t,n)=>{"use strict";function r(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-interpolate/src/discrete.js":(e,t,n)=>{"use strict";function r(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-interpolate/src/hcl.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,hclLong:()=>i});var r=n("./node_modules/d3-color/src/lab.js"),o=n("./node_modules/d3-interpolate/src/color.js");function s(e){return function(t,n){var s=e((t=(0,r.hcl)(t)).h,(n=(0,r.hcl)(n)).h),a=(0,o.default)(t.c,n.c),i=(0,o.default)(t.l,n.l),d=(0,o.default)(t.opacity,n.opacity);return function(e){return t.h=s(e),t.c=a(e),t.l=i(e),t.opacity=d(e),t+""}}}const a=s(o.hue);var i=s(o.default)},"./node_modules/d3-interpolate/src/hsl.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,hslLong:()=>i});var r=n("./node_modules/d3-color/src/color.js"),o=n("./node_modules/d3-interpolate/src/color.js");function s(e){return function(t,n){var s=e((t=(0,r.hsl)(t)).h,(n=(0,r.hsl)(n)).h),a=(0,o.default)(t.s,n.s),i=(0,o.default)(t.l,n.l),d=(0,o.default)(t.opacity,n.opacity);return function(e){return t.h=s(e),t.s=a(e),t.l=i(e),t.opacity=d(e),t+""}}}const a=s(o.hue);var i=s(o.default)},"./node_modules/d3-interpolate/src/hue.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-interpolate/src/color.js");function o(e,t){var n=(0,r.hue)(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}},"./node_modules/d3-interpolate/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{interpolate:()=>r.default,interpolateArray:()=>o.default,interpolateBasis:()=>s.default,interpolateBasisClosed:()=>a.default,interpolateDate:()=>i.default,interpolateDiscrete:()=>d.default,interpolateHue:()=>l.default,interpolateNumber:()=>u.default,interpolateNumberArray:()=>c.default,interpolateObject:()=>f.default,interpolateRound:()=>h.default,interpolateString:()=>m.default,interpolateTransformCss:()=>p.interpolateTransformCss,interpolateTransformSvg:()=>p.interpolateTransformSvg,interpolateZoom:()=>g.default,interpolateRgb:()=>_.default,interpolateRgbBasis:()=>_.rgbBasis,interpolateRgbBasisClosed:()=>_.rgbBasisClosed,interpolateHsl:()=>y.default,interpolateHslLong:()=>y.hslLong,interpolateLab:()=>v.default,interpolateHcl:()=>b.default,interpolateHclLong:()=>b.hclLong,interpolateCubehelix:()=>j.default,interpolateCubehelixLong:()=>j.cubehelixLong,piecewise:()=>x.default,quantize:()=>w.default});var r=n("./node_modules/d3-interpolate/src/value.js"),o=n("./node_modules/d3-interpolate/src/array.js"),s=n("./node_modules/d3-interpolate/src/basis.js"),a=n("./node_modules/d3-interpolate/src/basisClosed.js"),i=n("./node_modules/d3-interpolate/src/date.js"),d=n("./node_modules/d3-interpolate/src/discrete.js"),l=n("./node_modules/d3-interpolate/src/hue.js"),u=n("./node_modules/d3-interpolate/src/number.js"),c=n("./node_modules/d3-interpolate/src/numberArray.js"),f=n("./node_modules/d3-interpolate/src/object.js"),h=n("./node_modules/d3-interpolate/src/round.js"),m=n("./node_modules/d3-interpolate/src/string.js"),p=n("./node_modules/d3-interpolate/src/transform/index.js"),g=n("./node_modules/d3-interpolate/src/zoom.js"),_=n("./node_modules/d3-interpolate/src/rgb.js"),y=n("./node_modules/d3-interpolate/src/hsl.js"),v=n("./node_modules/d3-interpolate/src/lab.js"),b=n("./node_modules/d3-interpolate/src/hcl.js"),j=n("./node_modules/d3-interpolate/src/cubehelix.js"),x=n("./node_modules/d3-interpolate/src/piecewise.js"),w=n("./node_modules/d3-interpolate/src/quantize.js")},"./node_modules/d3-interpolate/src/lab.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-color/src/lab.js"),o=n("./node_modules/d3-interpolate/src/color.js");function s(e,t){var n=(0,o.default)((e=(0,r.default)(e)).l,(t=(0,r.default)(t)).l),s=(0,o.default)(e.a,t.a),a=(0,o.default)(e.b,t.b),i=(0,o.default)(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=s(t),e.b=a(t),e.opacity=i(t),e+""}}},"./node_modules/d3-interpolate/src/number.js":(e,t,n)=>{"use strict";function r(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-interpolate/src/numberArray.js":(e,t,n)=>{"use strict";function r(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(s){for(n=0;nr,isNumberArray:()=>o})},"./node_modules/d3-interpolate/src/object.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-interpolate/src/value.js");function o(e,t){var n,o={},s={};for(n in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)n in e?o[n]=(0,r.default)(e[n],t[n]):s[n]=t[n];return function(e){for(n in o)s[n]=o[n](e);return s}}},"./node_modules/d3-interpolate/src/piecewise.js":(e,t,n)=>{"use strict";function r(e,t){for(var n=0,r=t.length-1,o=t[0],s=new Array(r<0?0:r);nr})},"./node_modules/d3-interpolate/src/quantize.js":(e,t,n)=>{"use strict";function r(e,t){for(var n=new Array(t),r=0;rr})},"./node_modules/d3-interpolate/src/rgb.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i,rgbBasis:()=>l,rgbBasisClosed:()=>u});var r=n("./node_modules/d3-color/src/color.js"),o=n("./node_modules/d3-interpolate/src/basis.js"),s=n("./node_modules/d3-interpolate/src/basisClosed.js"),a=n("./node_modules/d3-interpolate/src/color.js");const i=function e(t){var n=(0,a.gamma)(t);function o(e,t){var o=n((e=(0,r.rgb)(e)).r,(t=(0,r.rgb)(t)).r),s=n(e.g,t.g),i=n(e.b,t.b),d=(0,a.default)(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=s(t),e.b=i(t),e.opacity=d(t),e+""}}return o.gamma=e,o}(1);function d(e){return function(t){var n,o,s=t.length,a=new Array(s),i=new Array(s),d=new Array(s);for(n=0;n{"use strict";function r(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-interpolate/src/string.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-interpolate/src/number.js"),o=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,s=new RegExp(o.source,"g");function a(e,t){var n,a,i,d=o.lastIndex=s.lastIndex=0,l=-1,u=[],c=[];for(e+="",t+="";(n=o.exec(e))&&(a=s.exec(t));)(i=a.index)>d&&(i=t.slice(d,i),u[l]?u[l]+=i:u[++l]=i),(n=n[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,c.push({i:l,x:(0,r.default)(n,a)})),d=s.lastIndex;return d{"use strict";n.r(t),n.d(t,{identity:()=>o,default:()=>s});var r=180/Math.PI,o={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function s(e,t,n,o,s,a){var i,d,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(d=Math.sqrt(n*n+o*o))&&(n/=d,o/=d,l/=d),e*o{"use strict";n.r(t),n.d(t,{interpolateTransformCss:()=>a,interpolateTransformSvg:()=>i});var r=n("./node_modules/d3-interpolate/src/number.js"),o=n("./node_modules/d3-interpolate/src/transform/parse.js");function s(e,t,n,o){function s(e){return e.length?e.pop()+" ":""}return function(a,i){var d=[],l=[];return a=e(a),i=e(i),function(e,o,s,a,i,d){if(e!==s||o!==a){var l=i.push("translate(",null,t,null,n);d.push({i:l-4,x:(0,r.default)(e,s)},{i:l-2,x:(0,r.default)(o,a)})}else(s||a)&&i.push("translate("+s+t+a+n)}(a.translateX,a.translateY,i.translateX,i.translateY,d,l),function(e,t,n,a){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(s(n)+"rotate(",null,o)-2,x:(0,r.default)(e,t)})):t&&n.push(s(n)+"rotate("+t+o)}(a.rotate,i.rotate,d,l),function(e,t,n,a){e!==t?a.push({i:n.push(s(n)+"skewX(",null,o)-2,x:(0,r.default)(e,t)}):t&&n.push(s(n)+"skewX("+t+o)}(a.skewX,i.skewX,d,l),function(e,t,n,o,a,i){if(e!==n||t!==o){var d=a.push(s(a)+"scale(",null,",",null,")");i.push({i:d-4,x:(0,r.default)(e,n)},{i:d-2,x:(0,r.default)(t,o)})}else 1===n&&1===o||a.push(s(a)+"scale("+n+","+o+")")}(a.scaleX,a.scaleY,i.scaleX,i.scaleY,d,l),a=i=null,function(e){for(var t,n=-1,r=l.length;++n{"use strict";n.r(t),n.d(t,{parseCss:()=>d,parseSvg:()=>l});var r,o,s,a,i=n("./node_modules/d3-interpolate/src/transform/decompose.js");function d(e){return"none"===e?i.identity:(r||(r=document.createElement("DIV"),o=document.documentElement,s=document.defaultView),r.style.transform=e,e=s.getComputedStyle(o.appendChild(r),null).getPropertyValue("transform"),o.removeChild(r),e=e.slice(7,-1).split(","),(0,i.default)(+e[0],+e[1],+e[2],+e[3],+e[4],+e[5]))}function l(e){return null==e?i.identity:(a||(a=document.createElementNS("http://www.w3.org/2000/svg","g")),a.setAttribute("transform",e),(e=a.transform.baseVal.consolidate())?(e=e.matrix,(0,i.default)(e.a,e.b,e.c,e.d,e.e,e.f)):i.identity)}},"./node_modules/d3-interpolate/src/value.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n("./node_modules/d3-color/src/color.js"),o=n("./node_modules/d3-interpolate/src/rgb.js"),s=n("./node_modules/d3-interpolate/src/array.js"),a=n("./node_modules/d3-interpolate/src/date.js"),i=n("./node_modules/d3-interpolate/src/number.js"),d=n("./node_modules/d3-interpolate/src/object.js"),l=n("./node_modules/d3-interpolate/src/string.js"),u=n("./node_modules/d3-interpolate/src/constant.js"),c=n("./node_modules/d3-interpolate/src/numberArray.js");function f(e,t){var n,f=typeof t;return null==t||"boolean"===f?(0,u.default)(t):("number"===f?i.default:"string"===f?(n=(0,r.default)(t))?(t=n,o.default):l.default:t instanceof r.default?o.default:t instanceof Date?a.default:(0,c.isNumberArray)(t)?c.default:Array.isArray(t)?s.genericArray:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?d.default:i.default)(e,t)}},"./node_modules/d3-interpolate/src/zoom.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=Math.SQRT2;function o(e){return((e=Math.exp(e))+1/e)/2}function s(e,t){var n,s,a=e[0],i=e[1],d=e[2],l=t[0],u=t[1],c=t[2],f=l-a,h=u-i,m=f*f+h*h;if(m<1e-12)s=Math.log(c/d)/r,n=function(e){return[a+e*f,i+e*h,d*Math.exp(r*e*s)]};else{var p=Math.sqrt(m),g=(c*c-d*d+4*m)/(2*d*2*p),_=(c*c-d*d-4*m)/(2*c*2*p),y=Math.log(Math.sqrt(g*g+1)-g),v=Math.log(Math.sqrt(_*_+1)-_);s=(v-y)/r,n=function(e){var t,n=e*s,l=o(y),u=d/(2*p)*(l*(t=r*n+y,((t=Math.exp(2*t))-1)/(t+1))-function(e){return((e=Math.exp(e))-1/e)/2}(y));return[a+u*f,i+u*h,d*l/o(r*n+y)]}}return n.duration=1e3*s,n}},"./node_modules/d3-path/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{path:()=>r.default});var r=n("./node_modules/d3-path/src/path.js")},"./node_modules/d3-path/src/path.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=Math.PI,o=2*r,s=1e-6,a=o-s;function i(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new i}i.prototype=d.prototype={constructor:i,moveTo:function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},quadraticCurveTo:function(e,t,n,r){this._+="Q"+ +e+","+ +t+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(e,t,n,r,o,s){this._+="C"+ +e+","+ +t+","+ +n+","+ +r+","+(this._x1=+o)+","+(this._y1=+s)},arcTo:function(e,t,n,o,a){e=+e,t=+t,n=+n,o=+o,a=+a;var i=this._x1,d=this._y1,l=n-e,u=o-t,c=i-e,f=d-t,h=c*c+f*f;if(a<0)throw new Error("negative radius: "+a);if(null===this._x1)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(h>s)if(Math.abs(f*l-u*c)>s&&a){var m=n-i,p=o-d,g=l*l+u*u,_=m*m+p*p,y=Math.sqrt(g),v=Math.sqrt(h),b=a*Math.tan((r-Math.acos((g+h-_)/(2*y*v)))/2),j=b/v,x=b/y;Math.abs(j-1)>s&&(this._+="L"+(e+j*c)+","+(t+j*f)),this._+="A"+a+","+a+",0,0,"+ +(f*m>c*p)+","+(this._x1=e+x*l)+","+(this._y1=t+x*u)}else this._+="L"+(this._x1=e)+","+(this._y1=t)},arc:function(e,t,n,i,d,l){e=+e,t=+t,l=!!l;var u=(n=+n)*Math.cos(i),c=n*Math.sin(i),f=e+u,h=t+c,m=1^l,p=l?i-d:d-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+f+","+h:(Math.abs(this._x1-f)>s||Math.abs(this._y1-h)>s)&&(this._+="L"+f+","+h),n&&(p<0&&(p=p%o+o),p>a?this._+="A"+n+","+n+",0,1,"+m+","+(e-u)+","+(t-c)+"A"+n+","+n+",0,1,"+m+","+(this._x1=f)+","+(this._y1=h):p>s&&(this._+="A"+n+","+n+",0,"+ +(p>=r)+","+m+","+(this._x1=e+n*Math.cos(d))+","+(this._y1=t+n*Math.sin(d))))},rect:function(e,t,n,r){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};const l=d},"./node_modules/d3-quadtree/src/add.js":(e,t,n)=>{"use strict";function r(e){var t=+this._x.call(null,e),n=+this._y.call(null,e);return o(this.cover(t,n),t,n,e)}function o(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var o,s,a,i,d,l,u,c,f,h=e._root,m={data:r},p=e._x0,g=e._y0,_=e._x1,y=e._y1;if(!h)return e._root=m,e;for(;h.length;)if((l=t>=(s=(p+_)/2))?p=s:_=s,(u=n>=(a=(g+y)/2))?g=a:y=a,o=h,!(h=h[c=u<<1|l]))return o[c]=m,e;if(i=+e._x.call(null,h.data),d=+e._y.call(null,h.data),t===i&&n===d)return m.next=h,o?o[c]=m:e._root=m,e;do{o=o?o[c]=new Array(4):e._root=new Array(4),(l=t>=(s=(p+_)/2))?p=s:_=s,(u=n>=(a=(g+y)/2))?g=a:y=a}while((c=u<<1|l)==(f=(d>=a)<<1|i>=s));return o[f]=h,o[c]=m,e}function s(e){var t,n,r,s,a=e.length,i=new Array(a),d=new Array(a),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;nc&&(c=r),sf&&(f=s));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;nr,addAll:()=>s})},"./node_modules/d3-quadtree/src/cover.js":(e,t,n)=>{"use strict";function r(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,o=this._x1,s=this._y1;if(isNaN(n))o=(n=Math.floor(e))+1,s=(r=Math.floor(t))+1;else{for(var a,i,d=o-n,l=this._root;n>e||e>=o||r>t||t>=s;)switch(i=(tr})},"./node_modules/d3-quadtree/src/data.js":(e,t,n)=>{"use strict";function r(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-quadtree/src/extent.js":(e,t,n)=>{"use strict";function r(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-quadtree/src/find.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-quadtree/src/quad.js");function o(e,t,n){var o,s,a,i,d,l,u,c=this._x0,f=this._y0,h=this._x1,m=this._y1,p=[],g=this._root;for(g&&p.push(new r.default(g,c,f,h,m)),null==n?n=1/0:(c=e-n,f=t-n,h=e+n,m=t+n,n*=n);l=p.pop();)if(!(!(g=l.node)||(s=l.x0)>h||(a=l.y0)>m||(i=l.x1)=y)<<1|e>=_)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var v=e-+this._x.call(null,g.data),b=t-+this._y.call(null,g.data),j=v*v+b*b;if(j{"use strict";n.r(t),n.d(t,{quadtree:()=>r.default});var r=n("./node_modules/d3-quadtree/src/quadtree.js")},"./node_modules/d3-quadtree/src/quad.js":(e,t,n)=>{"use strict";function r(e,t,n,r,o){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=o}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-quadtree/src/quadtree.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n("./node_modules/d3-quadtree/src/add.js"),o=n("./node_modules/d3-quadtree/src/cover.js"),s=n("./node_modules/d3-quadtree/src/data.js"),a=n("./node_modules/d3-quadtree/src/extent.js"),i=n("./node_modules/d3-quadtree/src/find.js"),d=n("./node_modules/d3-quadtree/src/remove.js"),l=n("./node_modules/d3-quadtree/src/root.js"),u=n("./node_modules/d3-quadtree/src/size.js"),c=n("./node_modules/d3-quadtree/src/visit.js"),f=n("./node_modules/d3-quadtree/src/visitAfter.js"),h=n("./node_modules/d3-quadtree/src/x.js"),m=n("./node_modules/d3-quadtree/src/y.js");function p(e,t,n){var r=new g(null==t?h.defaultX:t,null==n?m.defaultY:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function g(e,t,n,r,o,s){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=o,this._y1=s,this._root=void 0}function _(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var y=p.prototype=g.prototype;y.copy=function(){var e,t,n=new g(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=_(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var o=0;o<4;++o)(t=r.source[o])&&(t.length?e.push({source:t,target:r.target[o]=new Array(4)}):r.target[o]=_(t));return n},y.add=r.default,y.addAll=r.addAll,y.cover=o.default,y.data=s.default,y.extent=a.default,y.find=i.default,y.remove=d.default,y.removeAll=d.removeAll,y.root=l.default,y.size=u.default,y.visit=c.default,y.visitAfter=f.default,y.x=h.default,y.y=m.default},"./node_modules/d3-quadtree/src/remove.js":(e,t,n)=>{"use strict";function r(e){if(isNaN(s=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,r,o,s,a,i,d,l,u,c,f,h=this._root,m=this._x0,p=this._y0,g=this._x1,_=this._y1;if(!h)return this;if(h.length)for(;;){if((l=s>=(i=(m+g)/2))?m=i:g=i,(u=a>=(d=(p+_)/2))?p=d:_=d,t=h,!(h=h[c=u<<1|l]))return this;if(!h.length)break;(t[c+1&3]||t[c+2&3]||t[c+3&3])&&(n=t,f=c)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return(o=h.next)&&delete h.next,r?(o?r.next=o:delete r.next,this):t?(o?t[c]=o:delete t[c],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[f]=h:this._root=h),this):(this._root=o,this)}function o(e){for(var t=0,n=e.length;tr,removeAll:()=>o})},"./node_modules/d3-quadtree/src/root.js":(e,t,n)=>{"use strict";function r(){return this._root}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-quadtree/src/size.js":(e,t,n)=>{"use strict";function r(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-quadtree/src/visit.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-quadtree/src/quad.js");function o(e){var t,n,o,s,a,i,d=[],l=this._root;for(l&&d.push(new r.default(l,this._x0,this._y0,this._x1,this._y1));t=d.pop();)if(!e(l=t.node,o=t.x0,s=t.y0,a=t.x1,i=t.y1)&&l.length){var u=(o+a)/2,c=(s+i)/2;(n=l[3])&&d.push(new r.default(n,u,c,a,i)),(n=l[2])&&d.push(new r.default(n,o,c,u,i)),(n=l[1])&&d.push(new r.default(n,u,s,a,c)),(n=l[0])&&d.push(new r.default(n,o,s,u,c))}return this}},"./node_modules/d3-quadtree/src/visitAfter.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-quadtree/src/quad.js");function o(e){var t,n=[],o=[];for(this._root&&n.push(new r.default(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var s=t.node;if(s.length){var a,i=t.x0,d=t.y0,l=t.x1,u=t.y1,c=(i+l)/2,f=(d+u)/2;(a=s[0])&&n.push(new r.default(a,i,d,c,f)),(a=s[1])&&n.push(new r.default(a,c,d,l,f)),(a=s[2])&&n.push(new r.default(a,i,f,c,u)),(a=s[3])&&n.push(new r.default(a,c,f,l,u))}o.push(t)}for(;t=o.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this}},"./node_modules/d3-quadtree/src/x.js":(e,t,n)=>{"use strict";function r(e){return e[0]}function o(e){return arguments.length?(this._x=e,this):this._x}n.r(t),n.d(t,{defaultX:()=>r,default:()=>o})},"./node_modules/d3-quadtree/src/y.js":(e,t,n)=>{"use strict";function r(e){return e[1]}function o(e){return arguments.length?(this._y=e,this):this._y}n.r(t),n.d(t,{defaultY:()=>r,default:()=>o})},"./node_modules/d3-selection/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/create.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/creator.js"),o=n("./node_modules/d3-selection/src/select.js");function s(e){return(0,o.default)((0,r.default)(e).call(document.documentElement))}},"./node_modules/d3-selection/src/creator.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-selection/src/namespace.js"),o=n("./node_modules/d3-selection/src/namespaces.js");function s(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===o.xhtml&&t.documentElement.namespaceURI===o.xhtml?t.createElement(e):t.createElementNS(n,e)}}function a(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function i(e){var t=(0,r.default)(e);return(t.local?a:s)(t)}},"./node_modules/d3-selection/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{create:()=>r.default,creator:()=>o.default,local:()=>s.default,matcher:()=>a.default,mouse:()=>i.default,namespace:()=>d.default,namespaces:()=>l.default,clientPoint:()=>u.default,select:()=>c.default,selectAll:()=>f.default,selection:()=>h.default,selector:()=>m.default,selectorAll:()=>p.default,style:()=>g.styleValue,touch:()=>_.default,touches:()=>y.default,window:()=>v.default,event:()=>b.event,customEvent:()=>b.customEvent});var r=n("./node_modules/d3-selection/src/create.js"),o=n("./node_modules/d3-selection/src/creator.js"),s=n("./node_modules/d3-selection/src/local.js"),a=n("./node_modules/d3-selection/src/matcher.js"),i=n("./node_modules/d3-selection/src/mouse.js"),d=n("./node_modules/d3-selection/src/namespace.js"),l=n("./node_modules/d3-selection/src/namespaces.js"),u=n("./node_modules/d3-selection/src/point.js"),c=n("./node_modules/d3-selection/src/select.js"),f=n("./node_modules/d3-selection/src/selectAll.js"),h=n("./node_modules/d3-selection/src/selection/index.js"),m=n("./node_modules/d3-selection/src/selector.js"),p=n("./node_modules/d3-selection/src/selectorAll.js"),g=n("./node_modules/d3-selection/src/selection/style.js"),_=n("./node_modules/d3-selection/src/touch.js"),y=n("./node_modules/d3-selection/src/touches.js"),v=n("./node_modules/d3-selection/src/window.js"),b=n("./node_modules/d3-selection/src/selection/on.js")},"./node_modules/d3-selection/src/local.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=0;function o(){return new s}function s(){this._="@"+(++r).toString(36)}s.prototype=o.prototype={constructor:s,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}}},"./node_modules/d3-selection/src/matcher.js":(e,t,n)=>{"use strict";function r(e){return function(){return this.matches(e)}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/mouse.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/sourceEvent.js"),o=n("./node_modules/d3-selection/src/point.js");function s(e){var t=(0,r.default)();return t.changedTouches&&(t=t.changedTouches[0]),(0,o.default)(e,t)}},"./node_modules/d3-selection/src/namespace.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/namespaces.js");function o(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.default.hasOwnProperty(t)?{space:r.default[t],local:e}:e}},"./node_modules/d3-selection/src/namespaces.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{xhtml:()=>r,default:()=>o});var r="http://www.w3.org/1999/xhtml";const o={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},"./node_modules/d3-selection/src/point.js":(e,t,n)=>{"use strict";function r(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}var o=e.getBoundingClientRect();return[t.clientX-o.left-e.clientLeft,t.clientY-o.top-e.clientTop]}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/select.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/selection/index.js");function o(e){return"string"==typeof e?new r.Selection([[document.querySelector(e)]],[document.documentElement]):new r.Selection([[e]],r.root)}},"./node_modules/d3-selection/src/selectAll.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/selection/index.js");function o(e){return"string"==typeof e?new r.Selection([document.querySelectorAll(e)],[document.documentElement]):new r.Selection([null==e?[]:e],r.root)}},"./node_modules/d3-selection/src/selection/append.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/creator.js");function o(e){var t="function"==typeof e?e:(0,r.default)(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))}},"./node_modules/d3-selection/src/selection/attr.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n("./node_modules/d3-selection/src/namespace.js");function o(e){return function(){this.removeAttribute(e)}}function s(e){return function(){this.removeAttributeNS(e.space,e.local)}}function a(e,t){return function(){this.setAttribute(e,t)}}function i(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function d(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function l(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function u(e,t){var n=(0,r.default)(e);if(arguments.length<2){var u=this.node();return n.local?u.getAttributeNS(n.space,n.local):u.getAttribute(n)}return this.each((null==t?n.local?s:o:"function"==typeof t?n.local?l:d:n.local?i:a)(n,t))}},"./node_modules/d3-selection/src/selection/call.js":(e,t,n)=>{"use strict";function r(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/classed.js":(e,t,n)=>{"use strict";function r(e){return e.trim().split(/^|\s+/)}function o(e){return e.classList||new s(e)}function s(e){this._node=e,this._names=r(e.getAttribute("class")||"")}function a(e,t){for(var n=o(e),r=-1,s=t.length;++rc}),s.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}}},"./node_modules/d3-selection/src/selection/clone.js":(e,t,n)=>{"use strict";function r(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function o(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function s(e){return this.select(e?o:r)}n.r(t),n.d(t,{default:()=>s})},"./node_modules/d3-selection/src/selection/data.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/d3-selection/src/selection/index.js"),o=n("./node_modules/d3-selection/src/selection/enter.js"),s=n("./node_modules/d3-selection/src/constant.js");function a(e,t,n,r,s,a){for(var i,d=0,l=t.length,u=a.length;d=k&&(k=w+1);!(x=b[k])&&++k{"use strict";function r(e){return arguments.length?this.property("__data__",e):this.node().__data__}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/dispatch.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-selection/src/window.js");function o(e,t,n){var o=(0,r.default)(e),s=o.CustomEvent;"function"==typeof s?s=new s(t,n):(s=o.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function s(e,t){return function(){return o(this,e,t)}}function a(e,t){return function(){return o(this,e,t.apply(this,arguments))}}function i(e,t){return this.each(("function"==typeof t?a:s)(e,t))}},"./node_modules/d3-selection/src/selection/each.js":(e,t,n)=>{"use strict";function r(e){for(var t=this._groups,n=0,r=t.length;nr})},"./node_modules/d3-selection/src/selection/empty.js":(e,t,n)=>{"use strict";function r(){return!this.node()}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/enter.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,EnterNode:()=>a});var r=n("./node_modules/d3-selection/src/selection/sparse.js"),o=n("./node_modules/d3-selection/src/selection/index.js");function s(){return new o.Selection(this._enter||this._groups.map(r.default),this._parents)}function a(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}a.prototype={constructor:a,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}}},"./node_modules/d3-selection/src/selection/exit.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/selection/sparse.js"),o=n("./node_modules/d3-selection/src/selection/index.js");function s(){return new o.Selection(this._exit||this._groups.map(r.default),this._parents)}},"./node_modules/d3-selection/src/selection/filter.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/selection/index.js"),o=n("./node_modules/d3-selection/src/matcher.js");function s(e){"function"!=typeof e&&(e=(0,o.default)(e));for(var t=this._groups,n=t.length,s=new Array(n),a=0;a{"use strict";function r(){this.innerHTML=""}function o(e){return function(){this.innerHTML=e}}function s(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function a(e){return arguments.length?this.each(null==e?r:("function"==typeof e?s:o)(e)):this.node().innerHTML}n.r(t),n.d(t,{default:()=>a})},"./node_modules/d3-selection/src/selection/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{root:()=>B,Selection:()=>R,default:()=>P});var r=n("./node_modules/d3-selection/src/selection/select.js"),o=n("./node_modules/d3-selection/src/selection/selectAll.js"),s=n("./node_modules/d3-selection/src/selection/filter.js"),a=n("./node_modules/d3-selection/src/selection/data.js"),i=n("./node_modules/d3-selection/src/selection/enter.js"),d=n("./node_modules/d3-selection/src/selection/exit.js"),l=n("./node_modules/d3-selection/src/selection/join.js"),u=n("./node_modules/d3-selection/src/selection/merge.js"),c=n("./node_modules/d3-selection/src/selection/order.js"),f=n("./node_modules/d3-selection/src/selection/sort.js"),h=n("./node_modules/d3-selection/src/selection/call.js"),m=n("./node_modules/d3-selection/src/selection/nodes.js"),p=n("./node_modules/d3-selection/src/selection/node.js"),g=n("./node_modules/d3-selection/src/selection/size.js"),_=n("./node_modules/d3-selection/src/selection/empty.js"),y=n("./node_modules/d3-selection/src/selection/each.js"),v=n("./node_modules/d3-selection/src/selection/attr.js"),b=n("./node_modules/d3-selection/src/selection/style.js"),j=n("./node_modules/d3-selection/src/selection/property.js"),x=n("./node_modules/d3-selection/src/selection/classed.js"),w=n("./node_modules/d3-selection/src/selection/text.js"),k=n("./node_modules/d3-selection/src/selection/html.js"),C=n("./node_modules/d3-selection/src/selection/raise.js"),T=n("./node_modules/d3-selection/src/selection/lower.js"),E=n("./node_modules/d3-selection/src/selection/append.js"),S=n("./node_modules/d3-selection/src/selection/insert.js"),M=n("./node_modules/d3-selection/src/selection/remove.js"),A=n("./node_modules/d3-selection/src/selection/clone.js"),N=n("./node_modules/d3-selection/src/selection/datum.js"),D=n("./node_modules/d3-selection/src/selection/on.js"),O=n("./node_modules/d3-selection/src/selection/dispatch.js"),B=[null];function R(e,t){this._groups=e,this._parents=t}function I(){return new R([[document.documentElement]],B)}R.prototype=I.prototype={constructor:R,select:r.default,selectAll:o.default,filter:s.default,data:a.default,enter:i.default,exit:d.default,join:l.default,merge:u.default,order:c.default,sort:f.default,call:h.default,nodes:m.default,node:p.default,size:g.default,empty:_.default,each:y.default,attr:v.default,style:b.default,property:j.default,classed:x.default,text:w.default,html:k.default,raise:C.default,lower:T.default,append:E.default,insert:S.default,remove:M.default,clone:A.default,datum:N.default,on:D.default,dispatch:O.default};const P=I},"./node_modules/d3-selection/src/selection/insert.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-selection/src/creator.js"),o=n("./node_modules/d3-selection/src/selector.js");function s(){return null}function a(e,t){var n="function"==typeof e?e:(0,r.default)(e),a=null==t?s:"function"==typeof t?t:(0,o.default)(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),a.apply(this,arguments)||null)}))}},"./node_modules/d3-selection/src/selection/join.js":(e,t,n)=>{"use strict";function r(e,t,n){var r=this.enter(),o=this,s=this.exit();return r="function"==typeof e?e(r):r.append(e+""),null!=t&&(o=t(o)),null==n?s.remove():n(s),r&&o?r.merge(o).order():o}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/lower.js":(e,t,n)=>{"use strict";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function o(){return this.each(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/d3-selection/src/selection/merge.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/selection/index.js");function o(e){for(var t=this._groups,n=e._groups,o=t.length,s=n.length,a=Math.min(o,s),i=new Array(o),d=0;d{"use strict";function r(){for(var e=this._groups,t=0,n=e.length;tr})},"./node_modules/d3-selection/src/selection/nodes.js":(e,t,n)=>{"use strict";function r(){var e=new Array(this.size()),t=-1;return this.each((function(){e[++t]=this})),e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/on.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{event:()=>o,default:()=>u,customEvent:()=>c});var r={},o=null;function s(e,t,n){return e=a(e,t,n),function(t){var n=t.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||e.call(this,t)}}function a(e,t,n){return function(r){var s=o;o=r;try{e.call(this,this.__data__,t,n)}finally{o=s}}}function i(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}function d(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,s=t.length;r{"use strict";function r(){for(var e=this._groups,t=-1,n=e.length;++t=0;)(r=o[s])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/property.js":(e,t,n)=>{"use strict";function r(e){return function(){delete this[e]}}function o(e,t){return function(){this[e]=t}}function s(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function a(e,t){return arguments.length>1?this.each((null==t?r:"function"==typeof t?s:o)(e,t)):this.node()[e]}n.r(t),n.d(t,{default:()=>a})},"./node_modules/d3-selection/src/selection/raise.js":(e,t,n)=>{"use strict";function r(){this.nextSibling&&this.parentNode.appendChild(this)}function o(){return this.each(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/d3-selection/src/selection/remove.js":(e,t,n)=>{"use strict";function r(){var e=this.parentNode;e&&e.removeChild(this)}function o(){return this.each(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/d3-selection/src/selection/select.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/selection/index.js"),o=n("./node_modules/d3-selection/src/selector.js");function s(e){"function"!=typeof e&&(e=(0,o.default)(e));for(var t=this._groups,n=t.length,s=new Array(n),a=0;a{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/selection/index.js"),o=n("./node_modules/d3-selection/src/selectorAll.js");function s(e){"function"!=typeof e&&(e=(0,o.default)(e));for(var t=this._groups,n=t.length,s=[],a=[],i=0;i{"use strict";function r(){var e=0;return this.each((function(){++e})),e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/sort.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/selection/index.js");function o(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=s);for(var n=this._groups,o=n.length,a=new Array(o),i=0;it?1:e>=t?0:NaN}},"./node_modules/d3-selection/src/selection/sparse.js":(e,t,n)=>{"use strict";function r(e){return new Array(e.length)}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-selection/src/selection/style.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i,styleValue:()=>d});var r=n("./node_modules/d3-selection/src/window.js");function o(e){return function(){this.style.removeProperty(e)}}function s(e,t,n){return function(){this.style.setProperty(e,t,n)}}function a(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function i(e,t,n){return arguments.length>1?this.each((null==t?o:"function"==typeof t?a:s)(e,t,null==n?"":n)):d(this.node(),e)}function d(e,t){return e.style.getPropertyValue(t)||(0,r.default)(e).getComputedStyle(e,null).getPropertyValue(t)}},"./node_modules/d3-selection/src/selection/text.js":(e,t,n)=>{"use strict";function r(){this.textContent=""}function o(e){return function(){this.textContent=e}}function s(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function a(e){return arguments.length?this.each(null==e?r:("function"==typeof e?s:o)(e)):this.node().textContent}n.r(t),n.d(t,{default:()=>a})},"./node_modules/d3-selection/src/selector.js":(e,t,n)=>{"use strict";function r(){}function o(e){return null==e?r:function(){return this.querySelector(e)}}n.r(t),n.d(t,{default:()=>o})},"./node_modules/d3-selection/src/selectorAll.js":(e,t,n)=>{"use strict";function r(){return[]}function o(e){return null==e?r:function(){return this.querySelectorAll(e)}}n.r(t),n.d(t,{default:()=>o})},"./node_modules/d3-selection/src/sourceEvent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/selection/on.js");function o(){for(var e,t=r.event;e=t.sourceEvent;)t=e;return t}},"./node_modules/d3-selection/src/touch.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/sourceEvent.js"),o=n("./node_modules/d3-selection/src/point.js");function s(e,t,n){arguments.length<3&&(n=t,t=(0,r.default)().changedTouches);for(var s,a=0,i=t?t.length:0;a{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/sourceEvent.js"),o=n("./node_modules/d3-selection/src/point.js");function s(e,t){null==t&&(t=(0,r.default)().touches);for(var n=0,s=t?t.length:0,a=new Array(s);n{"use strict";function r(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-time-format/src/defaultLocale.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{timeFormat:()=>o,timeParse:()=>s,utcFormat:()=>a,utcParse:()=>i,default:()=>l});var r,o,s,a,i,d=n("./node_modules/d3-time-format/src/locale.js");function l(e){return r=(0,d.default)(e),o=r.format,s=r.parse,a=r.utcFormat,i=r.utcParse,r}l({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})},"./node_modules/d3-time-format/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{timeFormatDefaultLocale:()=>r.default,timeFormat:()=>r.timeFormat,timeParse:()=>r.timeParse,utcFormat:()=>r.utcFormat,utcParse:()=>r.utcParse,timeFormatLocale:()=>o.default,isoFormat:()=>s.default,isoParse:()=>a.default});var r=n("./node_modules/d3-time-format/src/defaultLocale.js"),o=n("./node_modules/d3-time-format/src/locale.js"),s=n("./node_modules/d3-time-format/src/isoFormat.js"),a=n("./node_modules/d3-time-format/src/isoParse.js")},"./node_modules/d3-time-format/src/isoFormat.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{isoSpecifier:()=>o,default:()=>s});var r=n("./node_modules/d3-time-format/src/defaultLocale.js"),o="%Y-%m-%dT%H:%M:%S.%LZ";const s=Date.prototype.toISOString?function(e){return e.toISOString()}:(0,r.utcFormat)(o)},"./node_modules/d3-time-format/src/isoParse.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-time-format/src/isoFormat.js"),o=n("./node_modules/d3-time-format/src/defaultLocale.js");const s=+new Date("2000-01-01T00:00:00.000Z")?function(e){var t=new Date(e);return isNaN(t)?null:t}:(0,o.utcParse)(r.isoSpecifier)},"./node_modules/d3-time-format/src/locale.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n("./node_modules/d3-time/src/utcWeek.js"),o=n("./node_modules/d3-time/src/utcDay.js"),s=n("./node_modules/d3-time/src/week.js"),a=n("./node_modules/d3-time/src/day.js"),i=n("./node_modules/d3-time/src/year.js"),d=n("./node_modules/d3-time/src/utcYear.js");function l(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function u(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function c(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function f(e){var t=e.dateTime,n=e.date,i=e.time,d=e.periods,f=e.days,m=e.shortDays,p=e.months,g=e.shortMonths,_=v(d),y=b(d),Q=v(f),ye=b(f),Ae=v(m),Ne=b(m),De=v(p),Oe=b(p),Be=v(g),Re=b(g),Ie={a:function(e){return m[e.getDay()]},A:function(e){return f[e.getDay()]},b:function(e){return g[e.getMonth()]},B:function(e){return p[e.getMonth()]},c:null,d:q,e:q,f:V,g:re,G:se,H:Y,I:U,j:H,L:G,m:W,M:$,p:function(e){return d[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Se,s:Me,S:X,u:Z,U:K,V:J,w:ee,W:te,x:null,X:null,y:ne,Y:oe,Z:ae,"%":Ee},Pe={a:function(e){return m[e.getUTCDay()]},A:function(e){return f[e.getUTCDay()]},b:function(e){return g[e.getUTCMonth()]},B:function(e){return p[e.getUTCMonth()]},c:null,d:ie,e:ie,f:fe,g:we,G:Ce,H:de,I:le,j:ue,L:ce,m:he,M:me,p:function(e){return d[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Se,s:Me,S:pe,u:ge,U:_e,V:ve,w:be,W:je,x:null,X:null,y:xe,Y:ke,Z:Te,"%":Ee},Le={a:function(e,t,n){var r=Ae.exec(t.slice(n));return r?(e.w=Ne[r[0].toLowerCase()],n+r[0].length):-1},A:function(e,t,n){var r=Q.exec(t.slice(n));return r?(e.w=ye[r[0].toLowerCase()],n+r[0].length):-1},b:function(e,t,n){var r=Be.exec(t.slice(n));return r?(e.m=Re[r[0].toLowerCase()],n+r[0].length):-1},B:function(e,t,n){var r=De.exec(t.slice(n));return r?(e.m=Oe[r[0].toLowerCase()],n+r[0].length):-1},c:function(e,n,r){return qe(e,t,n,r)},d:N,e:N,f:P,g:E,G:T,H:O,I:O,j:D,L:I,m:A,M:B,p:function(e,t,n){var r=_.exec(t.slice(n));return r?(e.p=y[r[0].toLowerCase()],n+r[0].length):-1},q:M,Q:F,s:z,S:R,u:x,U:w,V:k,w:j,W:C,x:function(e,t,r){return qe(e,n,t,r)},X:function(e,t,n){return qe(e,i,t,n)},y:E,Y:T,Z:S,"%":L};function Fe(e,t){return function(n){var r,o,s,a=[],i=-1,d=0,l=e.length;for(n instanceof Date||(n=new Date(+n));++i53)return null;"w"in f||(f.w=1),"Z"in f?(d=(i=u(c(f.y,0,1))).getUTCDay(),i=d>4||0===d?r.utcMonday.ceil(i):(0,r.utcMonday)(i),i=o.default.offset(i,7*(f.V-1)),f.y=i.getUTCFullYear(),f.m=i.getUTCMonth(),f.d=i.getUTCDate()+(f.w+6)%7):(d=(i=l(c(f.y,0,1))).getDay(),i=d>4||0===d?s.monday.ceil(i):(0,s.monday)(i),i=a.default.offset(i,7*(f.V-1)),f.y=i.getFullYear(),f.m=i.getMonth(),f.d=i.getDate()+(f.w+6)%7)}else("W"in f||"U"in f)&&("w"in f||(f.w="u"in f?f.u%7:"W"in f?1:0),d="Z"in f?u(c(f.y,0,1)).getUTCDay():l(c(f.y,0,1)).getDay(),f.m=0,f.d="W"in f?(f.w+6)%7+7*f.W-(d+5)%7:f.w+7*f.U-(d+6)%7);return"Z"in f?(f.H+=f.Z/100|0,f.M+=f.Z%100,u(f)):l(f)}}function qe(e,t,n,r){for(var o,s,a=0,i=t.length,d=n.length;a=d)return-1;if(37===(o=t.charCodeAt(a++))){if(o=t.charAt(a++),!(s=Le[o in h?t.charAt(a++):o])||(r=s(e,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}return Ie.x=Fe(n,Ie),Ie.X=Fe(i,Ie),Ie.c=Fe(t,Ie),Pe.x=Fe(n,Pe),Pe.X=Fe(i,Pe),Pe.c=Fe(t,Pe),{format:function(e){var t=Fe(e+="",Ie);return t.toString=function(){return e},t},parse:function(e){var t=ze(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=Fe(e+="",Pe);return t.toString=function(){return e},t},utcParse:function(e){var t=ze(e+="",!0);return t.toString=function(){return e},t}}}var h={"-":"",_:" ",0:"0"},m=/^\s*\d+/,p=/^%/,g=/[\\^$*+?|[\]().{}]/g;function _(e,t,n){var r=e<0?"-":"",o=(r?-e:e)+"",s=o.length;return r+(s68?1900:2e3),n+r[0].length):-1}function S(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function M(e,t,n){var r=m.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function A(e,t,n){var r=m.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function N(e,t,n){var r=m.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function D(e,t,n){var r=m.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function O(e,t,n){var r=m.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function B(e,t,n){var r=m.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function R(e,t,n){var r=m.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function I(e,t,n){var r=m.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function P(e,t,n){var r=m.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function L(e,t,n){var r=p.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function F(e,t,n){var r=m.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function z(e,t,n){var r=m.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function q(e,t){return _(e.getDate(),t,2)}function Y(e,t){return _(e.getHours(),t,2)}function U(e,t){return _(e.getHours()%12||12,t,2)}function H(e,t){return _(1+a.default.count((0,i.default)(e),e),t,3)}function G(e,t){return _(e.getMilliseconds(),t,3)}function V(e,t){return G(e,t)+"000"}function W(e,t){return _(e.getMonth()+1,t,2)}function $(e,t){return _(e.getMinutes(),t,2)}function X(e,t){return _(e.getSeconds(),t,2)}function Z(e){var t=e.getDay();return 0===t?7:t}function K(e,t){return _(s.sunday.count((0,i.default)(e)-1,e),t,2)}function Q(e){var t=e.getDay();return t>=4||0===t?(0,s.thursday)(e):s.thursday.ceil(e)}function J(e,t){return e=Q(e),_(s.thursday.count((0,i.default)(e),e)+(4===(0,i.default)(e).getDay()),t,2)}function ee(e){return e.getDay()}function te(e,t){return _(s.monday.count((0,i.default)(e)-1,e),t,2)}function ne(e,t){return _(e.getFullYear()%100,t,2)}function re(e,t){return _((e=Q(e)).getFullYear()%100,t,2)}function oe(e,t){return _(e.getFullYear()%1e4,t,4)}function se(e,t){var n=e.getDay();return _((e=n>=4||0===n?(0,s.thursday)(e):s.thursday.ceil(e)).getFullYear()%1e4,t,4)}function ae(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+_(t/60|0,"0",2)+_(t%60,"0",2)}function ie(e,t){return _(e.getUTCDate(),t,2)}function de(e,t){return _(e.getUTCHours(),t,2)}function le(e,t){return _(e.getUTCHours()%12||12,t,2)}function ue(e,t){return _(1+o.default.count((0,d.default)(e),e),t,3)}function ce(e,t){return _(e.getUTCMilliseconds(),t,3)}function fe(e,t){return ce(e,t)+"000"}function he(e,t){return _(e.getUTCMonth()+1,t,2)}function me(e,t){return _(e.getUTCMinutes(),t,2)}function pe(e,t){return _(e.getUTCSeconds(),t,2)}function ge(e){var t=e.getUTCDay();return 0===t?7:t}function _e(e,t){return _(r.utcSunday.count((0,d.default)(e)-1,e),t,2)}function ye(e){var t=e.getUTCDay();return t>=4||0===t?(0,r.utcThursday)(e):r.utcThursday.ceil(e)}function ve(e,t){return e=ye(e),_(r.utcThursday.count((0,d.default)(e),e)+(4===(0,d.default)(e).getUTCDay()),t,2)}function be(e){return e.getUTCDay()}function je(e,t){return _(r.utcMonday.count((0,d.default)(e)-1,e),t,2)}function xe(e,t){return _(e.getUTCFullYear()%100,t,2)}function we(e,t){return _((e=ye(e)).getUTCFullYear()%100,t,2)}function ke(e,t){return _(e.getUTCFullYear()%1e4,t,4)}function Ce(e,t){var n=e.getUTCDay();return _((e=n>=4||0===n?(0,r.utcThursday)(e):r.utcThursday.ceil(e)).getUTCFullYear()%1e4,t,4)}function Te(){return"+0000"}function Ee(){return"%"}function Se(e){return+e}function Me(e){return Math.floor(+e/1e3)}},"./node_modules/d3-time/src/day.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,days:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.durationMinute)/o.durationDay}),(function(e){return e.getDate()-1}));const a=s;var i=s.range},"./node_modules/d3-time/src/duration.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{durationSecond:()=>r,durationMinute:()=>o,durationHour:()=>s,durationDay:()=>a,durationWeek:()=>i});var r=1e3,o=6e4,s=36e5,a=864e5,i=6048e5},"./node_modules/d3-time/src/hour.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,hours:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*o.durationSecond-e.getMinutes()*o.durationMinute)}),(function(e,t){e.setTime(+e+t*o.durationHour)}),(function(e,t){return(t-e)/o.durationHour}),(function(e){return e.getHours()}));const a=s;var i=s.range},"./node_modules/d3-time/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{timeInterval:()=>r.default,timeMillisecond:()=>o.default,timeMilliseconds:()=>o.milliseconds,utcMillisecond:()=>o.default,utcMilliseconds:()=>o.milliseconds,timeSecond:()=>s.default,timeSeconds:()=>s.seconds,utcSecond:()=>s.default,utcSeconds:()=>s.seconds,timeMinute:()=>a.default,timeMinutes:()=>a.minutes,timeHour:()=>i.default,timeHours:()=>i.hours,timeDay:()=>d.default,timeDays:()=>d.days,timeWeek:()=>l.sunday,timeWeeks:()=>l.sundays,timeSunday:()=>l.sunday,timeSundays:()=>l.sundays,timeMonday:()=>l.monday,timeMondays:()=>l.mondays,timeTuesday:()=>l.tuesday,timeTuesdays:()=>l.tuesdays,timeWednesday:()=>l.wednesday,timeWednesdays:()=>l.wednesdays,timeThursday:()=>l.thursday,timeThursdays:()=>l.thursdays,timeFriday:()=>l.friday,timeFridays:()=>l.fridays,timeSaturday:()=>l.saturday,timeSaturdays:()=>l.saturdays,timeMonth:()=>u.default,timeMonths:()=>u.months,timeYear:()=>c.default,timeYears:()=>c.years,utcMinute:()=>f.default,utcMinutes:()=>f.utcMinutes,utcHour:()=>h.default,utcHours:()=>h.utcHours,utcDay:()=>m.default,utcDays:()=>m.utcDays,utcWeek:()=>p.utcSunday,utcWeeks:()=>p.utcSundays,utcSunday:()=>p.utcSunday,utcSundays:()=>p.utcSundays,utcMonday:()=>p.utcMonday,utcMondays:()=>p.utcMondays,utcTuesday:()=>p.utcTuesday,utcTuesdays:()=>p.utcTuesdays,utcWednesday:()=>p.utcWednesday,utcWednesdays:()=>p.utcWednesdays,utcThursday:()=>p.utcThursday,utcThursdays:()=>p.utcThursdays,utcFriday:()=>p.utcFriday,utcFridays:()=>p.utcFridays,utcSaturday:()=>p.utcSaturday,utcSaturdays:()=>p.utcSaturdays,utcMonth:()=>g.default,utcMonths:()=>g.utcMonths,utcYear:()=>_.default,utcYears:()=>_.utcYears});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/millisecond.js"),s=n("./node_modules/d3-time/src/second.js"),a=n("./node_modules/d3-time/src/minute.js"),i=n("./node_modules/d3-time/src/hour.js"),d=n("./node_modules/d3-time/src/day.js"),l=n("./node_modules/d3-time/src/week.js"),u=n("./node_modules/d3-time/src/month.js"),c=n("./node_modules/d3-time/src/year.js"),f=n("./node_modules/d3-time/src/utcMinute.js"),h=n("./node_modules/d3-time/src/utcHour.js"),m=n("./node_modules/d3-time/src/utcDay.js"),p=n("./node_modules/d3-time/src/utcWeek.js"),g=n("./node_modules/d3-time/src/utcMonth.js"),_=n("./node_modules/d3-time/src/utcYear.js")},"./node_modules/d3-time/src/interval.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=new Date,o=new Date;function s(e,t,n,a){function i(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return i.floor=function(t){return e(t=new Date(+t)),t},i.ceil=function(n){return e(n=new Date(n-1)),t(n,1),e(n),n},i.round=function(e){var t=i(e),n=i.ceil(e);return e-t0))return a;do{a.push(s=new Date(+n)),t(n,o),e(n)}while(s=t)for(;e(t),!n(t);)t.setTime(t-1)}),(function(e,r){if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}))},n&&(i.count=function(t,s){return r.setTime(+t),o.setTime(+s),e(r),e(o),Math.floor(n(r,o))},i.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(a?function(t){return a(t)%e==0}:function(t){return i.count(0,t)%e==0}):i:null}),i}},"./node_modules/d3-time/src/millisecond.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,milliseconds:()=>a});var r=n("./node_modules/d3-time/src/interval.js"),o=(0,r.default)((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));o.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?(0,r.default)((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,n){t.setTime(+t+n*e)}),(function(t,n){return(n-t)/e})):o:null};const s=o;var a=o.range},"./node_modules/d3-time/src/minute.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,minutes:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*o.durationSecond)}),(function(e,t){e.setTime(+e+t*o.durationMinute)}),(function(e,t){return(t-e)/o.durationMinute}),(function(e){return e.getMinutes()}));const a=s;var i=s.range},"./node_modules/d3-time/src/month.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o,months:()=>s});var r=(0,n("./node_modules/d3-time/src/interval.js").default)((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}));const o=r;var s=r.range},"./node_modules/d3-time/src/second.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,seconds:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+t*o.durationSecond)}),(function(e,t){return(t-e)/o.durationSecond}),(function(e){return e.getUTCSeconds()}));const a=s;var i=s.range},"./node_modules/d3-time/src/utcDay.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,utcDays:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/o.durationDay}),(function(e){return e.getUTCDate()-1}));const a=s;var i=s.range},"./node_modules/d3-time/src/utcHour.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,utcHours:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+t*o.durationHour)}),(function(e,t){return(t-e)/o.durationHour}),(function(e){return e.getUTCHours()}));const a=s;var i=s.range},"./node_modules/d3-time/src/utcMinute.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,utcMinutes:()=>i});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js"),s=(0,r.default)((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+t*o.durationMinute)}),(function(e,t){return(t-e)/o.durationMinute}),(function(e){return e.getUTCMinutes()}));const a=s;var i=s.range},"./node_modules/d3-time/src/utcMonth.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o,utcMonths:()=>s});var r=(0,n("./node_modules/d3-time/src/interval.js").default)((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}));const o=r;var s=r.range},"./node_modules/d3-time/src/utcWeek.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{utcSunday:()=>a,utcMonday:()=>i,utcTuesday:()=>d,utcWednesday:()=>l,utcThursday:()=>u,utcFriday:()=>c,utcSaturday:()=>f,utcSundays:()=>h,utcMondays:()=>m,utcTuesdays:()=>p,utcWednesdays:()=>g,utcThursdays:()=>_,utcFridays:()=>y,utcSaturdays:()=>v});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js");function s(e){return(0,r.default)((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/o.durationWeek}))}var a=s(0),i=s(1),d=s(2),l=s(3),u=s(4),c=s(5),f=s(6),h=a.range,m=i.range,p=d.range,g=l.range,_=u.range,y=c.range,v=f.range},"./node_modules/d3-time/src/utcYear.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,utcYears:()=>a});var r=n("./node_modules/d3-time/src/interval.js"),o=(0,r.default)((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));o.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,r.default)((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null};const s=o;var a=o.range},"./node_modules/d3-time/src/week.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{sunday:()=>a,monday:()=>i,tuesday:()=>d,wednesday:()=>l,thursday:()=>u,friday:()=>c,saturday:()=>f,sundays:()=>h,mondays:()=>m,tuesdays:()=>p,wednesdays:()=>g,thursdays:()=>_,fridays:()=>y,saturdays:()=>v});var r=n("./node_modules/d3-time/src/interval.js"),o=n("./node_modules/d3-time/src/duration.js");function s(e){return(0,r.default)((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.durationMinute)/o.durationWeek}))}var a=s(0),i=s(1),d=s(2),l=s(3),u=s(4),c=s(5),f=s(6),h=a.range,m=i.range,p=d.range,g=l.range,_=u.range,y=c.range,v=f.range},"./node_modules/d3-time/src/year.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,years:()=>a});var r=n("./node_modules/d3-time/src/interval.js"),o=(0,r.default)((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));o.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,r.default)((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n*e)})):null};const s=o;var a=o.range},"./node_modules/d3-timer/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{now:()=>r.now,timer:()=>r.timer,timerFlush:()=>r.timerFlush,timeout:()=>o.default,interval:()=>s.default});var r=n("./node_modules/d3-timer/src/timer.js"),o=n("./node_modules/d3-timer/src/timeout.js"),s=n("./node_modules/d3-timer/src/interval.js")},"./node_modules/d3-timer/src/interval.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-timer/src/timer.js");function o(e,t,n){var o=new r.Timer,s=t;return null==t?(o.restart(e,t,n),o):(t=+t,n=null==n?(0,r.now)():+n,o.restart((function r(a){a+=s,o.restart(r,s+=t,n),e(a)}),t,n),o)}},"./node_modules/d3-timer/src/timeout.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-timer/src/timer.js");function o(e,t,n){var o=new r.Timer;return t=null==t?0:+t,o.restart((function(n){o.stop(),e(n+t)}),t,n),o}},"./node_modules/d3-timer/src/timer.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{now:()=>h,Timer:()=>p,timer:()=>g,timerFlush:()=>_});var r,o,s=0,a=0,i=0,d=0,l=0,u=0,c="object"==typeof performance&&performance.now?performance:Date,f="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function h(){return l||(f(m),l=c.now()+u)}function m(){l=0}function p(){this._call=this._time=this._next=null}function g(e,t,n){var r=new p;return r.restart(e,t,n),r}function _(){h(),++s;for(var e,t=r;t;)(e=l-t._time)>=0&&t._call.call(null,e),t=t._next;--s}function y(){l=(d=c.now())+u,s=a=0;try{_()}finally{s=0,function(){for(var e,t,n=r,s=1/0;n;)n._call?(s>n._time&&(s=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);o=e,b(s)}(),l=0}}function v(){var e=c.now(),t=e-d;t>1e3&&(u-=t,d=e)}function b(e){s||(a&&(a=clearTimeout(a)),e-l>24?(e<1/0&&(a=setTimeout(y,e-c.now()-u)),i&&(i=clearInterval(i))):(i||(d=c.now(),i=setInterval(v,1e3)),s=1,f(y)))}p.prototype=g.prototype={constructor:p,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?h():+n)+(null==t?0:+t),this._next||o===this||(o?o._next=this:r=this,o=this),this._call=e,this._time=n,b()},stop:function(){this._call&&(this._call=null,this._time=1/0,b())}}},"./node_modules/d3-transition/src/active.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-transition/src/transition/index.js"),o=n("./node_modules/d3-transition/src/transition/schedule.js"),s=[null];function a(e,t){var n,a,i=e.__transition;if(i)for(a in t=null==t?null:t+"",i)if((n=i[a]).state>o.SCHEDULED&&n.name===t)return new r.Transition([[e]],s,t,+a);return null}},"./node_modules/d3-transition/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{transition:()=>r.default,active:()=>o.default,interrupt:()=>s.default}),n("./node_modules/d3-transition/src/selection/index.js");var r=n("./node_modules/d3-transition/src/transition/index.js"),o=n("./node_modules/d3-transition/src/active.js"),s=n("./node_modules/d3-transition/src/interrupt.js")},"./node_modules/d3-transition/src/interrupt.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(e,t){var n,o,s,a=e.__transition,i=!0;if(a){for(s in t=null==t?null:t+"",a)(n=a[s]).name===t?(o=n.state>r.STARTING&&n.state{"use strict";n.r(t);var r=n("./node_modules/d3-selection/src/selection/index.js"),o=n("./node_modules/d3-transition/src/selection/interrupt.js"),s=n("./node_modules/d3-transition/src/selection/transition.js");r.default.prototype.interrupt=o.default,r.default.prototype.transition=s.default},"./node_modules/d3-transition/src/selection/interrupt.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-transition/src/interrupt.js");function o(e){return this.each((function(){(0,r.default)(this,e)}))}},"./node_modules/d3-transition/src/selection/transition.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n("./node_modules/d3-transition/src/transition/index.js"),o=n("./node_modules/d3-transition/src/transition/schedule.js"),s=n("./node_modules/d3-ease/src/cubic.js"),a=n("./node_modules/d3-timer/src/timer.js"),i={time:null,delay:0,duration:250,ease:s.cubicInOut};function d(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))return i.time=(0,a.now)(),i;return n}function l(e){var t,n;e instanceof r.Transition?(t=e._id,e=e._name):(t=(0,r.newId)(),(n=i).time=(0,a.now)(),e=null==e?null:e+"");for(var s=this._groups,l=s.length,u=0;u{"use strict";n.r(t),n.d(t,{default:()=>h});var r=n("./node_modules/d3-interpolate/src/transform/index.js"),o=n("./node_modules/d3-selection/src/namespace.js"),s=n("./node_modules/d3-transition/src/transition/tween.js"),a=n("./node_modules/d3-transition/src/transition/interpolate.js");function i(e){return function(){this.removeAttribute(e)}}function d(e){return function(){this.removeAttributeNS(e.space,e.local)}}function l(e,t,n){var r,o,s=n+"";return function(){var a=this.getAttribute(e);return a===s?null:a===r?o:o=t(r=a,n)}}function u(e,t,n){var r,o,s=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===s?null:a===r?o:o=t(r=a,n)}}function c(e,t,n){var r,o,s;return function(){var a,i,d=n(this);if(null!=d)return(a=this.getAttribute(e))===(i=d+"")?null:a===r&&i===o?s:(o=i,s=t(r=a,d));this.removeAttribute(e)}}function f(e,t,n){var r,o,s;return function(){var a,i,d=n(this);if(null!=d)return(a=this.getAttributeNS(e.space,e.local))===(i=d+"")?null:a===r&&i===o?s:(o=i,s=t(r=a,d));this.removeAttributeNS(e.space,e.local)}}function h(e,t){var n=(0,o.default)(e),h="transform"===n?r.interpolateTransformSvg:a.default;return this.attrTween(e,"function"==typeof t?(n.local?f:c)(n,h,(0,s.tweenValue)(this,"attr."+e,t)):null==t?(n.local?d:i)(n):(n.local?u:l)(n,h,t))}},"./node_modules/d3-transition/src/transition/attrTween.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/d3-selection/src/namespace.js");function o(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function s(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function a(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&s(e,o)),n}return o._value=t,o}function i(e,t){var n,r;function s(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&o(e,s)),n}return s._value=t,s}function d(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var o=(0,r.default)(e);return this.tween(n,(o.local?a:i)(o,t))}},"./node_modules/d3-transition/src/transition/delay.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(e,t){return function(){(0,r.init)(this,e).delay=+t.apply(this,arguments)}}function s(e,t){return t=+t,function(){(0,r.init)(this,e).delay=t}}function a(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?o:s)(t,e)):(0,r.get)(this.node(),t).delay}},"./node_modules/d3-transition/src/transition/duration.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(e,t){return function(){(0,r.set)(this,e).duration=+t.apply(this,arguments)}}function s(e,t){return t=+t,function(){(0,r.set)(this,e).duration=t}}function a(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?o:s)(t,e)):(0,r.get)(this.node(),t).duration}},"./node_modules/d3-transition/src/transition/ease.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(e,t){if("function"!=typeof t)throw new Error;return function(){(0,r.set)(this,e).ease=t}}function s(e){var t=this._id;return arguments.length?this.each(o(t,e)):(0,r.get)(this.node(),t).ease}},"./node_modules/d3-transition/src/transition/end.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(){var e,t,n=this,o=n._id,s=n.size();return new Promise((function(a,i){var d={value:i},l={value:function(){0==--s&&a()}};n.each((function(){var n=(0,r.set)(this,o),s=n.on;s!==e&&((t=(e=s).copy())._.cancel.push(d),t._.interrupt.push(d),t._.end.push(l)),n.on=t}))}))}},"./node_modules/d3-transition/src/transition/filter.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-selection/src/matcher.js"),o=n("./node_modules/d3-transition/src/transition/index.js");function s(e){"function"!=typeof e&&(e=(0,r.default)(e));for(var t=this._groups,n=t.length,s=new Array(n),a=0;a{"use strict";n.r(t),n.d(t,{Transition:()=>k,default:()=>C,newId:()=>T});var r=n("./node_modules/d3-selection/src/selection/index.js"),o=n("./node_modules/d3-transition/src/transition/attr.js"),s=n("./node_modules/d3-transition/src/transition/attrTween.js"),a=n("./node_modules/d3-transition/src/transition/delay.js"),i=n("./node_modules/d3-transition/src/transition/duration.js"),d=n("./node_modules/d3-transition/src/transition/ease.js"),l=n("./node_modules/d3-transition/src/transition/filter.js"),u=n("./node_modules/d3-transition/src/transition/merge.js"),c=n("./node_modules/d3-transition/src/transition/on.js"),f=n("./node_modules/d3-transition/src/transition/remove.js"),h=n("./node_modules/d3-transition/src/transition/select.js"),m=n("./node_modules/d3-transition/src/transition/selectAll.js"),p=n("./node_modules/d3-transition/src/transition/selection.js"),g=n("./node_modules/d3-transition/src/transition/style.js"),_=n("./node_modules/d3-transition/src/transition/styleTween.js"),y=n("./node_modules/d3-transition/src/transition/text.js"),v=n("./node_modules/d3-transition/src/transition/textTween.js"),b=n("./node_modules/d3-transition/src/transition/transition.js"),j=n("./node_modules/d3-transition/src/transition/tween.js"),x=n("./node_modules/d3-transition/src/transition/end.js"),w=0;function k(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function C(e){return(0,r.default)().transition(e)}function T(){return++w}var E=r.default.prototype;k.prototype=C.prototype={constructor:k,select:h.default,selectAll:m.default,filter:l.default,merge:u.default,selection:p.default,transition:b.default,call:E.call,nodes:E.nodes,node:E.node,size:E.size,empty:E.empty,each:E.each,on:c.default,attr:o.default,attrTween:s.default,style:g.default,styleTween:_.default,text:y.default,textTween:v.default,remove:f.default,tween:j.default,delay:a.default,duration:i.default,ease:d.default,end:x.default}},"./node_modules/d3-transition/src/transition/interpolate.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-color/src/color.js"),o=n("./node_modules/d3-interpolate/src/number.js"),s=n("./node_modules/d3-interpolate/src/rgb.js"),a=n("./node_modules/d3-interpolate/src/string.js");function i(e,t){var n;return("number"==typeof t?o.default:t instanceof r.default?s.default:(n=(0,r.default)(t))?(t=n,s.default):a.default)(e,t)}},"./node_modules/d3-transition/src/transition/merge.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-transition/src/transition/index.js");function o(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,s=n.length,a=Math.min(o,s),i=new Array(o),d=0;d{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(e,t,n){var o,s,a=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?r.init:r.set;return function(){var r=a(this,e),i=r.on;i!==o&&(s=(o=i).copy()).on(t,n),r.on=s}}function s(e,t){var n=this._id;return arguments.length<2?(0,r.get)(this.node(),n).on.on(e):this.each(o(n,e,t))}},"./node_modules/d3-transition/src/transition/remove.js":(e,t,n)=>{"use strict";function r(){return this.on("end.remove",(e=this._id,function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}));var e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-transition/src/transition/schedule.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{CREATED:()=>d,SCHEDULED:()=>l,STARTING:()=>u,STARTED:()=>c,RUNNING:()=>f,ENDING:()=>h,ENDED:()=>m,default:()=>p,init:()=>g,set:()=>_,get:()=>y});var r=n("./node_modules/d3-dispatch/src/dispatch.js"),o=n("./node_modules/d3-timer/src/timer.js"),s=n("./node_modules/d3-timer/src/timeout.js"),a=(0,r.default)("start","end","cancel","interrupt"),i=[],d=0,l=1,u=2,c=3,f=4,h=5,m=6;function p(e,t,n,r,p,g){var _=e.__transition;if(_){if(n in _)return}else e.__transition={};!function(e,t,n){var r,a=e.__transition;function i(o){var h,g,_,y;if(n.state!==l)return p();for(h in a)if((y=a[h]).name===n.name){if(y.state===c)return(0,s.default)(i);y.state===f?(y.state=m,y.timer.stop(),y.on.call("interrupt",e,e.__data__,y.index,y.group),delete a[h]):+hd)throw new Error("too late; already scheduled");return n}function _(e,t){var n=y(e,t);if(n.state>c)throw new Error("too late; already running");return n}function y(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}},"./node_modules/d3-transition/src/transition/select.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-selection/src/selector.js"),o=n("./node_modules/d3-transition/src/transition/index.js"),s=n("./node_modules/d3-transition/src/transition/schedule.js");function a(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=(0,r.default)(e));for(var a=this._groups,i=a.length,d=new Array(i),l=0;l{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-selection/src/selectorAll.js"),o=n("./node_modules/d3-transition/src/transition/index.js"),s=n("./node_modules/d3-transition/src/transition/schedule.js");function a(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=(0,r.default)(e));for(var a=this._groups,i=a.length,d=[],l=[],u=0;u{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-selection/src/selection/index.js").default.prototype.constructor;function o(){return new r(this._groups,this._parents)}},"./node_modules/d3-transition/src/transition/style.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n("./node_modules/d3-interpolate/src/transform/index.js"),o=n("./node_modules/d3-selection/src/selection/style.js"),s=n("./node_modules/d3-transition/src/transition/schedule.js"),a=n("./node_modules/d3-transition/src/transition/tween.js"),i=n("./node_modules/d3-transition/src/transition/interpolate.js");function d(e){return function(){this.style.removeProperty(e)}}function l(e,t,n){var l="transform"==(e+="")?r.interpolateTransformCss:i.default;return null==t?this.styleTween(e,function(e,t){var n,r,s;return function(){var a=(0,o.styleValue)(this,e),i=(this.style.removeProperty(e),(0,o.styleValue)(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}(e,l)).on("end.style."+e,d(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,s,a;return function(){var i=(0,o.styleValue)(this,e),d=n(this),l=d+"";return null==d&&(this.style.removeProperty(e),l=d=(0,o.styleValue)(this,e)),i===l?null:i===r&&l===s?a:(s=l,a=t(r=i,d))}}(e,l,(0,a.tweenValue)(this,"style."+e,t))).each(function(e,t){var n,r,o,a,i="style."+t,l="end."+i;return function(){var u=(0,s.set)(this,e),c=u.on,f=null==u.value[i]?a||(a=d(t)):void 0;c===n&&o===f||(r=(n=c).copy()).on(l,o=f),u.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,s,a=n+"";return function(){var i=(0,o.styleValue)(this,e);return i===a?null:i===r?s:s=t(r=i,n)}}(e,l,t),n).on("end.style."+e,null)}},"./node_modules/d3-transition/src/transition/styleTween.js":(e,t,n)=>{"use strict";function r(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function o(e,t,n){var o,s;function a(){var a=t.apply(this,arguments);return a!==s&&(o=(s=a)&&r(e,a,n)),o}return a._value=t,a}function s(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;return this.tween(r,o(e,t,null==n?"":n))}n.r(t),n.d(t,{default:()=>s})},"./node_modules/d3-transition/src/transition/text.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-transition/src/transition/tween.js");function o(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}((0,r.tweenValue)(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))}},"./node_modules/d3-transition/src/transition/textTween.js":(e,t,n)=>{"use strict";function r(e){return function(t){this.textContent=e.call(this,t)}}function o(e){var t,n;function o(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&r(o)),t}return o._value=e,o}function s(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,o(e))}n.r(t),n.d(t,{default:()=>s})},"./node_modules/d3-transition/src/transition/transition.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/d3-transition/src/transition/index.js"),o=n("./node_modules/d3-transition/src/transition/schedule.js");function s(){for(var e=this._name,t=this._id,n=(0,r.newId)(),s=this._groups,a=s.length,i=0;i{"use strict";n.r(t),n.d(t,{default:()=>a,tweenValue:()=>i});var r=n("./node_modules/d3-transition/src/transition/schedule.js");function o(e,t){var n,o;return function(){var s=(0,r.set)(this,e),a=s.tween;if(a!==n)for(var i=0,d=(o=n=a).length;i{"use strict";n.r(t),n.d(t,{removeBeach:()=>f,addBeach:()=>h});var r=n("./node_modules/d3-voronoi/src/RedBlackTree.js"),o=n("./node_modules/d3-voronoi/src/Cell.js"),s=n("./node_modules/d3-voronoi/src/Circle.js"),a=n("./node_modules/d3-voronoi/src/Edge.js"),i=n("./node_modules/d3-voronoi/src/Diagram.js"),d=[];function l(){(0,r.RedBlackNode)(this),this.edge=this.site=this.circle=null}function u(e){var t=d.pop()||new l;return t.site=e,t}function c(e){(0,s.detachCircle)(e),i.beaches.remove(e),d.push(e),(0,r.RedBlackNode)(e)}function f(e){var t=e.circle,n=t.x,r=t.cy,o=[n,r],d=e.P,l=e.N,u=[e];c(e);for(var f=d;f.circle&&Math.abs(n-f.circle.x)i.epsilon)f=f.L;else{if(!((d=l-p(f,c))>i.epsilon)){r>-i.epsilon?(t=f.P,n=f):d>-i.epsilon?(t=f,n=f.N):t=n=f;break}if(!f.R){t=f;break}f=f.R}(0,o.createCell)(e);var h=u(e);if(i.beaches.insert(t,h),t||n){if(t===n)return(0,s.detachCircle)(t),n=u(t.site),i.beaches.insert(h,n),h.edge=n.edge=(0,a.createEdge)(t.site,h.site),(0,s.attachCircle)(t),void(0,s.attachCircle)(n);if(n){(0,s.detachCircle)(t),(0,s.detachCircle)(n);var g=t.site,_=g[0],y=g[1],v=e[0]-_,b=e[1]-y,j=n.site,x=j[0]-_,w=j[1]-y,k=2*(v*w-b*x),C=v*v+b*b,T=x*x+w*w,E=[(w*C-b*T)/k+_,(v*T-x*C)/k+y];(0,a.setEdgeEnd)(n.edge,g,j,E),h.edge=(0,a.createEdge)(g,e,null,E),n.edge=(0,a.createEdge)(e,j,null,E),(0,s.attachCircle)(t),(0,s.attachCircle)(n)}else h.edge=(0,a.createEdge)(t.site,h.site)}}function m(e,t){var n=e.site,r=n[0],o=n[1],s=o-t;if(!s)return r;var a=e.P;if(!a)return-1/0;var i=(n=a.site)[0],d=n[1],l=d-t;if(!l)return i;var u=i-r,c=1/s-1/l,f=u/l;return c?(-f+Math.sqrt(f*f-2*c*(u*u/(-2*l)-d+l/2+o-s/2)))/c+r:(r+i)/2}function p(e,t){var n=e.N;if(n)return m(n,t);var r=e.site;return r[1]===t?r[0]:1/0}},"./node_modules/d3-voronoi/src/Cell.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{createCell:()=>s,cellHalfedgeStart:()=>i,cellHalfedgeEnd:()=>d,sortCellHalfedges:()=>l,clipCells:()=>u});var r=n("./node_modules/d3-voronoi/src/Edge.js"),o=n("./node_modules/d3-voronoi/src/Diagram.js");function s(e){return o.cells[e.index]={site:e,halfedges:[]}}function a(e,t){var n=e.site,r=t.left,o=t.right;return n===o&&(o=r,r=n),o?Math.atan2(o[1]-r[1],o[0]-r[0]):(n===r?(r=t[1],o=t[0]):(r=t[0],o=t[1]),Math.atan2(r[0]-o[0],o[1]-r[1]))}function i(e,t){return t[+(t.left!==e.site)]}function d(e,t){return t[+(t.left===e.site)]}function l(){for(var e,t,n,r,s=0,i=o.cells.length;so.epsilon||Math.abs(v-g)>o.epsilon)&&(f.splice(c,0,o.edges.push((0,r.createBorderEdge)(u,_,Math.abs(y-e)o.epsilon?[e,Math.abs(p-e)o.epsilon?[Math.abs(g-s)o.epsilon?[n,Math.abs(p-n)o.epsilon?[Math.abs(g-t){"use strict";n.r(t),n.d(t,{firstCircle:()=>r,attachCircle:()=>d,detachCircle:()=>l});var r,o=n("./node_modules/d3-voronoi/src/RedBlackTree.js"),s=n("./node_modules/d3-voronoi/src/Diagram.js"),a=[];function i(){(0,o.RedBlackNode)(this),this.x=this.y=this.arc=this.site=this.cy=null}function d(e){var t=e.P,n=e.N;if(t&&n){var o=t.site,d=e.site,l=n.site;if(o!==l){var u=d[0],c=d[1],f=o[0]-u,h=o[1]-c,m=l[0]-u,p=l[1]-c,g=2*(f*p-h*m);if(!(g>=-s.epsilon2)){var _=f*f+h*h,y=m*m+p*p,v=(p*_-h*y)/g,b=(f*y-m*_)/g,j=a.pop()||new i;j.arc=e,j.site=d,j.x=v+u,j.y=(j.cy=b+c)+Math.sqrt(v*v+b*b),e.circle=j;for(var x=null,w=s.circles._;w;)if(j.y{"use strict";n.r(t),n.d(t,{epsilon:()=>f,epsilon2:()=>h,beaches:()=>r,cells:()=>o,circles:()=>s,edges:()=>a,default:()=>p});var r,o,s,a,i=n("./node_modules/d3-voronoi/src/Beach.js"),d=n("./node_modules/d3-voronoi/src/Cell.js"),l=n("./node_modules/d3-voronoi/src/Circle.js"),u=n("./node_modules/d3-voronoi/src/Edge.js"),c=n("./node_modules/d3-voronoi/src/RedBlackTree.js"),f=1e-6,h=1e-12;function m(e,t){return t[1]-e[1]||t[0]-e[0]}function p(e,t){var n,f,h,p=e.sort(m).pop();for(a=[],o=new Array(e.length),r=new c.default,s=new c.default;;)if(h=l.firstCircle,p&&(!h||p[1]=i)return null;var d=e-o.site[0],l=t-o.site[1],u=d*d+l*l;do{o=s.cells[r=a],a=null,o.halfedges.forEach((function(n){var r=s.edges[n],i=r.left;if(i!==o.site&&i||(i=r.right)){var d=e-i[0],l=t-i[1],c=d*d+l*l;c{"use strict";n.r(t),n.d(t,{createEdge:()=>o,createBorderEdge:()=>s,setEdgeEnd:()=>a,clipEdges:()=>l});var r=n("./node_modules/d3-voronoi/src/Diagram.js");function o(e,t,n,o){var s=[null,null],i=r.edges.push(s)-1;return s.left=e,s.right=t,n&&a(s,e,t,n),o&&a(s,t,e,o),r.cells[e.index].halfedges.push(i),r.cells[t.index].halfedges.push(i),s}function s(e,t,n){var r=[t,n];return r.left=e,r}function a(e,t,n,r){e[0]||e[1]?e.left===n?e[1]=r:e[0]=r:(e[0]=r,e.left=t,e.right=n)}function i(e,t,n,r,o){var s,a=e[0],i=e[1],d=a[0],l=a[1],u=0,c=1,f=i[0]-d,h=i[1]-l;if(s=t-d,f||!(s>0)){if(s/=f,f<0){if(s0){if(s>c)return;s>u&&(u=s)}if(s=r-d,f||!(s<0)){if(s/=f,f<0){if(s>c)return;s>u&&(u=s)}else if(f>0){if(s0)){if(s/=h,h<0){if(s0){if(s>c)return;s>u&&(u=s)}if(s=o-l,h||!(s<0)){if(s/=h,h<0){if(s>c)return;s>u&&(u=s)}else if(h>0){if(s0||c<1)||(u>0&&(e[0]=[d+u*f,l+u*h]),c<1&&(e[1]=[d+c*f,l+c*h]),!0)}}}}}function d(e,t,n,r,o){var s=e[1];if(s)return!0;var a,i,d=e[0],l=e.left,u=e.right,c=l[0],f=l[1],h=u[0],m=u[1],p=(c+h)/2,g=(f+m)/2;if(m===f){if(p=r)return;if(c>h){if(d){if(d[1]>=o)return}else d=[p,n];s=[p,o]}else{if(d){if(d[1]1)if(c>h){if(d){if(d[1]>=o)return}else d=[(n-i)/a,n];s=[(o-i)/a,o]}else{if(d){if(d[1]=r)return}else d=[t,a*t+i];s=[r,a*r+i]}else{if(d){if(d[0]r.epsilon||Math.abs(s[0][1]-s[1][1])>r.epsilon)||delete r.edges[a]}},"./node_modules/d3-voronoi/src/RedBlackTree.js":(e,t,n)=>{"use strict";function r(){this._=null}function o(e){e.U=e.C=e.L=e.R=e.P=e.N=null}function s(e,t){var n=t,r=t.R,o=n.U;o?o.L===n?o.L=r:o.R=r:e._=r,r.U=o,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function a(e,t){var n=t,r=t.L,o=n.U;o?o.L===n?o.L=r:o.R=r:e._=r,r.U=o,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function i(e){for(;e.L;)e=e.L;return e}n.r(t),n.d(t,{RedBlackNode:()=>o,default:()=>d}),r.prototype={constructor:r,insert:function(e,t){var n,r,o;if(e){if(t.P=e,t.N=e.N,e.N&&(e.N.P=t),e.N=t,e.R){for(e=e.R;e.L;)e=e.L;e.L=t}else e.R=t;n=e}else this._?(e=i(this._),t.P=null,t.N=e,e.P=e.L=t,n=e):(t.P=t.N=null,this._=t,n=null);for(t.L=t.R=null,t.U=n,t.C=!0,e=t;n&&n.C;)n===(r=n.U).L?(o=r.R)&&o.C?(n.C=o.C=!1,r.C=!0,e=r):(e===n.R&&(s(this,n),n=(e=n).U),n.C=!1,r.C=!0,a(this,r)):(o=r.L)&&o.C?(n.C=o.C=!1,r.C=!0,e=r):(e===n.L&&(a(this,n),n=(e=n).U),n.C=!1,r.C=!0,s(this,r)),n=e.U;this._.C=!1},remove:function(e){e.N&&(e.N.P=e.P),e.P&&(e.P.N=e.N),e.N=e.P=null;var t,n,r,o=e.U,d=e.L,l=e.R;if(n=d?l?i(l):d:l,o?o.L===e?o.L=n:o.R=n:this._=n,d&&l?(r=n.C,n.C=e.C,n.L=d,d.U=n,n!==l?(o=n.U,n.U=e.U,e=n.R,o.L=e,n.R=l,l.U=n):(n.U=o,o=n,e=n.R)):(r=e.C,e=n),e&&(e.U=o),!r)if(e&&e.C)e.C=!1;else{do{if(e===this._)break;if(e===o.L){if((t=o.R).C&&(t.C=!1,o.C=!0,s(this,o),t=o.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,a(this,t),t=o.R),t.C=o.C,o.C=t.R.C=!1,s(this,o),e=this._;break}}else if((t=o.L).C&&(t.C=!1,o.C=!0,a(this,o),t=o.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,s(this,t),t=o.L),t.C=o.C,o.C=t.L.C=!1,a(this,o),e=this._;break}t.C=!0,e=o,o=o.U}while(!e.C);e&&(e.C=!1)}}};const d=r},"./node_modules/d3-voronoi/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/d3-voronoi/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{voronoi:()=>r.default});var r=n("./node_modules/d3-voronoi/src/voronoi.js")},"./node_modules/d3-voronoi/src/point.js":(e,t,n)=>{"use strict";function r(e){return e[0]}function o(e){return e[1]}n.r(t),n.d(t,{x:()=>r,y:()=>o})},"./node_modules/d3-voronoi/src/voronoi.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-voronoi/src/constant.js"),o=n("./node_modules/d3-voronoi/src/point.js"),s=n("./node_modules/d3-voronoi/src/Diagram.js");function a(){var e=o.x,t=o.y,n=null;function a(r){return new s.default(r.map((function(n,o){var a=[Math.round(e(n,o,r)/s.epsilon)*s.epsilon,Math.round(t(n,o,r)/s.epsilon)*s.epsilon];return a.index=o,a.data=n,a})),n)}return a.polygons=function(e){return a(e).polygons()},a.links=function(e){return a(e).links()},a.triangles=function(e){return a(e).triangles()},a.x=function(t){return arguments.length?(e="function"==typeof t?t:(0,r.default)(+t),a):e},a.y=function(e){return arguments.length?(t="function"==typeof e?e:(0,r.default)(+e),a):t},a.extent=function(e){return arguments.length?(n=null==e?null:[[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]],a):n&&[[n[0][0],n[0][1]],[n[1][0],n[1][1]]]},a.size=function(e){return arguments.length?(n=null==e?null:[[0,0],[+e[0],+e[1]]],a):n&&[n[1][0]-n[0][0],n[1][1]-n[0][1]]},a}},"./node_modules/dagre-d3/index.js":(e,t,n)=>{e.exports={graphlib:n("./node_modules/dagre-d3/lib/graphlib.js"),dagre:n("./node_modules/dagre-d3/lib/dagre.js"),intersect:n("./node_modules/dagre-d3/lib/intersect/index.js"),render:n("./node_modules/dagre-d3/lib/render.js"),util:n("./node_modules/dagre-d3/lib/util.js"),version:n("./node_modules/dagre-d3/lib/version.js")}},"./node_modules/dagre-d3/lib/arrows.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/util.js");function o(e,t,n,o){var s=e.append("marker").attr("id",t).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");r.applyStyle(s,n[o+"Style"]),n[o+"Class"]&&s.attr("class",n[o+"Class"])}e.exports={default:o,normal:o,vee:function(e,t,n,o){var s=e.append("marker").attr("id",t).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");r.applyStyle(s,n[o+"Style"]),n[o+"Class"]&&s.attr("class",n[o+"Class"])},undirected:function(e,t,n,o){var s=e.append("marker").attr("id",t).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");r.applyStyle(s,n[o+"Style"]),n[o+"Class"]&&s.attr("class",n[o+"Class"])}}},"./node_modules/dagre-d3/lib/create-clusters.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/util.js"),o=n("./node_modules/dagre-d3/lib/d3.js"),s=n("./node_modules/dagre-d3/lib/label/add-label.js");e.exports=function(e,t){var n,a=t.nodes().filter((function(e){return r.isSubgraph(t,e)})),i=e.selectAll("g.cluster").data(a,(function(e){return e}));return i.selectAll("*").remove(),i.enter().append("g").attr("class","cluster").attr("id",(function(e){return t.node(e).id})).style("opacity",0),i=e.selectAll("g.cluster"),r.applyTransition(i,t).style("opacity",1),i.each((function(e){var n=t.node(e),r=o.select(this);o.select(this).append("rect");var a=r.append("g").attr("class","label");s(a,n,n.clusterLabelPos)})),i.selectAll("rect").each((function(e){var n=t.node(e),s=o.select(this);r.applyStyle(s,n.style)})),n=i.exit?i.exit():i.selectAll(null),r.applyTransition(n,t).style("opacity",0).remove(),i}},"./node_modules/dagre-d3/lib/create-edge-labels.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/lodash.js"),o=n("./node_modules/dagre-d3/lib/label/add-label.js"),s=n("./node_modules/dagre-d3/lib/util.js"),a=n("./node_modules/dagre-d3/lib/d3.js");e.exports=function(e,t){var n,i=e.selectAll("g.edgeLabel").data(t.edges(),(function(e){return s.edgeToId(e)})).classed("update",!0);return i.exit().remove(),i.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(i=e.selectAll("g.edgeLabel")).each((function(e){var n=a.select(this);n.select(".label").remove();var s=t.edge(e),i=o(n,t.edge(e),0,0).classed("label",!0),d=i.node().getBBox();s.labelId&&i.attr("id",s.labelId),r.has(s,"width")||(s.width=d.width),r.has(s,"height")||(s.height=d.height)})),n=i.exit?i.exit():i.selectAll(null),s.applyTransition(n,t).style("opacity",0).remove(),i}},"./node_modules/dagre-d3/lib/create-edge-paths.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/lodash.js"),o=n("./node_modules/dagre-d3/lib/intersect/intersect-node.js"),s=n("./node_modules/dagre-d3/lib/util.js"),a=n("./node_modules/dagre-d3/lib/d3.js");function i(e,t){var n=(a.line||a.svg.line)().x((function(e){return e.x})).y((function(e){return e.y}));return(n.curve||n.interpolate)(e.curve),n(t)}e.exports=function(e,t,n){var d=e.selectAll("g.edgePath").data(t.edges(),(function(e){return s.edgeToId(e)})).classed("update",!0),l=function(e,t){var n=e.enter().append("g").attr("class","edgePath").style("opacity",0);return n.append("path").attr("class","path").attr("d",(function(e){var n=t.edge(e),o=t.node(e.v).elem;return i(n,r.range(n.points.length).map((function(){return t=(e=o).getBBox(),{x:(n=e.ownerSVGElement.getScreenCTM().inverse().multiply(e.getScreenCTM()).translate(t.width/2,t.height/2)).e,y:n.f};var e,t,n})))})),n.append("defs"),n}(d,t);!function(e,t){var n=e.exit();s.applyTransition(n,t).style("opacity",0).remove()}(d,t);var u=void 0!==d.merge?d.merge(l):d;return s.applyTransition(u,t).style("opacity",1),u.each((function(e){var n=a.select(this),r=t.edge(e);r.elem=this,r.id&&n.attr("id",r.id),s.applyClass(n,r.class,(n.classed("update")?"update ":"")+"edgePath")})),u.selectAll("path.path").each((function(e){var n=t.edge(e);n.arrowheadId=r.uniqueId("arrowhead");var d=a.select(this).attr("marker-end",(function(){return"url("+(e=location.href,t=n.arrowheadId,e.split("#")[0]+"#"+t+")");var e,t})).style("fill","none");s.applyTransition(d,t).attr("d",(function(e){return function(e,t){var n=e.edge(t),r=e.node(t.v),s=e.node(t.w),a=n.points.slice(1,n.points.length-1);return a.unshift(o(r,a[0])),a.push(o(s,a[a.length-1])),i(n,a)}(t,e)})),s.applyStyle(d,n.style)})),u.selectAll("defs *").remove(),u.selectAll("defs").each((function(e){var r=t.edge(e);(0,n[r.arrowhead])(a.select(this),r.arrowheadId,r,"arrowhead")})),u}},"./node_modules/dagre-d3/lib/create-nodes.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/lodash.js"),o=n("./node_modules/dagre-d3/lib/label/add-label.js"),s=n("./node_modules/dagre-d3/lib/util.js"),a=n("./node_modules/dagre-d3/lib/d3.js");e.exports=function(e,t,n){var i,d=t.nodes().filter((function(e){return!s.isSubgraph(t,e)})),l=e.selectAll("g.node").data(d,(function(e){return e})).classed("update",!0);return l.exit().remove(),l.enter().append("g").attr("class","node").style("opacity",0),(l=e.selectAll("g.node")).each((function(e){var i=t.node(e),d=a.select(this);s.applyClass(d,i.class,(d.classed("update")?"update ":"")+"node"),d.select("g.label").remove();var l=d.append("g").attr("class","label"),u=o(l,i),c=n[i.shape],f=r.pick(u.node().getBBox(),"width","height");i.elem=this,i.id&&d.attr("id",i.id),i.labelId&&l.attr("id",i.labelId),r.has(i,"width")&&(f.width=i.width),r.has(i,"height")&&(f.height=i.height),f.width+=i.paddingLeft+i.paddingRight,f.height+=i.paddingTop+i.paddingBottom,l.attr("transform","translate("+(i.paddingLeft-i.paddingRight)/2+","+(i.paddingTop-i.paddingBottom)/2+")");var h=a.select(this);h.select(".label-container").remove();var m=c(h,f,i).classed("label-container",!0);s.applyStyle(m,i.style);var p=m.node().getBBox();i.width=p.width,i.height=p.height})),i=l.exit?l.exit():l.selectAll(null),s.applyTransition(i,t).style("opacity",0).remove(),l}},"./node_modules/dagre-d3/lib/d3.js":(e,t,n)=>{var r;if(!r)try{r=n("./node_modules/dagre-d3/node_modules/d3/index.js")}catch(e){}r||(r=window.d3),e.exports=r},"./node_modules/dagre-d3/lib/dagre.js":(e,t,n)=>{var r;try{r=n("./node_modules/dagre/index.js")}catch(e){}r||(r=window.dagre),e.exports=r},"./node_modules/dagre-d3/lib/graphlib.js":(e,t,n)=>{var r;try{r=n("./node_modules/graphlib/index.js")}catch(e){}r||(r=window.graphlib),e.exports=r},"./node_modules/dagre-d3/lib/intersect/index.js":(e,t,n)=>{e.exports={node:n("./node_modules/dagre-d3/lib/intersect/intersect-node.js"),circle:n("./node_modules/dagre-d3/lib/intersect/intersect-circle.js"),ellipse:n("./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js"),polygon:n("./node_modules/dagre-d3/lib/intersect/intersect-polygon.js"),rect:n("./node_modules/dagre-d3/lib/intersect/intersect-rect.js")}},"./node_modules/dagre-d3/lib/intersect/intersect-circle.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js");e.exports=function(e,t,n){return r(e,t,t,n)}},"./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js":e=>{e.exports=function(e,t,n,r){var o=e.x,s=e.y,a=o-r.x,i=s-r.y,d=Math.sqrt(t*t*i*i+n*n*a*a),l=Math.abs(t*n*a/d);r.x{function t(e,t){return e*t>0}e.exports=function(e,n,r,o){var s,a,i,d,l,u,c,f,h,m,p,g,_;if(!(s=n.y-e.y,i=e.x-n.x,l=n.x*e.y-e.x*n.y,h=s*r.x+i*r.y+l,m=s*o.x+i*o.y+l,0!==h&&0!==m&&t(h,m)||(a=o.y-r.y,d=r.x-o.x,u=o.x*r.y-r.x*o.y,c=a*e.x+d*e.y+u,f=a*n.x+d*n.y+u,0!==c&&0!==f&&t(c,f)||0==(p=s*d-a*i))))return g=Math.abs(p/2),{x:(_=i*u-d*l)<0?(_-g)/p:(_+g)/p,y:(_=a*l-s*u)<0?(_-g)/p:(_+g)/p}}},"./node_modules/dagre-d3/lib/intersect/intersect-node.js":e=>{e.exports=function(e,t){return e.intersect(t)}},"./node_modules/dagre-d3/lib/intersect/intersect-polygon.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/intersect/intersect-line.js");e.exports=function(e,t,n){var o=e.x,s=e.y,a=[],i=Number.POSITIVE_INFINITY,d=Number.POSITIVE_INFINITY;t.forEach((function(e){i=Math.min(i,e.x),d=Math.min(d,e.y)}));for(var l=o-e.width/2-i,u=s-e.height/2-d,c=0;c1&&a.sort((function(e,t){var r=e.x-n.x,o=e.y-n.y,s=Math.sqrt(r*r+o*o),a=t.x-n.x,i=t.y-n.y,d=Math.sqrt(a*a+i*i);return s{e.exports=function(e,t){var n,r,o=e.x,s=e.y,a=t.x-o,i=t.y-s,d=e.width/2,l=e.height/2;return Math.abs(i)*d>Math.abs(a)*l?(i<0&&(l=-l),n=0===i?0:l*a/i,r=l):(a<0&&(d=-d),n=d,r=0===a?0:d*i/a),{x:o+n,y:s+r}}},"./node_modules/dagre-d3/lib/label/add-html-label.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/util.js");e.exports=function(e,t){var n=e.append("foreignObject").attr("width","100000"),o=n.append("xhtml:div");o.attr("xmlns","http://www.w3.org/1999/xhtml");var s=t.label;switch(typeof s){case"function":o.insert(s);break;case"object":o.insert((function(){return s}));break;default:o.html(s)}r.applyStyle(o,t.labelStyle),o.style("display","inline-block"),o.style("white-space","nowrap");var a=o.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},"./node_modules/dagre-d3/lib/label/add-label.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/label/add-text-label.js"),o=n("./node_modules/dagre-d3/lib/label/add-html-label.js"),s=n("./node_modules/dagre-d3/lib/label/add-svg-label.js");e.exports=function(e,t,n){var a=t.label,i=e.append("g");"svg"===t.labelType?s(i,t):"string"!=typeof a||"html"===t.labelType?o(i,t):r(i,t);var d,l=i.node().getBBox();switch(n){case"top":d=-t.height/2;break;case"bottom":d=t.height/2-l.height;break;default:d=-l.height/2}return i.attr("transform","translate("+-l.width/2+","+d+")"),i}},"./node_modules/dagre-d3/lib/label/add-svg-label.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/util.js");e.exports=function(e,t){var n=e;return n.node().appendChild(t.label),r.applyStyle(n,t.labelStyle),n}},"./node_modules/dagre-d3/lib/label/add-text-label.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/util.js");e.exports=function(e,t){for(var n=e.append("text"),o=function(e){for(var t,n="",r=!1,o=0;o{var r;try{r={defaults:n("./node_modules/lodash/defaults.js"),each:n("./node_modules/lodash/each.js"),isFunction:n("./node_modules/lodash/isFunction.js"),isPlainObject:n("./node_modules/lodash/isPlainObject.js"),pick:n("./node_modules/lodash/pick.js"),has:n("./node_modules/lodash/has.js"),range:n("./node_modules/lodash/range.js"),uniqueId:n("./node_modules/lodash/uniqueId.js")}}catch(e){}r||(r=window._),e.exports=r},"./node_modules/dagre-d3/lib/position-clusters.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/util.js"),o=n("./node_modules/dagre-d3/lib/d3.js");e.exports=function(e,t){var n=e.filter((function(){return!o.select(this).classed("update")}));function s(e){var n=t.node(e);return"translate("+n.x+","+n.y+")"}n.attr("transform",s),r.applyTransition(e,t).style("opacity",1).attr("transform",s),r.applyTransition(n.selectAll("rect"),t).attr("width",(function(e){return t.node(e).width})).attr("height",(function(e){return t.node(e).height})).attr("x",(function(e){return-t.node(e).width/2})).attr("y",(function(e){return-t.node(e).height/2}))}},"./node_modules/dagre-d3/lib/position-edge-labels.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/util.js"),o=n("./node_modules/dagre-d3/lib/d3.js"),s=n("./node_modules/dagre-d3/lib/lodash.js");e.exports=function(e,t){function n(e){var n=t.edge(e);return s.has(n,"x")?"translate("+n.x+","+n.y+")":""}e.filter((function(){return!o.select(this).classed("update")})).attr("transform",n),r.applyTransition(e,t).style("opacity",1).attr("transform",n)}},"./node_modules/dagre-d3/lib/position-nodes.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/util.js"),o=n("./node_modules/dagre-d3/lib/d3.js");e.exports=function(e,t){function n(e){var n=t.node(e);return"translate("+n.x+","+n.y+")"}e.filter((function(){return!o.select(this).classed("update")})).attr("transform",n),r.applyTransition(e,t).style("opacity",1).attr("transform",n)}},"./node_modules/dagre-d3/lib/render.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/lodash.js"),o=n("./node_modules/dagre-d3/lib/d3.js"),s=n("./node_modules/dagre-d3/lib/dagre.js").layout;e.exports=function(){var e=n("./node_modules/dagre-d3/lib/create-nodes.js"),t=n("./node_modules/dagre-d3/lib/create-clusters.js"),o=n("./node_modules/dagre-d3/lib/create-edge-labels.js"),l=n("./node_modules/dagre-d3/lib/create-edge-paths.js"),u=n("./node_modules/dagre-d3/lib/position-nodes.js"),c=n("./node_modules/dagre-d3/lib/position-edge-labels.js"),f=n("./node_modules/dagre-d3/lib/position-clusters.js"),h=n("./node_modules/dagre-d3/lib/shapes.js"),m=n("./node_modules/dagre-d3/lib/arrows.js"),p=function(n,p){!function(e){e.nodes().forEach((function(t){var n=e.node(t);r.has(n,"label")||e.children(t).length||(n.label=t),r.has(n,"paddingX")&&r.defaults(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),r.has(n,"paddingY")&&r.defaults(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),r.has(n,"padding")&&r.defaults(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),r.defaults(n,a),r.each(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(e){n[e]=Number(n[e])})),r.has(n,"width")&&(n._prevWidth=n.width),r.has(n,"height")&&(n._prevHeight=n.height)})),e.edges().forEach((function(t){var n=e.edge(t);r.has(n,"label")||(n.label=""),r.defaults(n,i)}))}(p);var g=d(n,"output"),_=d(g,"clusters"),y=d(g,"edgePaths"),v=o(d(g,"edgeLabels"),p),b=e(d(g,"nodes"),p,h);s(p),u(b,p),c(v,p),l(y,p,m);var j=t(_,p);f(j,p),function(e){r.each(e.nodes(),(function(t){var n=e.node(t);r.has(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,r.has(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}(p)};return p.createNodes=function(t){return arguments.length?(e=t,p):e},p.createClusters=function(e){return arguments.length?(t=e,p):t},p.createEdgeLabels=function(e){return arguments.length?(o=e,p):o},p.createEdgePaths=function(e){return arguments.length?(l=e,p):l},p.shapes=function(e){return arguments.length?(h=e,p):h},p.arrows=function(e){return arguments.length?(m=e,p):m},p};var a={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},i={arrowhead:"normal",curve:o.curveLinear};function d(e,t){var n=e.select("g."+t);return n.empty()&&(n=e.append("g").attr("class",t)),n}},"./node_modules/dagre-d3/lib/shapes.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre-d3/lib/intersect/intersect-rect.js"),o=n("./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js"),s=n("./node_modules/dagre-d3/lib/intersect/intersect-circle.js"),a=n("./node_modules/dagre-d3/lib/intersect/intersect-polygon.js");e.exports={rect:function(e,t,n){var o=e.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-t.width/2).attr("y",-t.height/2).attr("width",t.width).attr("height",t.height);return n.intersect=function(e){return r(n,e)},o},ellipse:function(e,t,n){var r=t.width/2,s=t.height/2,a=e.insert("ellipse",":first-child").attr("x",-t.width/2).attr("y",-t.height/2).attr("rx",r).attr("ry",s);return n.intersect=function(e){return o(n,r,s,e)},a},circle:function(e,t,n){var r=Math.max(t.width,t.height)/2,o=e.insert("circle",":first-child").attr("x",-t.width/2).attr("y",-t.height/2).attr("r",r);return n.intersect=function(e){return s(n,r,e)},o},diamond:function(e,t,n){var r=t.width*Math.SQRT2/2,o=t.height*Math.SQRT2/2,s=[{x:0,y:-o},{x:-r,y:0},{x:0,y:o},{x:r,y:0}],i=e.insert("polygon",":first-child").attr("points",s.map((function(e){return e.x+","+e.y})).join(" "));return n.intersect=function(e){return a(n,s,e)},i}}},"./node_modules/dagre-d3/lib/util.js":(e,t,n)=>{var r=n("./node_modules/dagre-d3/lib/lodash.js");e.exports={isSubgraph:function(e,t){return!!e.children(t).length},edgeToId:function(e){return s(e.v)+":"+s(e.w)+":"+s(e.name)},applyStyle:function(e,t){t&&e.attr("style",t)},applyClass:function(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))},applyTransition:function(e,t){var n=t.graph();if(r.isPlainObject(n)){var o=n.transition;if(r.isFunction(o))return o(e)}return e}};var o=/:/g;function s(e){return e?String(e).replace(o,"\\:"):""}},"./node_modules/dagre-d3/lib/version.js":e=>{e.exports="0.6.4"},"./node_modules/dagre-d3/node_modules/d3-axis/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{slice:()=>r});var r=Array.prototype.slice},"./node_modules/dagre-d3/node_modules/d3-axis/src/axis.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{axisTop:()=>f,axisRight:()=>h,axisBottom:()=>m,axisLeft:()=>p});var r=n("./node_modules/dagre-d3/node_modules/d3-axis/src/array.js"),o=n("./node_modules/dagre-d3/node_modules/d3-axis/src/identity.js"),s=1e-6;function a(e){return"translate("+(e+.5)+",0)"}function i(e){return"translate(0,"+(e+.5)+")"}function d(e){return function(t){return+e(t)}}function l(e){var t=Math.max(0,e.bandwidth()-1)/2;return e.round()&&(t=Math.round(t)),function(n){return+e(n)+t}}function u(){return!this.__axis}function c(e,t){var n=[],c=null,f=null,h=6,m=6,p=3,g=1===e||4===e?-1:1,_=4===e||2===e?"x":"y",y=1===e||3===e?a:i;function v(r){var a=null==c?t.ticks?t.ticks.apply(t,n):t.domain():c,i=null==f?t.tickFormat?t.tickFormat.apply(t,n):o.default:f,v=Math.max(h,0)+p,b=t.range(),j=+b[0]+.5,x=+b[b.length-1]+.5,w=(t.bandwidth?l:d)(t.copy()),k=r.selection?r.selection():r,C=k.selectAll(".domain").data([null]),T=k.selectAll(".tick").data(a,t).order(),E=T.exit(),S=T.enter().append("g").attr("class","tick"),M=T.select("line"),A=T.select("text");C=C.merge(C.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),T=T.merge(S),M=M.merge(S.append("line").attr("stroke","currentColor").attr(_+"2",g*h)),A=A.merge(S.append("text").attr("fill","currentColor").attr(_,g*v).attr("dy",1===e?"0em":3===e?"0.71em":"0.32em")),r!==k&&(C=C.transition(r),T=T.transition(r),M=M.transition(r),A=A.transition(r),E=E.transition(r).attr("opacity",s).attr("transform",(function(e){return isFinite(e=w(e))?y(e):this.getAttribute("transform")})),S.attr("opacity",s).attr("transform",(function(e){var t=this.parentNode.__axis;return y(t&&isFinite(t=t(e))?t:w(e))}))),E.remove(),C.attr("d",4===e||2==e?m?"M"+g*m+","+j+"H0.5V"+x+"H"+g*m:"M0.5,"+j+"V"+x:m?"M"+j+","+g*m+"V0.5H"+x+"V"+g*m:"M"+j+",0.5H"+x),T.attr("opacity",1).attr("transform",(function(e){return y(w(e))})),M.attr(_+"2",g*h),A.attr(_,g*v).text(i),k.filter(u).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===e?"start":4===e?"end":"middle"),k.each((function(){this.__axis=w}))}return v.scale=function(e){return arguments.length?(t=e,v):t},v.ticks=function(){return n=r.slice.call(arguments),v},v.tickArguments=function(e){return arguments.length?(n=null==e?[]:r.slice.call(e),v):n.slice()},v.tickValues=function(e){return arguments.length?(c=null==e?null:r.slice.call(e),v):c&&c.slice()},v.tickFormat=function(e){return arguments.length?(f=e,v):f},v.tickSize=function(e){return arguments.length?(h=m=+e,v):h},v.tickSizeInner=function(e){return arguments.length?(h=+e,v):h},v.tickSizeOuter=function(e){return arguments.length?(m=+e,v):m},v.tickPadding=function(e){return arguments.length?(p=+e,v):p},v}function f(e){return c(1,e)}function h(e){return c(2,e)}function m(e){return c(3,e)}function p(e){return c(4,e)}},"./node_modules/dagre-d3/node_modules/d3-axis/src/identity.js":(e,t,n)=>{"use strict";function r(e){return e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-axis/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{axisTop:()=>r.axisTop,axisRight:()=>r.axisRight,axisBottom:()=>r.axisBottom,axisLeft:()=>r.axisLeft});var r=n("./node_modules/dagre-d3/node_modules/d3-axis/src/axis.js")},"./node_modules/dagre-d3/node_modules/d3-brush/src/brush.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{brushSelection:()=>R,brushX:()=>I,brushY:()=>P,default:()=>L});var r=n("./node_modules/d3-dispatch/src/dispatch.js"),o=n("./node_modules/d3-drag/src/nodrag.js"),s=n("./node_modules/d3-interpolate/src/value.js"),a=n("./node_modules/d3-selection/src/touch.js"),i=n("./node_modules/d3-selection/src/selection/on.js"),d=n("./node_modules/d3-selection/src/select.js"),l=n("./node_modules/d3-selection/src/mouse.js"),u=n("./node_modules/d3-transition/src/index.js"),c=n("./node_modules/dagre-d3/node_modules/d3-brush/src/constant.js"),f=n("./node_modules/dagre-d3/node_modules/d3-brush/src/event.js"),h=n("./node_modules/dagre-d3/node_modules/d3-brush/src/noevent.js"),m={name:"drag"},p={name:"space"},g={name:"handle"},_={name:"center"};function y(e){return[+e[0],+e[1]]}function v(e){return[y(e[0]),y(e[1])]}function b(e){return function(t){return(0,a.default)(t,i.event.touches,e)}}var j={name:"x",handles:["w","e"].map(M),input:function(e,t){return null==e?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},x={name:"y",handles:["n","s"].map(M),input:function(e,t){return null==e?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},w={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(M),input:function(e){return null==e?null:v(e)},output:function(e){return e}},k={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},C={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},T={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},E={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},S={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function M(e){return{type:e}}function A(){return!i.event.ctrlKey&&!i.event.button}function N(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function D(){return navigator.maxTouchPoints||"ontouchstart"in this}function O(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function B(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}function R(e){var t=e.__brush;return t?t.dim.output(t.selection):null}function I(){return F(j)}function P(){return F(x)}function L(){return F(w)}function F(e){var t,n=N,a=A,y=D,w=!0,R=(0,r.default)("start","brush","end"),I=6;function P(t){var n=t.property("__brush",H).selectAll(".overlay").data([M("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",k.overlay).merge(n).each((function(){var e=O(this).extent;(0,d.default)(this).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1])})),t.selectAll(".selection").data([M("selection")]).enter().append("rect").attr("class","selection").attr("cursor",k.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=t.selectAll(".handle").data(e.handles,(function(e){return e.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(e){return"handle handle--"+e.type})).attr("cursor",(function(e){return k[e.type]})),t.each(L).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",q).filter(y).on("touchstart.brush",q).on("touchmove.brush",Y).on("touchend.brush touchcancel.brush",U).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function L(){var e=(0,d.default)(this),t=O(this).selection;t?(e.selectAll(".selection").style("display",null).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1]),e.selectAll(".handle").style("display",null).attr("x",(function(e){return"e"===e.type[e.type.length-1]?t[1][0]-I/2:t[0][0]-I/2})).attr("y",(function(e){return"s"===e.type[0]?t[1][1]-I/2:t[0][1]-I/2})).attr("width",(function(e){return"n"===e.type||"s"===e.type?t[1][0]-t[0][0]+I:I})).attr("height",(function(e){return"e"===e.type||"w"===e.type?t[1][1]-t[0][1]+I:I}))):e.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function F(e,t,n){var r=e.__brush.emitter;return!r||n&&r.clean?new z(e,t,n):r}function z(e,t,n){this.that=e,this.args=t,this.state=e.__brush,this.active=0,this.clean=n}function q(){if((!t||i.event.touches)&&a.apply(this,arguments)){var n,r,s,c,f,y,v,M,A,N,D,R=this,I=i.event.target.__data__.type,P="selection"===(w&&i.event.metaKey?I="overlay":I)?m:w&&i.event.altKey?_:g,z=e===x?null:E[I],q=e===j?null:S[I],Y=O(R),U=Y.extent,H=Y.selection,G=U[0][0],V=U[0][1],W=U[1][0],$=U[1][1],X=0,Z=0,K=z&&q&&w&&i.event.shiftKey,Q=i.event.touches?b(i.event.changedTouches[0].identifier):l.default,J=Q(R),ee=J,te=F(R,arguments,!0).beforestart();"overlay"===I?(H&&(A=!0),Y.selection=H=[[n=e===x?G:J[0],s=e===j?V:J[1]],[f=e===x?W:n,v=e===j?$:s]]):(n=H[0][0],s=H[0][1],f=H[1][0],v=H[1][1]),r=n,c=s,y=f,M=v;var ne=(0,d.default)(R).attr("pointer-events","none"),re=ne.selectAll(".overlay").attr("cursor",k[I]);if(i.event.touches)te.moved=se,te.ended=ie;else{var oe=(0,d.default)(i.event.view).on("mousemove.brush",se,!0).on("mouseup.brush",ie,!0);w&&oe.on("keydown.brush",de,!0).on("keyup.brush",le,!0),(0,o.default)(i.event.view)}(0,h.nopropagation)(),(0,u.interrupt)(R),L.call(R),te.start()}function se(){var e=Q(R);!K||N||D||(Math.abs(e[0]-ee[0])>Math.abs(e[1]-ee[1])?D=!0:N=!0),ee=e,A=!0,(0,h.default)(),ae()}function ae(){var e;switch(X=ee[0]-J[0],Z=ee[1]-J[1],P){case p:case m:z&&(X=Math.max(G-n,Math.min(W-f,X)),r=n+X,y=f+X),q&&(Z=Math.max(V-s,Math.min($-v,Z)),c=s+Z,M=v+Z);break;case g:z<0?(X=Math.max(G-n,Math.min(W-n,X)),r=n+X,y=f):z>0&&(X=Math.max(G-f,Math.min(W-f,X)),r=n,y=f+X),q<0?(Z=Math.max(V-s,Math.min($-s,Z)),c=s+Z,M=v):q>0&&(Z=Math.max(V-v,Math.min($-v,Z)),c=s,M=v+Z);break;case _:z&&(r=Math.max(G,Math.min(W,n-X*z)),y=Math.max(G,Math.min(W,f+X*z))),q&&(c=Math.max(V,Math.min($,s-Z*q)),M=Math.max(V,Math.min($,v+Z*q)))}y0&&(n=r-X),q<0?v=M-Z:q>0&&(s=c-Z),P=p,re.attr("cursor",k.selection),ae());break;default:return}(0,h.default)()}function le(){switch(i.event.keyCode){case 16:K&&(N=D=K=!1,ae());break;case 18:P===_&&(z<0?f=y:z>0&&(n=r),q<0?v=M:q>0&&(s=c),P=g,ae());break;case 32:P===p&&(i.event.altKey?(z&&(f=y-X*z,n=r+X*z),q&&(v=M-Z*q,s=c+Z*q),P=_):(z<0?f=y:z>0&&(n=r),q<0?v=M:q>0&&(s=c),P=g),re.attr("cursor",k[I]),ae());break;default:return}(0,h.default)()}}function Y(){F(this,arguments).moved()}function U(){F(this,arguments).ended()}function H(){var t=this.__brush||{selection:null};return t.extent=v(n.apply(this,arguments)),t.dim=e,t}return P.move=function(t,n){t.selection?t.on("start.brush",(function(){F(this,arguments).beforestart().start()})).on("interrupt.brush end.brush",(function(){F(this,arguments).end()})).tween("brush",(function(){var t=this,r=t.__brush,o=F(t,arguments),a=r.selection,i=e.input("function"==typeof n?n.apply(this,arguments):n,r.extent),d=(0,s.default)(a,i);function l(e){r.selection=1===e&&null===i?null:d(e),L.call(t),o.brush()}return null!==a&&null!==i?l:l(1)})):t.each((function(){var t=this,r=arguments,o=t.__brush,s=e.input("function"==typeof n?n.apply(t,r):n,o.extent),a=F(t,r).beforestart();(0,u.interrupt)(t),o.selection=null===s?null:s,L.call(t),a.start().brush().end()}))},P.clear=function(e){P.move(e,null)},z.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting?(this.starting=!1,this.emit("start")):this.emit("brush"),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){(0,i.customEvent)(new f.default(P,t,e.output(this.state.selection)),R.apply,R,[t,this.that,this.args])}},P.extent=function(e){return arguments.length?(n="function"==typeof e?e:(0,c.default)(v(e)),P):n},P.filter=function(e){return arguments.length?(a="function"==typeof e?e:(0,c.default)(!!e),P):a},P.touchable=function(e){return arguments.length?(y="function"==typeof e?e:(0,c.default)(!!e),P):y},P.handleSize=function(e){return arguments.length?(I=+e,P):I},P.keyModifiers=function(e){return arguments.length?(w=!!e,P):w},P.on=function(){var e=R.on.apply(R,arguments);return e===R?P:e},P}},"./node_modules/dagre-d3/node_modules/d3-brush/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-brush/src/event.js":(e,t,n)=>{"use strict";function r(e,t,n){this.target=e,this.type=t,this.selection=n}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-brush/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{brush:()=>r.default,brushX:()=>r.brushX,brushY:()=>r.brushY,brushSelection:()=>r.brushSelection});var r=n("./node_modules/dagre-d3/node_modules/d3-brush/src/brush.js")},"./node_modules/dagre-d3/node_modules/d3-brush/src/noevent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{nopropagation:()=>o,default:()=>s});var r=n("./node_modules/d3-selection/src/selection/on.js");function o(){r.event.stopImmediatePropagation()}function s(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},"./node_modules/dagre-d3/node_modules/d3-chord/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{slice:()=>r});var r=Array.prototype.slice},"./node_modules/dagre-d3/node_modules/d3-chord/src/chord.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-chord/src/math.js");function s(e){return function(t,n){return e(t.source.value+t.target.value,n.source.value+n.target.value)}}function a(){var e=0,t=null,n=null,a=null;function i(s){var i,d,l,u,c,f,h=s.length,m=[],p=(0,r.range)(h),g=[],_=[],y=_.groups=new Array(h),v=new Array(h*h);for(i=0,c=-1;++c{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-chord/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{chord:()=>r.default,ribbon:()=>o.default});var r=n("./node_modules/dagre-d3/node_modules/d3-chord/src/chord.js"),o=n("./node_modules/dagre-d3/node_modules/d3-chord/src/ribbon.js")},"./node_modules/dagre-d3/node_modules/d3-chord/src/math.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{cos:()=>r,sin:()=>o,pi:()=>s,halfPi:()=>a,tau:()=>i,max:()=>d});var r=Math.cos,o=Math.sin,s=Math.PI,a=s/2,i=2*s,d=Math.max},"./node_modules/dagre-d3/node_modules/d3-chord/src/ribbon.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n("./node_modules/dagre-d3/node_modules/d3-chord/src/array.js"),o=n("./node_modules/dagre-d3/node_modules/d3-chord/src/constant.js"),s=n("./node_modules/dagre-d3/node_modules/d3-chord/src/math.js"),a=n("./node_modules/d3-path/src/path.js");function i(e){return e.source}function d(e){return e.target}function l(e){return e.radius}function u(e){return e.startAngle}function c(e){return e.endAngle}function f(){var e=i,t=d,n=l,f=u,h=c,m=null;function p(){var o,i=r.slice.call(arguments),d=e.apply(this,i),l=t.apply(this,i),u=+n.apply(this,(i[0]=d,i)),c=f.apply(this,i)-s.halfPi,p=h.apply(this,i)-s.halfPi,g=u*(0,s.cos)(c),_=u*(0,s.sin)(c),y=+n.apply(this,(i[0]=l,i)),v=f.apply(this,i)-s.halfPi,b=h.apply(this,i)-s.halfPi;if(m||(m=o=(0,a.default)()),m.moveTo(g,_),m.arc(0,0,u,c,p),c===v&&p===b||(m.quadraticCurveTo(0,0,y*(0,s.cos)(v),y*(0,s.sin)(v)),m.arc(0,0,y,v,b)),m.quadraticCurveTo(0,0,g,_),m.closePath(),o)return m=null,o+""||null}return p.radius=function(e){return arguments.length?(n="function"==typeof e?e:(0,o.default)(+e),p):n},p.startAngle=function(e){return arguments.length?(f="function"==typeof e?e:(0,o.default)(+e),p):f},p.endAngle=function(e){return arguments.length?(h="function"==typeof e?e:(0,o.default)(+e),p):h},p.source=function(t){return arguments.length?(e=t,p):e},p.target=function(e){return arguments.length?(t=e,p):t},p.context=function(e){return arguments.length?(m=null==e?null:e,p):m},p}},"./node_modules/dagre-d3/node_modules/d3-contour/src/area.js":(e,t,n)=>{"use strict";function r(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++tr})},"./node_modules/dagre-d3/node_modules/d3-contour/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{slice:()=>r});var r=Array.prototype.slice},"./node_modules/dagre-d3/node_modules/d3-contour/src/ascending.js":(e,t,n)=>{"use strict";function r(e,t){return e-t}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-contour/src/blur.js":(e,t,n)=>{"use strict";function r(e,t,n){for(var r=e.width,o=e.height,s=1+(n<<1),a=0;a=n&&(i>=s&&(d-=e.data[i-s+a*r]),t.data[i-n+a*r]=d/Math.min(i+1,r-1+s-i,s))}function o(e,t,n){for(var r=e.width,o=e.height,s=1+(n<<1),a=0;a=n&&(i>=s&&(d-=e.data[a+(i-s)*r]),t.data[a+(i-n)*r]=d/Math.min(i+1,o-1+s-i,s))}n.r(t),n.d(t,{blurX:()=>r,blurY:()=>o})},"./node_modules/dagre-d3/node_modules/d3-contour/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-contour/src/contains.js":(e,t,n)=>{"use strict";function r(e,t){for(var n,r=-1,s=t.length;++rr!=m>r&&n<(h-u)*(r-c)/(m-c)+u&&(o=-o)}return o}function s(e,t,n){var r,o,s,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(o=e[r=+(e[0]===t[0])],s=n[r],a=t[r],o<=s&&s<=a||a<=s&&s<=o)}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-contour/src/contours.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-contour/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-contour/src/ascending.js"),a=n("./node_modules/dagre-d3/node_modules/d3-contour/src/area.js"),i=n("./node_modules/dagre-d3/node_modules/d3-contour/src/constant.js"),d=n("./node_modules/dagre-d3/node_modules/d3-contour/src/contains.js"),l=n("./node_modules/dagre-d3/node_modules/d3-contour/src/noop.js"),u=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function c(){var e=1,t=1,n=r.thresholdSturges,c=p;function f(e){var t=n(e);if(Array.isArray(t))t=t.slice().sort(s.default);else{var o=(0,r.extent)(e),a=o[0],i=o[1];t=(0,r.tickStep)(a,i,t),t=(0,r.range)(Math.floor(a/t)*t,Math.floor(i/t)*t,t)}return t.map((function(t){return h(e,t)}))}function h(n,r){var o=[],s=[];return function(n,r,o){var s,a,i,d,l,c,f=new Array,h=new Array;for(s=a=-1,d=n[0]>=r,u[d<<1].forEach(p);++s=r,u[i|d<<1].forEach(p);for(u[d<<0].forEach(p);++a=r,l=n[a*e]>=r,u[d<<1|l<<2].forEach(p);++s=r,c=l,l=n[a*e+s+1]>=r,u[i|d<<1|l<<2|c<<3].forEach(p);u[d|l<<3].forEach(p)}for(s=-1,l=n[a*e]>=r,u[l<<2].forEach(p);++s=r,u[l<<2|c<<3].forEach(p);function p(e){var t,n,r=[e[0][0]+s,e[0][1]+a],i=[e[1][0]+s,e[1][1]+a],d=m(r),l=m(i);(t=h[d])?(n=f[l])?(delete h[t.end],delete f[n.start],t===n?(t.ring.push(i),o(t.ring)):f[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(i),h[t.end=l]=t):(t=f[l])?(n=h[d])?(delete f[t.start],delete h[n.end],t===n?(t.ring.push(i),o(t.ring)):f[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete f[t.start],t.ring.unshift(r),f[t.start=d]=t):f[d]=h[l]={start:d,end:l,ring:[r,i]}}u[l<<3].forEach(p)}(n,r,(function(e){c(e,n,r),(0,a.default)(e)>0?o.push([e]):s.push(e)})),s.forEach((function(e){for(var t,n=0,r=o.length;n0&&a0&&i0&&o>0))throw new Error("invalid size");return e=r,t=o,f},f.thresholds=function(e){return arguments.length?(n="function"==typeof e?e:Array.isArray(e)?(0,i.default)(o.slice.call(e)):(0,i.default)(e),f):n},f.smooth=function(e){return arguments.length?(c=e?p:l.default,f):c===p},f}},"./node_modules/dagre-d3/node_modules/d3-contour/src/density.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-contour/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-contour/src/blur.js"),a=n("./node_modules/dagre-d3/node_modules/d3-contour/src/constant.js"),i=n("./node_modules/dagre-d3/node_modules/d3-contour/src/contours.js");function d(e){return e[0]}function l(e){return e[1]}function u(){return 1}function c(){var e=d,t=l,n=u,c=960,f=500,h=20,m=2,p=3*h,g=c+2*p>>m,_=f+2*p>>m,y=(0,a.default)(20);function v(o){var a=new Float32Array(g*_),d=new Float32Array(g*_);o.forEach((function(r,o,s){var i=+e(r,o,s)+p>>m,d=+t(r,o,s)+p>>m,l=+n(r,o,s);i>=0&&i=0&&d<_&&(a[i+d*g]+=l)})),(0,s.blurX)({width:g,height:_,data:a},{width:g,height:_,data:d},h>>m),(0,s.blurY)({width:g,height:_,data:d},{width:g,height:_,data:a},h>>m),(0,s.blurX)({width:g,height:_,data:a},{width:g,height:_,data:d},h>>m),(0,s.blurY)({width:g,height:_,data:d},{width:g,height:_,data:a},h>>m),(0,s.blurX)({width:g,height:_,data:a},{width:g,height:_,data:d},h>>m),(0,s.blurY)({width:g,height:_,data:d},{width:g,height:_,data:a},h>>m);var l=y(a);if(!Array.isArray(l)){var u=(0,r.max)(a);l=(0,r.tickStep)(0,u,l),(l=(0,r.range)(0,Math.floor(u/l)*l,l)).shift()}return(0,i.default)().thresholds(l).size([g,_])(a).map(b)}function b(e){return e.value*=Math.pow(2,-2*m),e.coordinates.forEach(j),e}function j(e){e.forEach(x)}function x(e){e.forEach(w)}function w(e){e[0]=e[0]*Math.pow(2,m)-p,e[1]=e[1]*Math.pow(2,m)-p}function k(){return g=c+2*(p=3*h)>>m,_=f+2*p>>m,v}return v.x=function(t){return arguments.length?(e="function"==typeof t?t:(0,a.default)(+t),v):e},v.y=function(e){return arguments.length?(t="function"==typeof e?e:(0,a.default)(+e),v):t},v.weight=function(e){return arguments.length?(n="function"==typeof e?e:(0,a.default)(+e),v):n},v.size=function(e){if(!arguments.length)return[c,f];var t=Math.ceil(e[0]),n=Math.ceil(e[1]);if(!(t>=0||t>=0))throw new Error("invalid size");return c=t,f=n,k()},v.cellSize=function(e){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return m=Math.floor(Math.log(e)/Math.LN2),k()},v.thresholds=function(e){return arguments.length?(y="function"==typeof e?e:Array.isArray(e)?(0,a.default)(o.slice.call(e)):(0,a.default)(e),v):y},v.bandwidth=function(e){if(!arguments.length)return Math.sqrt(h*(h+1));if(!((e=+e)>=0))throw new Error("invalid bandwidth");return h=Math.round((Math.sqrt(4*e*e+1)-1)/2),k()},v}},"./node_modules/dagre-d3/node_modules/d3-contour/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{contours:()=>r.default,contourDensity:()=>o.default});var r=n("./node_modules/dagre-d3/node_modules/d3-contour/src/contours.js"),o=n("./node_modules/dagre-d3/node_modules/d3-contour/src/density.js")},"./node_modules/dagre-d3/node_modules/d3-contour/src/noop.js":(e,t,n)=>{"use strict";function r(){}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-fetch/src/blob.js":(e,t,n)=>{"use strict";function r(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.blob()}function o(e,t){return fetch(e,t).then(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/dagre-d3/node_modules/d3-fetch/src/buffer.js":(e,t,n)=>{"use strict";function r(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.arrayBuffer()}function o(e,t){return fetch(e,t).then(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/dagre-d3/node_modules/d3-fetch/src/dsv.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d,csv:()=>l,tsv:()=>u});var r=n("./node_modules/d3-dsv/src/dsv.js"),o=n("./node_modules/d3-dsv/src/csv.js"),s=n("./node_modules/d3-dsv/src/tsv.js"),a=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/text.js");function i(e){return function(t,n,r){return 2===arguments.length&&"function"==typeof n&&(r=n,n=void 0),(0,a.default)(t,n).then((function(t){return e(t,r)}))}}function d(e,t,n,o){3===arguments.length&&"function"==typeof n&&(o=n,n=void 0);var s=(0,r.default)(e);return(0,a.default)(t,n).then((function(e){return s.parse(e,o)}))}var l=i(o.csvParse),u=i(s.tsvParse)},"./node_modules/dagre-d3/node_modules/d3-fetch/src/image.js":(e,t,n)=>{"use strict";function r(e,t){return new Promise((function(n,r){var o=new Image;for(var s in t)o[s]=t[s];o.onerror=r,o.onload=function(){n(o)},o.src=e}))}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-fetch/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{blob:()=>r.default,buffer:()=>o.default,dsv:()=>s.default,csv:()=>s.csv,tsv:()=>s.tsv,image:()=>a.default,json:()=>i.default,text:()=>d.default,xml:()=>l.default,html:()=>l.html,svg:()=>l.svg});var r=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/blob.js"),o=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/buffer.js"),s=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/dsv.js"),a=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/image.js"),i=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/json.js"),d=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/text.js"),l=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/xml.js")},"./node_modules/dagre-d3/node_modules/d3-fetch/src/json.js":(e,t,n)=>{"use strict";function r(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);if(204!==e.status&&205!==e.status)return e.json()}function o(e,t){return fetch(e,t).then(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/dagre-d3/node_modules/d3-fetch/src/text.js":(e,t,n)=>{"use strict";function r(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.text()}function o(e,t){return fetch(e,t).then(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/dagre-d3/node_modules/d3-fetch/src/xml.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,html:()=>a,svg:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/text.js");function o(e){return function(t,n){return(0,r.default)(t,n).then((function(t){return(new DOMParser).parseFromString(t,e)}))}}const s=o("application/xml");var a=o("text/html"),i=o("image/svg+xml")},"./node_modules/dagre-d3/node_modules/d3-force/src/center.js":(e,t,n)=>{"use strict";function r(e,t){var n;function r(){var r,o,s=n.length,a=0,i=0;for(r=0;rr})},"./node_modules/dagre-d3/node_modules/d3-force/src/collide.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/constant.js"),o=n("./node_modules/dagre-d3/node_modules/d3-force/src/jiggle.js"),s=n("./node_modules/d3-quadtree/src/quadtree.js");function a(e){return e.x+e.vx}function i(e){return e.y+e.vy}function d(e){var t,n,d=1,l=1;function u(){for(var e,r,u,f,h,m,p,g=t.length,_=0;_f+l||rh+l||su.index){var c=f-a.x-a.vx,g=h-a.y-a.vy,_=c*c+g*g;_e.r&&(e.r=e[t].r)}function f(){if(t){var r,o,s=t.length;for(n=new Array(s),r=0;r{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-force/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{forceCenter:()=>r.default,forceCollide:()=>o.default,forceLink:()=>s.default,forceManyBody:()=>a.default,forceRadial:()=>i.default,forceSimulation:()=>d.default,forceX:()=>l.default,forceY:()=>u.default});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/center.js"),o=n("./node_modules/dagre-d3/node_modules/d3-force/src/collide.js"),s=n("./node_modules/dagre-d3/node_modules/d3-force/src/link.js"),a=n("./node_modules/dagre-d3/node_modules/d3-force/src/manyBody.js"),i=n("./node_modules/dagre-d3/node_modules/d3-force/src/radial.js"),d=n("./node_modules/dagre-d3/node_modules/d3-force/src/simulation.js"),l=n("./node_modules/dagre-d3/node_modules/d3-force/src/x.js"),u=n("./node_modules/dagre-d3/node_modules/d3-force/src/y.js")},"./node_modules/dagre-d3/node_modules/d3-force/src/jiggle.js":(e,t,n)=>{"use strict";function r(){return 1e-6*(Math.random()-.5)}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-force/src/link.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/constant.js"),o=n("./node_modules/dagre-d3/node_modules/d3-force/src/jiggle.js"),s=n("./node_modules/d3-collection/src/index.js");function a(e){return e.index}function i(e,t){var n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function d(e){var t,n,d,l,u,c=a,f=function(e){return 1/Math.min(l[e.source.index],l[e.target.index])},h=(0,r.default)(30),m=1;function p(r){for(var s=0,a=e.length;s{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/constant.js"),o=n("./node_modules/dagre-d3/node_modules/d3-force/src/jiggle.js"),s=n("./node_modules/d3-quadtree/src/quadtree.js"),a=n("./node_modules/dagre-d3/node_modules/d3-force/src/simulation.js");function i(){var e,t,n,i,d=(0,r.default)(-30),l=1,u=1/0,c=.81;function f(r){var o,i=e.length,d=(0,s.default)(e,a.x,a.y).visitAfter(m);for(n=r,o=0;o=u)){(e.data!==t||e.next)&&(0===d&&(m+=(d=(0,o.default)())*d),0===f&&(m+=(f=(0,o.default)())*f),m{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/constant.js");function o(e,t,n){var o,s,a,i=(0,r.default)(.1);function d(e){for(var r=0,i=o.length;r{"use strict";n.r(t),n.d(t,{x:()=>a,y:()=>i,default:()=>l});var r=n("./node_modules/d3-dispatch/src/dispatch.js"),o=n("./node_modules/d3-collection/src/index.js"),s=n("./node_modules/d3-timer/src/timer.js");function a(e){return e.x}function i(e){return e.y}var d=Math.PI*(3-Math.sqrt(5));function l(e){var t,n=1,a=.001,i=1-Math.pow(a,1/300),l=0,u=.6,c=(0,o.map)(),f=(0,s.timer)(m),h=(0,r.default)("tick","end");function m(){p(),h.call("tick",t),n1?(null==n?c.remove(e):c.set(e,_(n)),t):c.get(e)},find:function(t,n,r){var o,s,a,i,d,l=0,u=e.length;for(null==r?r=1/0:r*=r,l=0;l1?(h.on(e,n),t):h.on(e)}}}},"./node_modules/dagre-d3/node_modules/d3-force/src/x.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/constant.js");function o(e){var t,n,o,s=(0,r.default)(.1);function a(e){for(var r,s=0,a=t.length;s{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-force/src/constant.js");function o(e){var t,n,o,s=(0,r.default)(.1);function a(e){for(var r,s=0,a=t.length;s{"use strict";function r(){return new o}function o(){this.reset()}n.r(t),n.d(t,{default:()=>r}),o.prototype={constructor:o,reset:function(){this.s=this.t=0},add:function(e){a(s,e,this.t),a(this,s.s,this.s),this.s?this.t+=s.t:this.s=s.t},valueOf:function(){return this.s}};var s=new o;function a(e,t,n){var r=e.s=t+n,o=r-t,s=r-o;e.t=t-s+(n-o)}},"./node_modules/dagre-d3/node_modules/d3-geo/src/area.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{areaRingSum:()=>f,areaStream:()=>m,default:()=>v});var r,o,s,a,i,d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),u=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js"),c=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),f=(0,d.default)(),h=(0,d.default)(),m={point:u.default,lineStart:u.default,lineEnd:u.default,polygonStart:function(){f.reset(),m.lineStart=p,m.lineEnd=g},polygonEnd:function(){var e=+f;h.add(e<0?l.tau+e:e),this.lineStart=this.lineEnd=this.point=u.default},sphere:function(){h.add(l.tau)}};function p(){m.point=_}function g(){y(r,o)}function _(e,t){m.point=y,r=e,o=t,e*=l.radians,t*=l.radians,s=e,a=(0,l.cos)(t=t/2+l.quarterPi),i=(0,l.sin)(t)}function y(e,t){e*=l.radians,t=(t*=l.radians)/2+l.quarterPi;var n=e-s,r=n>=0?1:-1,o=r*n,d=(0,l.cos)(t),u=(0,l.sin)(t),c=i*u,h=a*d+c*(0,l.cos)(o),m=c*r*(0,l.sin)(o);f.add((0,l.atan2)(m,h)),s=e,a=d,i=u}function v(e){return h.reset(),(0,c.default)(e,m),2*h}},"./node_modules/dagre-d3/node_modules/d3-geo/src/bounds.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>A});var r,o,s,a,i,d,l,u,c,f,h=n("./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js"),m=n("./node_modules/dagre-d3/node_modules/d3-geo/src/area.js"),p=n("./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js"),g=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),_=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),y=(0,h.default)(),v={point:b,lineStart:x,lineEnd:w,polygonStart:function(){v.point=k,v.lineStart=C,v.lineEnd=T,y.reset(),m.areaStream.polygonStart()},polygonEnd:function(){m.areaStream.polygonEnd(),v.point=b,v.lineStart=x,v.lineEnd=w,m.areaRingSum<0?(r=-(s=180),o=-(a=90)):y>g.epsilon?a=90:y<-g.epsilon&&(o=-90),f[0]=r,f[1]=s},sphere:function(){r=-(s=180),o=-(a=90)}};function b(e,t){c.push(f=[r=e,s=e]),ta&&(a=t)}function j(e,t){var n=(0,p.cartesian)([e*g.radians,t*g.radians]);if(u){var d=(0,p.cartesianCross)(u,n),l=[d[1],-d[0],0],h=(0,p.cartesianCross)(l,d);(0,p.cartesianNormalizeInPlace)(h),h=(0,p.spherical)(h);var m,_=e-i,y=_>0?1:-1,v=h[0]*g.degrees*y,b=(0,g.abs)(_)>180;b^(y*ia&&(a=m):b^(y*i<(v=(v+360)%360-180)&&va&&(a=t)),b?eE(r,s)&&(s=e):E(e,s)>E(r,s)&&(r=e):s>=r?(es&&(s=e)):e>i?E(r,e)>E(r,s)&&(s=e):E(e,s)>E(r,s)&&(r=e)}else c.push(f=[r=e,s=e]);ta&&(a=t),u=n,i=e}function x(){v.point=j}function w(){f[0]=r,f[1]=s,v.point=b,u=null}function k(e,t){if(u){var n=e-i;y.add((0,g.abs)(n)>180?n+(n>0?360:-360):n)}else d=e,l=t;m.areaStream.point(e,t),j(e,t)}function C(){m.areaStream.lineStart()}function T(){k(d,l),m.areaStream.lineEnd(),(0,g.abs)(y)>g.epsilon&&(r=-(s=180)),f[0]=r,f[1]=s,u=null}function E(e,t){return(t-=e)<0?t+360:t}function S(e,t){return e[0]-t[0]}function M(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:tE(i[0],i[1])&&(i[1]=d[1]),E(d[0],i[1])>E(i[0],i[1])&&(i[0]=d[0])):l.push(i=d);for(u=-1/0,t=0,i=l[n=l.length-1];t<=n;i=d,++t)d=l[t],(h=E(i[1],d[0]))>u&&(u=h,r=d[0],s=i[1])}return c=f=null,r===1/0||o===1/0?[[NaN,NaN],[NaN,NaN]]:[[r,o],[s,a]]}},"./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{spherical:()=>o,cartesian:()=>s,cartesianDot:()=>a,cartesianCross:()=>i,cartesianAddInPlace:()=>d,cartesianScale:()=>l,cartesianNormalizeInPlace:()=>u});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function o(e){return[(0,r.atan2)(e[1],e[0]),(0,r.asin)(e[2])]}function s(e){var t=e[0],n=e[1],o=(0,r.cos)(n);return[o*(0,r.cos)(t),o*(0,r.sin)(t),(0,r.sin)(n)]}function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function i(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function d(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function l(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function u(e){var t=(0,r.sqrt)(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}},"./node_modules/dagre-d3/node_modules/d3-geo/src/centroid.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>O});var r,o,s,a,i,d,l,u,c,f,h,m,p,g,_,y,v=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),b=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js"),j=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),x={sphere:b.default,point:w,lineStart:C,lineEnd:S,polygonStart:function(){x.lineStart=M,x.lineEnd=A},polygonEnd:function(){x.lineStart=C,x.lineEnd=S}};function w(e,t){e*=v.radians,t*=v.radians;var n=(0,v.cos)(t);k(n*(0,v.cos)(e),n*(0,v.sin)(e),(0,v.sin)(t))}function k(e,t,n){++r,s+=(e-s)/r,a+=(t-a)/r,i+=(n-i)/r}function C(){x.point=T}function T(e,t){e*=v.radians,t*=v.radians;var n=(0,v.cos)(t);g=n*(0,v.cos)(e),_=n*(0,v.sin)(e),y=(0,v.sin)(t),x.point=E,k(g,_,y)}function E(e,t){e*=v.radians,t*=v.radians;var n=(0,v.cos)(t),r=n*(0,v.cos)(e),s=n*(0,v.sin)(e),a=(0,v.sin)(t),i=(0,v.atan2)((0,v.sqrt)((i=_*a-y*s)*i+(i=y*r-g*a)*i+(i=g*s-_*r)*i),g*r+_*s+y*a);o+=i,d+=i*(g+(g=r)),l+=i*(_+(_=s)),u+=i*(y+(y=a)),k(g,_,y)}function S(){x.point=w}function M(){x.point=N}function A(){D(m,p),x.point=w}function N(e,t){m=e,p=t,e*=v.radians,t*=v.radians,x.point=D;var n=(0,v.cos)(t);g=n*(0,v.cos)(e),_=n*(0,v.sin)(e),y=(0,v.sin)(t),k(g,_,y)}function D(e,t){e*=v.radians,t*=v.radians;var n=(0,v.cos)(t),r=n*(0,v.cos)(e),s=n*(0,v.sin)(e),a=(0,v.sin)(t),i=_*a-y*s,m=y*r-g*a,p=g*s-_*r,b=(0,v.sqrt)(i*i+m*m+p*p),j=(0,v.asin)(b),x=b&&-j/b;c+=x*i,f+=x*m,h+=x*p,o+=j,d+=j*(g+(g=r)),l+=j*(_+(_=s)),u+=j*(y+(y=a)),k(g,_,y)}function O(e){r=o=s=a=i=d=l=u=c=f=h=0,(0,j.default)(e,x);var t=c,n=f,m=h,p=t*t+n*n+m*m;return p{"use strict";n.r(t),n.d(t,{circleStream:()=>i,default:()=>l});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/constant.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/rotation.js");function i(e,t,n,o,a,i){if(n){var l=(0,s.cos)(t),u=(0,s.sin)(t),c=o*n;null==a?(a=t+o*s.tau,i=t-c/2):(a=d(l,a),i=d(l,i),(o>0?ai)&&(a+=o*s.tau));for(var f,h=a;o>0?h>i:h{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");const s=(0,r.default)((function(){return!0}),(function(e){var t,n=NaN,r=NaN,s=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(a,i){var d=a>0?o.pi:-o.pi,l=(0,o.abs)(a-n);(0,o.abs)(l-o.pi)0?o.halfPi:-o.halfPi),e.point(s,r),e.lineEnd(),e.lineStart(),e.point(d,r),e.point(a,r),t=0):s!==d&&l>=o.pi&&((0,o.abs)(n-s)o.epsilon?(0,o.atan)(((0,o.sin)(t)*(a=(0,o.cos)(r))*(0,o.sin)(n)-(0,o.sin)(r)*(s=(0,o.cos)(t))*(0,o.sin)(e))/(s*a*i)):(t+r)/2}(n,r,a,i),e.point(s,r),e.lineEnd(),e.lineStart(),e.point(d,r),t=0),e.point(n=a,r=i),s=d},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var s;if(null==e)s=n*o.halfPi,r.point(-o.pi,s),r.point(0,s),r.point(o.pi,s),r.point(o.pi,0),r.point(o.pi,-s),r.point(0,-s),r.point(-o.pi,-s),r.point(-o.pi,0),r.point(-o.pi,s);else if((0,o.abs)(e[0]-t[0])>o.epsilon){var a=e[0]{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js");function o(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:r.default,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/clip/circle.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/circle.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/pointEqual.js"),i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/index.js");function d(e){var t=(0,s.cos)(e),n=6*s.radians,d=t>0,l=(0,s.abs)(t)>s.epsilon;function u(e,n){return(0,s.cos)(e)*(0,s.cos)(n)>t}function c(e,n,o){var a=(0,r.cartesian)(e),i=(0,r.cartesian)(n),d=[1,0,0],l=(0,r.cartesianCross)(a,i),u=(0,r.cartesianDot)(l,l),c=l[0],f=u-c*c;if(!f)return!o&&e;var h=t*u/f,m=-t*c/f,p=(0,r.cartesianCross)(d,l),g=(0,r.cartesianScale)(d,h),_=(0,r.cartesianScale)(l,m);(0,r.cartesianAddInPlace)(g,_);var y=p,v=(0,r.cartesianDot)(g,y),b=(0,r.cartesianDot)(y,y),j=v*v-b*((0,r.cartesianDot)(g,g)-1);if(!(j<0)){var x=(0,s.sqrt)(j),w=(0,r.cartesianScale)(y,(-v-x)/b);if((0,r.cartesianAddInPlace)(w,g),w=(0,r.spherical)(w),!o)return w;var k,C=e[0],T=n[0],E=e[1],S=n[1];T0^w[1]<((0,s.abs)(w[0]-C)s.pi^(C<=w[0]&&w[0]<=T)){var N=(0,r.cartesianScale)(y,(-v+x)/b);return(0,r.cartesianAddInPlace)(N,g),[w,(0,r.spherical)(N)]}}}function f(t,n){var r=d?e:s.pi-e,o=0;return t<-r?o|=1:t>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return(0,i.default)(u,(function(e){var t,n,r,o,i;return{lineStart:function(){o=r=!1,i=1},point:function(h,m){var p,g=[h,m],_=u(h,m),y=d?_?0:f(h,m):_?f(h+(h<0?s.pi:-s.pi),m):0;if(!t&&(o=r=_)&&e.lineStart(),_!==r&&(!(p=c(t,g))||(0,a.default)(t,p)||(0,a.default)(g,p))&&(g[2]=1),_!==r)i=0,_?(e.lineStart(),p=c(g,t),e.point(p[0],p[1])):(p=c(t,g),e.point(p[0],p[1],2),e.lineEnd()),t=p;else if(l&&t&&d^_){var v;y&n||!(v=c(g,t,!0))||(i=0,d?(e.lineStart(),e.point(v[0][0],v[0][1]),e.point(v[1][0],v[1][1]),e.lineEnd()):(e.point(v[1][0],v[1][1]),e.lineEnd(),e.lineStart(),e.point(v[0][0],v[0][1],3)))}!_||t&&(0,a.default)(t,g)||e.point(g[0],g[1]),t=g,r=_,n=y},lineEnd:function(){r&&e.lineEnd(),t=null},clean:function(){return i|(o&&r)<<1}}}),(function(t,r,s,a){(0,o.circleStream)(a,e,n,s,t,r)}),d?[0,-e]:[-s.pi,e-s.pi])}},"./node_modules/dagre-d3/node_modules/d3-geo/src/clip/extent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rectangle.js");function o(){var e,t,n,o=0,s=0,a=960,i=500;return n={stream:function(n){return e&&t===n?e:e=(0,r.default)(o,s,a,i)(t=n)},extent:function(r){return arguments.length?(o=+r[0][0],s=+r[0][1],a=+r[1][0],i=+r[1][1],e=t=null,n):[[o,s],[a,i]]}}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/clip/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/buffer.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rejoin.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/polygonContains.js"),i=n("./node_modules/d3-array/src/index.js");function d(e,t,n,s){return function(d){var c,f,h,m=t(d),p=(0,r.default)(),g=t(p),_=!1,y={point:v,lineStart:j,lineEnd:x,polygonStart:function(){y.point=w,y.lineStart=k,y.lineEnd=C,f=[],c=[]},polygonEnd:function(){y.point=v,y.lineStart=j,y.lineEnd=x,f=(0,i.merge)(f);var e=(0,a.default)(c,s);f.length?(_||(d.polygonStart(),_=!0),(0,o.default)(f,u,e,n,d)):e&&(_||(d.polygonStart(),_=!0),d.lineStart(),n(null,null,1,d),d.lineEnd()),_&&(d.polygonEnd(),_=!1),f=c=null},sphere:function(){d.polygonStart(),d.lineStart(),n(null,null,1,d),d.lineEnd(),d.polygonEnd()}};function v(t,n){e(t,n)&&d.point(t,n)}function b(e,t){m.point(e,t)}function j(){y.point=b,m.lineStart()}function x(){y.point=v,m.lineEnd()}function w(e,t){h.push([e,t]),g.point(e,t)}function k(){g.lineStart(),h=[]}function C(){w(h[0][0],h[0][1]),g.lineEnd();var e,t,n,r,o=g.clean(),s=p.result(),a=s.length;if(h.pop(),c.push(h),h=null,a)if(1&o){if((t=(n=s[0]).length-1)>0){for(_||(d.polygonStart(),_=!0),d.lineStart(),e=0;e1&&2&o&&s.push(s.pop().concat(s.shift())),f.push(s.filter(l))}return y}}function l(e){return e.length>1}function u(e,t){return((e=e.x)[0]<0?e[1]-s.halfPi-s.epsilon:s.halfPi-e[1])-((t=t.x)[0]<0?t[1]-s.halfPi-s.epsilon:s.halfPi-t[1])}},"./node_modules/dagre-d3/node_modules/d3-geo/src/clip/line.js":(e,t,n)=>{"use strict";function r(e,t,n,r,o,s){var a,i=e[0],d=e[1],l=0,u=1,c=t[0]-i,f=t[1]-d;if(a=n-i,c||!(a>0)){if(a/=c,c<0){if(a0){if(a>u)return;a>l&&(l=a)}if(a=o-i,c||!(a<0)){if(a/=c,c<0){if(a>u)return;a>l&&(l=a)}else if(c>0){if(a0)){if(a/=f,f<0){if(a0){if(a>u)return;a>l&&(l=a)}if(a=s-d,f||!(a<0)){if(a/=f,f<0){if(a>u)return;a>l&&(l=a)}else if(f>0){if(a0&&(e[0]=i+l*c,e[1]=d+l*f),u<1&&(t[0]=i+u*c,t[1]=d+u*f),!0}}}}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rectangle.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/buffer.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/line.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rejoin.js"),i=n("./node_modules/d3-array/src/index.js"),d=1e9,l=-d;function u(e,t,n,u){function c(r,o){return e<=r&&r<=n&&t<=o&&o<=u}function f(r,o,s,a){var i=0,d=0;if(null==r||(i=h(r,s))!==(d=h(o,s))||p(r,o)<0^s>0)do{a.point(0===i||3===i?e:n,i>1?u:t)}while((i=(i+s+4)%4)!==d);else a.point(o[0],o[1])}function h(o,s){return(0,r.abs)(o[0]-e)0?0:3:(0,r.abs)(o[0]-n)0?2:1:(0,r.abs)(o[1]-t)0?1:0:s>0?3:2}function m(e,t){return p(e.x,t.x)}function p(e,t){var n=h(e,1),r=h(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(r){var h,p,g,_,y,v,b,j,x,w,k,C=r,T=(0,o.default)(),E={point:S,lineStart:function(){E.point=M,p&&p.push(g=[]),w=!0,x=!1,b=j=NaN},lineEnd:function(){h&&(M(_,y),v&&x&&T.rejoin(),h.push(T.result())),E.point=S,x&&C.lineEnd()},polygonStart:function(){C=T,h=[],p=[],k=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,r=p.length;nu&&(c-o)*(u-s)>(f-s)*(e-o)&&++t:f<=u&&(c-o)*(u-s)<(f-s)*(e-o)&&--t;return t}(),n=k&&t,o=(h=(0,i.merge)(h)).length;(n||o)&&(r.polygonStart(),n&&(r.lineStart(),f(null,null,1,r),r.lineEnd()),o&&(0,a.default)(h,m,t,f,r),r.polygonEnd()),C=r,h=p=g=null}};function S(e,t){c(e,t)&&C.point(e,t)}function M(r,o){var a=c(r,o);if(p&&g.push([r,o]),w)_=r,y=o,v=a,w=!1,a&&(C.lineStart(),C.point(r,o));else if(a&&x)C.point(r,o);else{var i=[b=Math.max(l,Math.min(d,b)),j=Math.max(l,Math.min(d,j))],f=[r=Math.max(l,Math.min(d,r)),o=Math.max(l,Math.min(d,o))];(0,s.default)(i,f,e,t,n,u)?(x||(C.lineStart(),C.point(i[0],i[1])),C.point(f[0],f[1]),a||C.lineEnd(),k=!1):a&&(C.lineStart(),C.point(r,o),k=!1)}b=r,j=o,x=a}return E}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rejoin.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/pointEqual.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function s(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function a(e,t,n,a,d){var l,u,c=[],f=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,a=e[0],i=e[t];if((0,r.default)(a,i)){if(!a[2]&&!i[2]){for(d.lineStart(),l=0;l=0;--l)d.point((m=h[l])[0],m[1]);else a(g.x,g.p.x,-1,d);g=g.p}h=(g=g.o).z,_=!_}while(!g.v);d.lineEnd()}}}function i(e){if(t=e.length){for(var t,n,r=0,o=e[0];++r{"use strict";function r(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-geo/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-geo/src/contains.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/polygonContains.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/distance.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),a={Feature:function(e,t){return d(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r0&&(a=(0,o.default)(e[i],e[i-1]))>0&&n<=a&&r<=a&&(n+r-a)*(1-Math.pow((n-r)/a,2)){"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/length.js"),o=[null,null],s={type:"LineString",coordinates:o};function a(e,t){return o[0]=e,o[1]=t,(0,r.default)(s)}},"./node_modules/dagre-d3/node_modules/d3-geo/src/graticule.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i,graticule10:()=>d});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function s(e,t,n){var s=(0,r.range)(e,t-o.epsilon,n).concat(t);return function(e){return s.map((function(t){return[e,t]}))}}function a(e,t,n){var s=(0,r.range)(e,t-o.epsilon,n).concat(t);return function(e){return s.map((function(t){return[t,e]}))}}function i(){var e,t,n,i,d,l,u,c,f,h,m,p,g=10,_=g,y=90,v=360,b=2.5;function j(){return{type:"MultiLineString",coordinates:x()}}function x(){return(0,r.range)((0,o.ceil)(i/y)*y,n,y).map(m).concat((0,r.range)((0,o.ceil)(c/v)*v,u,v).map(p)).concat((0,r.range)((0,o.ceil)(t/g)*g,e,g).filter((function(e){return(0,o.abs)(e%y)>o.epsilon})).map(f)).concat((0,r.range)((0,o.ceil)(l/_)*_,d,_).filter((function(e){return(0,o.abs)(e%v)>o.epsilon})).map(h))}return j.lines=function(){return x().map((function(e){return{type:"LineString",coordinates:e}}))},j.outline=function(){return{type:"Polygon",coordinates:[m(i).concat(p(u).slice(1),m(n).reverse().slice(1),p(c).reverse().slice(1))]}},j.extent=function(e){return arguments.length?j.extentMajor(e).extentMinor(e):j.extentMinor()},j.extentMajor=function(e){return arguments.length?(i=+e[0][0],n=+e[1][0],c=+e[0][1],u=+e[1][1],i>n&&(e=i,i=n,n=e),c>u&&(e=c,c=u,u=e),j.precision(b)):[[i,c],[n,u]]},j.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],l=+n[0][1],d=+n[1][1],t>e&&(n=t,t=e,e=n),l>d&&(n=l,l=d,d=n),j.precision(b)):[[t,l],[e,d]]},j.step=function(e){return arguments.length?j.stepMajor(e).stepMinor(e):j.stepMinor()},j.stepMajor=function(e){return arguments.length?(y=+e[0],v=+e[1],j):[y,v]},j.stepMinor=function(e){return arguments.length?(g=+e[0],_=+e[1],j):[g,_]},j.precision=function(r){return arguments.length?(b=+r,f=s(l,d,90),h=a(t,e,b),m=s(c,u,90),p=a(i,n,b),j):b},j.extentMajor([[-180,-90+o.epsilon],[180,90-o.epsilon]]).extentMinor([[-180,-80-o.epsilon],[180,80+o.epsilon]])}function d(){return i()()}},"./node_modules/dagre-d3/node_modules/d3-geo/src/identity.js":(e,t,n)=>{"use strict";function r(e){return e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-geo/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{geoArea:()=>r.default,geoBounds:()=>o.default,geoCentroid:()=>s.default,geoCircle:()=>a.default,geoClipAntimeridian:()=>i.default,geoClipCircle:()=>d.default,geoClipExtent:()=>l.default,geoClipRectangle:()=>u.default,geoContains:()=>c.default,geoDistance:()=>f.default,geoGraticule:()=>h.default,geoGraticule10:()=>h.graticule10,geoInterpolate:()=>m.default,geoLength:()=>p.default,geoPath:()=>g.default,geoAlbers:()=>_.default,geoAlbersUsa:()=>y.default,geoAzimuthalEqualArea:()=>v.default,geoAzimuthalEqualAreaRaw:()=>v.azimuthalEqualAreaRaw,geoAzimuthalEquidistant:()=>b.default,geoAzimuthalEquidistantRaw:()=>b.azimuthalEquidistantRaw,geoConicConformal:()=>j.default,geoConicConformalRaw:()=>j.conicConformalRaw,geoConicEqualArea:()=>x.default,geoConicEqualAreaRaw:()=>x.conicEqualAreaRaw,geoConicEquidistant:()=>w.default,geoConicEquidistantRaw:()=>w.conicEquidistantRaw,geoEqualEarth:()=>k.default,geoEqualEarthRaw:()=>k.equalEarthRaw,geoEquirectangular:()=>C.default,geoEquirectangularRaw:()=>C.equirectangularRaw,geoGnomonic:()=>T.default,geoGnomonicRaw:()=>T.gnomonicRaw,geoIdentity:()=>E.default,geoProjection:()=>S.default,geoProjectionMutator:()=>S.projectionMutator,geoMercator:()=>M.default,geoMercatorRaw:()=>M.mercatorRaw,geoNaturalEarth1:()=>A.default,geoNaturalEarth1Raw:()=>A.naturalEarth1Raw,geoOrthographic:()=>N.default,geoOrthographicRaw:()=>N.orthographicRaw,geoStereographic:()=>D.default,geoStereographicRaw:()=>D.stereographicRaw,geoTransverseMercator:()=>O.default,geoTransverseMercatorRaw:()=>O.transverseMercatorRaw,geoRotation:()=>B.default,geoStream:()=>R.default,geoTransform:()=>I.default});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/area.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/bounds.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/centroid.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/circle.js"),i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/antimeridian.js"),d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/circle.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/extent.js"),u=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rectangle.js"),c=n("./node_modules/dagre-d3/node_modules/d3-geo/src/contains.js"),f=n("./node_modules/dagre-d3/node_modules/d3-geo/src/distance.js"),h=n("./node_modules/dagre-d3/node_modules/d3-geo/src/graticule.js"),m=n("./node_modules/dagre-d3/node_modules/d3-geo/src/interpolate.js"),p=n("./node_modules/dagre-d3/node_modules/d3-geo/src/length.js"),g=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/index.js"),_=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/albers.js"),y=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/albersUsa.js"),v=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthalEqualArea.js"),b=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthalEquidistant.js"),j=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicConformal.js"),x=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEqualArea.js"),w=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEquidistant.js"),k=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/equalEarth.js"),C=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/equirectangular.js"),T=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/gnomonic.js"),E=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/identity.js"),S=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js"),M=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/mercator.js"),A=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/naturalEarth1.js"),N=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/orthographic.js"),D=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/stereographic.js"),O=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/transverseMercator.js"),B=n("./node_modules/dagre-d3/node_modules/d3-geo/src/rotation.js"),R=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),I=n("./node_modules/dagre-d3/node_modules/d3-geo/src/transform.js")},"./node_modules/dagre-d3/node_modules/d3-geo/src/interpolate.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function o(e,t){var n=e[0]*r.radians,o=e[1]*r.radians,s=t[0]*r.radians,a=t[1]*r.radians,i=(0,r.cos)(o),d=(0,r.sin)(o),l=(0,r.cos)(a),u=(0,r.sin)(a),c=i*(0,r.cos)(n),f=i*(0,r.sin)(n),h=l*(0,r.cos)(s),m=l*(0,r.sin)(s),p=2*(0,r.asin)((0,r.sqrt)((0,r.haversin)(a-o)+i*l*(0,r.haversin)(s-n))),g=(0,r.sin)(p),_=p?function(e){var t=(0,r.sin)(e*=p)/g,n=(0,r.sin)(p-e)/g,o=n*c+t*h,s=n*f+t*m,a=n*d+t*u;return[(0,r.atan2)(s,o)*r.degrees,(0,r.atan2)(a,(0,r.sqrt)(o*o+s*s))*r.degrees]}:function(){return[n*r.degrees,o*r.degrees]};return _.distance=p,_}},"./node_modules/dagre-d3/node_modules/d3-geo/src/length.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r,o,s,a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js"),i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),u=(0,a.default)(),c={sphere:d.default,point:d.default,lineStart:function(){c.point=h,c.lineEnd=f},lineEnd:d.default,polygonStart:d.default,polygonEnd:d.default};function f(){c.point=c.lineEnd=d.default}function h(e,t){e*=i.radians,t*=i.radians,r=e,o=(0,i.sin)(t),s=(0,i.cos)(t),c.point=m}function m(e,t){e*=i.radians,t*=i.radians;var n=(0,i.sin)(t),a=(0,i.cos)(t),d=(0,i.abs)(e-r),l=(0,i.cos)(d),c=a*(0,i.sin)(d),f=s*n-o*a*l,h=o*n+s*a*l;u.add((0,i.atan2)((0,i.sqrt)(c*c+f*f),h)),r=e,o=n,s=a}function p(e){return u.reset(),(0,l.default)(e,c),+u}},"./node_modules/dagre-d3/node_modules/d3-geo/src/math.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{epsilon:()=>r,epsilon2:()=>o,pi:()=>s,halfPi:()=>a,quarterPi:()=>i,tau:()=>d,degrees:()=>l,radians:()=>u,abs:()=>c,atan:()=>f,atan2:()=>h,cos:()=>m,ceil:()=>p,exp:()=>g,floor:()=>_,log:()=>y,pow:()=>v,sin:()=>b,sign:()=>j,sqrt:()=>x,tan:()=>w,acos:()=>k,asin:()=>C,haversin:()=>T});var r=1e-6,o=1e-12,s=Math.PI,a=s/2,i=s/4,d=2*s,l=180/s,u=s/180,c=Math.abs,f=Math.atan,h=Math.atan2,m=Math.cos,p=Math.ceil,g=Math.exp,_=Math.floor,y=Math.log,v=Math.pow,b=Math.sin,j=Math.sign||function(e){return e>0?1:e<0?-1:0},x=Math.sqrt,w=Math.tan;function k(e){return e>1?0:e<-1?s:Math.acos(e)}function C(e){return e>1?a:e<-1?-a:Math.asin(e)}function T(e){return(e=b(e/2))*e}},"./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js":(e,t,n)=>{"use strict";function r(){}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/area.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>_});var r,o,s,a,i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js"),d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js"),u=(0,i.default)(),c=(0,i.default)(),f={point:l.default,lineStart:l.default,lineEnd:l.default,polygonStart:function(){f.lineStart=h,f.lineEnd=g},polygonEnd:function(){f.lineStart=f.lineEnd=f.point=l.default,u.add((0,d.abs)(c)),c.reset()},result:function(){var e=u/2;return u.reset(),e}};function h(){f.point=m}function m(e,t){f.point=p,r=s=e,o=a=t}function p(e,t){c.add(a*e-s*t),s=e,a=t}function g(){p(r,o)}const _=f},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/bounds.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js"),o=1/0,s=o,a=-o,i=a;const d={point:function(e,t){ea&&(a=e),ti&&(i=t)},lineStart:r.default,lineEnd:r.default,polygonStart:r.default,polygonEnd:r.default,result:function(){var e=[[o,s],[a,i]];return a=i=-(s=o=1/0),e}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/centroid.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var r,o,s,a,i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),d=0,l=0,u=0,c=0,f=0,h=0,m=0,p=0,g=0,_={point:y,lineStart:v,lineEnd:x,polygonStart:function(){_.lineStart=w,_.lineEnd=k},polygonEnd:function(){_.point=y,_.lineStart=v,_.lineEnd=x},result:function(){var e=g?[m/g,p/g]:h?[c/h,f/h]:u?[d/u,l/u]:[NaN,NaN];return d=l=u=c=f=h=m=p=g=0,e}};function y(e,t){d+=e,l+=t,++u}function v(){_.point=b}function b(e,t){_.point=j,y(s=e,a=t)}function j(e,t){var n=e-s,r=t-a,o=(0,i.sqrt)(n*n+r*r);c+=o*(s+e)/2,f+=o*(a+t)/2,h+=o,y(s=e,a=t)}function x(){_.point=y}function w(){_.point=C}function k(){T(r,o)}function C(e,t){_.point=T,y(r=s=e,o=a=t)}function T(e,t){var n=e-s,r=t-a,o=(0,i.sqrt)(n*n+r*r);c+=o*(s+e)/2,f+=o*(a+t)/2,h+=o,m+=(o=a*e-s*t)*(s+e),p+=o*(a+t),g+=3*o,y(s=e,a=t)}const E=_},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/context.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js");function s(e){this._context=e}s.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,r.tau)}},result:o.default}},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/identity.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/area.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/bounds.js"),i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/centroid.js"),d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/context.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/measure.js"),u=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/string.js");function c(e,t){var n,c,f=4.5;function h(e){return e&&("function"==typeof f&&c.pointRadius(+f.apply(this,arguments)),(0,o.default)(e,n(c))),c.result()}return h.area=function(e){return(0,o.default)(e,n(s.default)),s.default.result()},h.measure=function(e){return(0,o.default)(e,n(l.default)),l.default.result()},h.bounds=function(e){return(0,o.default)(e,n(a.default)),a.default.result()},h.centroid=function(e){return(0,o.default)(e,n(i.default)),i.default.result()},h.projection=function(t){return arguments.length?(n=null==t?(e=null,r.default):(e=t).stream,h):e},h.context=function(e){return arguments.length?(c=null==e?(t=null,new u.default):new d.default(t=e),"function"!=typeof f&&c.pointRadius(f),h):t},h.pointRadius=function(e){return arguments.length?(f="function"==typeof e?e:(c.pointRadius(+e),+e),h):f},h.projection(e).context(t)}},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/measure.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r,o,s,a,i,d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),u=n("./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js"),c=(0,d.default)(),f={point:u.default,lineStart:function(){f.point=h},lineEnd:function(){r&&m(o,s),f.point=u.default},polygonStart:function(){r=!0},polygonEnd:function(){r=null},result:function(){var e=+c;return c.reset(),e}};function h(e,t){f.point=m,o=a=e,s=i=t}function m(e,t){a-=e,i-=t,c.add((0,l.sqrt)(a*a+i*i)),a=e,i=t}const p=f},"./node_modules/dagre-d3/node_modules/d3-geo/src/path/string.js":(e,t,n)=>{"use strict";function r(){this._string=[]}function o(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+-2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}n.r(t),n.d(t,{default:()=>r}),r.prototype={_radius:4.5,_circle:o(4.5),pointRadius:function(e){return(e=+e)!==this._radius&&(this._radius=e,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._string.push("M",e,",",t),this._point=1;break;case 1:this._string.push("L",e,",",t);break;default:null==this._circle&&(this._circle=o(this._radius)),this._string.push("M",e,",",t,this._circle)}},result:function(){if(this._string.length){var e=this._string.join("");return this._string=[],e}return null}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/pointEqual.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function o(e,t){return(0,r.abs)(e[0]-t[0]){"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),a=(0,r.default)();function i(e){return(0,s.abs)(e[0])<=s.pi?e[0]:(0,s.sign)(e[0])*(((0,s.abs)(e[0])+s.pi)%s.tau-s.pi)}function d(e,t){var n=i(t),r=t[1],d=(0,s.sin)(r),l=[(0,s.sin)(n),-(0,s.cos)(n),0],u=0,c=0;a.reset(),1===d?r=s.halfPi+s.epsilon:-1===d&&(r=-s.halfPi-s.epsilon);for(var f=0,h=e.length;f=0?1:-1,M=S*E,A=M>s.pi,N=v*C;if(a.add((0,s.atan2)(N*S*(0,s.sin)(M),b*T+N*(0,s.cos)(M))),u+=A?E+S*s.tau:E,A^_>=n^w>=n){var D=(0,o.cartesianCross)((0,o.cartesian)(g),(0,o.cartesian)(x));(0,o.cartesianNormalizeInPlace)(D);var O=(0,o.cartesianCross)(l,D);(0,o.cartesianNormalizeInPlace)(O);var B=(A^E>=0?-1:1)*(0,s.asin)(O[2]);(r>B||r===B&&(D[0]||D[1]))&&(c+=A^E>=0?1:-1)}}return(u<-s.epsilon||u{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEqualArea.js");function o(){return(0,r.default)().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/albersUsa.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/albers.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEqualArea.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/fit.js");function i(){var e,t,n,i,d,l,u=(0,o.default)(),c=(0,s.default)().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=(0,s.default)().rotate([157,0]).center([-3,19.9]).parallels([8,18]),h={point:function(e,t){l=[e,t]}};function m(e){var t=e[0],r=e[1];return l=null,n.point(t,r),l||(i.point(t,r),l)||(d.point(t,r),l)}function p(){return e=t=null,m}return m.invert=function(e){var t=u.scale(),n=u.translate(),r=(e[0]-n[0])/t,o=(e[1]-n[1])/t;return(o>=.12&&o<.234&&r>=-.425&&r<-.214?c:o>=.166&&o<.234&&r>=-.214&&r<-.115?f:u).invert(e)},m.stream=function(n){return e&&t===n?e:(r=[u.stream(t=n),c.stream(n),f.stream(n)],o=r.length,e={point:function(e,t){for(var n=-1;++n{"use strict";n.r(t),n.d(t,{azimuthalRaw:()=>o,azimuthalInvert:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function o(e){return function(t,n){var o=(0,r.cos)(t),s=(0,r.cos)(n),a=e(o*s);return[a*s*(0,r.sin)(t),a*(0,r.sin)(n)]}}function s(e){return function(t,n){var o=(0,r.sqrt)(t*t+n*n),s=e(o),a=(0,r.sin)(s),i=(0,r.cos)(s);return[(0,r.atan2)(t*a,o*i),(0,r.asin)(o&&n*a/o)]}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthalEqualArea.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{azimuthalEqualAreaRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthal.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js"),a=(0,o.azimuthalRaw)((function(e){return(0,r.sqrt)(2/(1+e))}));function i(){return(0,s.default)(a).scale(124.75).clipAngle(179.999)}a.invert=(0,o.azimuthalInvert)((function(e){return 2*(0,r.asin)(e/2)}))},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthalEquidistant.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{azimuthalEquidistantRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthal.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js"),a=(0,o.azimuthalRaw)((function(e){return(e=(0,r.acos)(e))&&e/(0,r.sin)(e)}));function i(){return(0,s.default)(a).scale(79.4188).clipAngle(179.999)}a.invert=(0,o.azimuthalInvert)((function(e){return e}))},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conic.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{conicProjection:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js");function s(e){var t=0,n=r.pi/3,s=(0,o.projectionMutator)(e),a=s(t,n);return a.parallels=function(e){return arguments.length?s(t=e[0]*r.radians,n=e[1]*r.radians):[t*r.degrees,n*r.degrees]},a}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicConformal.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{conicConformalRaw:()=>i,default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conic.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/mercator.js");function a(e){return(0,r.tan)((r.halfPi+e)/2)}function i(e,t){var n=(0,r.cos)(e),o=e===t?(0,r.sin)(e):(0,r.log)(n/(0,r.cos)(t))/(0,r.log)(a(t)/a(e)),i=n*(0,r.pow)(a(e),o)/o;if(!o)return s.mercatorRaw;function d(e,t){i>0?t<-r.halfPi+r.epsilon&&(t=-r.halfPi+r.epsilon):t>r.halfPi-r.epsilon&&(t=r.halfPi-r.epsilon);var n=i/(0,r.pow)(a(t),o);return[n*(0,r.sin)(o*e),i-n*(0,r.cos)(o*e)]}return d.invert=function(e,t){var n=i-t,s=(0,r.sign)(o)*(0,r.sqrt)(e*e+n*n),a=(0,r.atan2)(e,(0,r.abs)(n))*(0,r.sign)(n);return n*o<0&&(a-=r.pi*(0,r.sign)(e)*(0,r.sign)(n)),[a/o,2*(0,r.atan)((0,r.pow)(i/s,1/o))-r.halfPi]},d}function d(){return(0,o.conicProjection)(i).scale(109.5).parallels([30,30])}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEqualArea.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{conicEqualAreaRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conic.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/cylindricalEqualArea.js");function a(e,t){var n=(0,r.sin)(e),o=(n+(0,r.sin)(t))/2;if((0,r.abs)(o){"use strict";n.r(t),n.d(t,{conicEquidistantRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conic.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/equirectangular.js");function a(e,t){var n=(0,r.cos)(e),o=e===t?(0,r.sin)(e):(n-(0,r.cos)(t))/(t-e),a=n/o+e;if((0,r.abs)(o){"use strict";n.r(t),n.d(t,{cylindricalEqualAreaRaw:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function o(e){var t=(0,r.cos)(e);function n(e,n){return[e*t,(0,r.sin)(n)/t]}return n.invert=function(e,n){return[e/t,(0,r.asin)(n*t)]},n}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/equalEarth.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{equalEarthRaw:()=>u,default:()=>c});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),s=1.340264,a=-.081106,i=893e-6,d=.003796,l=(0,o.sqrt)(3)/2;function u(e,t){var n=(0,o.asin)(l*(0,o.sin)(t)),r=n*n,u=r*r*r;return[e*(0,o.cos)(n)/(l*(s+3*a*r+u*(7*i+9*d*r))),n*(s+a*r+u*(i+d*r))]}function c(){return(0,r.default)(u).scale(177.158)}u.invert=function(e,t){for(var n,r=t,u=r*r,c=u*u*u,f=0;f<12&&(c=(u=(r-=n=(r*(s+a*u+c*(i+d*u))-t)/(s+3*a*u+c*(7*i+9*d*u)))*r)*u*u,!((0,o.abs)(n){"use strict";n.r(t),n.d(t,{equirectangularRaw:()=>o,default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js");function o(e,t){return[e,t]}function s(){return(0,r.default)(o).scale(152.63)}o.invert=o},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/fit.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{fitExtent:()=>a,fitSize:()=>i,fitWidth:()=>d,fitHeight:()=>l});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/path/bounds.js");function s(e,t,n){var s=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=s&&e.clipExtent(null),(0,r.default)(n,e.stream(o.default)),t(o.default.result()),null!=s&&e.clipExtent(s),e}function a(e,t,n){return s(e,(function(n){var r=t[1][0]-t[0][0],o=t[1][1]-t[0][1],s=Math.min(r/(n[1][0]-n[0][0]),o/(n[1][1]-n[0][1])),a=+t[0][0]+(r-s*(n[1][0]+n[0][0]))/2,i=+t[0][1]+(o-s*(n[1][1]+n[0][1]))/2;e.scale(150*s).translate([a,i])}),n)}function i(e,t,n){return a(e,[[0,0],t],n)}function d(e,t,n){return s(e,(function(n){var r=+t,o=r/(n[1][0]-n[0][0]),s=(r-o*(n[1][0]+n[0][0]))/2,a=-o*n[0][1];e.scale(150*o).translate([s,a])}),n)}function l(e,t,n){return s(e,(function(n){var r=+t,o=r/(n[1][1]-n[0][1]),s=-o*n[0][0],a=(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([s,a])}),n)}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/gnomonic.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{gnomonicRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthal.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js");function a(e,t){var n=(0,r.cos)(t),o=(0,r.cos)(e)*n;return[n*(0,r.sin)(e)/o,(0,r.sin)(t)/o]}function i(){return(0,s.default)(a).scale(144.049).clipAngle(60)}a.invert=(0,o.azimuthalInvert)(r.atan)},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/identity.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rectangle.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/identity.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/transform.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/fit.js"),i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function d(){var e,t,n,d,l,u,c,f=1,h=0,m=0,p=1,g=1,_=0,y=null,v=1,b=1,j=(0,s.transformer)({point:function(e,t){var n=k([e,t]);this.stream.point(n[0],n[1])}}),x=o.default;function w(){return v=f*p,b=f*g,u=c=null,k}function k(n){var r=n[0]*v,o=n[1]*b;if(_){var s=o*e-r*t;r=r*e+o*t,o=s}return[r+h,o+m]}return k.invert=function(n){var r=n[0]-h,o=n[1]-m;if(_){var s=o*e+r*t;r=r*e-o*t,o=s}return[r/v,o/b]},k.stream=function(e){return u&&c===e?u:u=j(x(c=e))},k.postclip=function(e){return arguments.length?(x=e,y=n=d=l=null,w()):x},k.clipExtent=function(e){return arguments.length?(x=null==e?(y=n=d=l=null,o.default):(0,r.default)(y=+e[0][0],n=+e[0][1],d=+e[1][0],l=+e[1][1]),w()):null==y?null:[[y,n],[d,l]]},k.scale=function(e){return arguments.length?(f=+e,w()):f},k.translate=function(e){return arguments.length?(h=+e[0],m=+e[1],w()):[h,m]},k.angle=function(n){return arguments.length?(_=n%360*i.radians,t=(0,i.sin)(_),e=(0,i.cos)(_),w()):_*i.degrees},k.reflectX=function(e){return arguments.length?(p=e?-1:1,w()):p<0},k.reflectY=function(e){return arguments.length?(g=e?-1:1,w()):g<0},k.fitExtent=function(e,t){return(0,a.fitExtent)(k,e,t)},k.fitSize=function(e,t){return(0,a.fitSize)(k,e,t)},k.fitWidth=function(e,t){return(0,a.fitWidth)(k,e,t)},k.fitHeight=function(e,t){return(0,a.fitHeight)(k,e,t)},k}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>g,projectionMutator:()=>_});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/antimeridian.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/circle.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rectangle.js"),a=n("./node_modules/dagre-d3/node_modules/d3-geo/src/compose.js"),i=n("./node_modules/dagre-d3/node_modules/d3-geo/src/identity.js"),d=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),l=n("./node_modules/dagre-d3/node_modules/d3-geo/src/rotation.js"),u=n("./node_modules/dagre-d3/node_modules/d3-geo/src/transform.js"),c=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/fit.js"),f=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/resample.js"),h=(0,u.transformer)({point:function(e,t){this.stream.point(e*d.radians,t*d.radians)}});function m(e,t,n,r,o){function s(s,a){return[t+e*(s*=r),n-e*(a*=o)]}return s.invert=function(s,a){return[(s-t)/e*r,(n-a)/e*o]},s}function p(e,t,n,r,o,s){var a=(0,d.cos)(s),i=(0,d.sin)(s),l=a*e,u=i*e,c=a/e,f=i/e,h=(i*n-a*t)/e,m=(i*t+a*n)/e;function p(e,s){return[l*(e*=r)-u*(s*=o)+t,n-u*e-l*s]}return p.invert=function(e,t){return[r*(c*e-f*t+h),o*(m-f*e-c*t)]},p}function g(e){return _((function(){return e}))()}function _(e){var t,n,g,_,y,v,b,j,x,w,k=150,C=480,T=250,E=0,S=0,M=0,A=0,N=0,D=0,O=1,B=1,R=null,I=r.default,P=null,L=i.default,F=.5;function z(e){return j(e[0]*d.radians,e[1]*d.radians)}function q(e){return(e=j.invert(e[0],e[1]))&&[e[0]*d.degrees,e[1]*d.degrees]}function Y(){var e=p(k,0,0,O,B,D).apply(null,t(E,S)),r=(D?p:m)(k,C-e[0],T-e[1],O,B,D);return n=(0,l.rotateRadians)(M,A,N),b=(0,a.default)(t,r),j=(0,a.default)(n,b),v=(0,f.default)(b,F),U()}function U(){return x=w=null,z}return z.stream=function(e){return x&&w===e?x:x=h(function(e){return(0,u.transformer)({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(I(v(L(w=e)))))},z.preclip=function(e){return arguments.length?(I=e,R=void 0,U()):I},z.postclip=function(e){return arguments.length?(L=e,P=g=_=y=null,U()):L},z.clipAngle=function(e){return arguments.length?(I=+e?(0,o.default)(R=e*d.radians):(R=null,r.default),U()):R*d.degrees},z.clipExtent=function(e){return arguments.length?(L=null==e?(P=g=_=y=null,i.default):(0,s.default)(P=+e[0][0],g=+e[0][1],_=+e[1][0],y=+e[1][1]),U()):null==P?null:[[P,g],[_,y]]},z.scale=function(e){return arguments.length?(k=+e,Y()):k},z.translate=function(e){return arguments.length?(C=+e[0],T=+e[1],Y()):[C,T]},z.center=function(e){return arguments.length?(E=e[0]%360*d.radians,S=e[1]%360*d.radians,Y()):[E*d.degrees,S*d.degrees]},z.rotate=function(e){return arguments.length?(M=e[0]%360*d.radians,A=e[1]%360*d.radians,N=e.length>2?e[2]%360*d.radians:0,Y()):[M*d.degrees,A*d.degrees,N*d.degrees]},z.angle=function(e){return arguments.length?(D=e%360*d.radians,Y()):D*d.degrees},z.reflectX=function(e){return arguments.length?(O=e?-1:1,Y()):O<0},z.reflectY=function(e){return arguments.length?(B=e?-1:1,Y()):B<0},z.precision=function(e){return arguments.length?(v=(0,f.default)(b,F=e*e),U()):(0,d.sqrt)(F)},z.fitExtent=function(e,t){return(0,c.fitExtent)(z,e,t)},z.fitSize=function(e,t){return(0,c.fitSize)(z,e,t)},z.fitWidth=function(e,t){return(0,c.fitWidth)(z,e,t)},z.fitHeight=function(e,t){return(0,c.fitHeight)(z,e,t)},function(){return t=e.apply(this,arguments),z.invert=t.invert&&q,Y()}}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/mercator.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{mercatorRaw:()=>a,default:()=>i,mercatorProjection:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/rotation.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js");function a(e,t){return[e,(0,r.log)((0,r.tan)((r.halfPi+t)/2))]}function i(){return d(a).scale(961/r.tau)}function d(e){var t,n,i,d=(0,s.default)(e),l=d.center,u=d.scale,c=d.translate,f=d.clipExtent,h=null;function m(){var s=r.pi*u(),l=d((0,o.default)(d.rotate()).invert([0,0]));return f(null==h?[[l[0]-s,l[1]-s],[l[0]+s,l[1]+s]]:e===a?[[Math.max(l[0]-s,h),t],[Math.min(l[0]+s,n),i]]:[[h,Math.max(l[1]-s,t)],[n,Math.min(l[1]+s,i)]])}return d.scale=function(e){return arguments.length?(u(e),m()):u()},d.translate=function(e){return arguments.length?(c(e),m()):c()},d.center=function(e){return arguments.length?(l(e),m()):l()},d.clipExtent=function(e){return arguments.length?(null==e?h=t=n=i=null:(h=+e[0][0],t=+e[0][1],n=+e[1][0],i=+e[1][1]),m()):null==h?null:[[h,t],[n,i]]},m()}a.invert=function(e,t){return[e,2*(0,r.atan)((0,r.exp)(t))-r.halfPi]}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/naturalEarth1.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{naturalEarth1Raw:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function s(e,t){var n=t*t,r=n*n;return[e*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function a(){return(0,r.default)(s).scale(175.295)}s.invert=function(e,t){var n,r=t,s=25;do{var a=r*r,i=a*a;r-=n=(r*(1.007226+a*(.015085+i*(.028874*a-.044475-.005916*i)))-t)/(1.007226+a*(.045255+i*(.259866*a-.311325-.005916*11*i)))}while((0,o.abs)(n)>o.epsilon&&--s>0);return[e/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]}},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/orthographic.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{orthographicRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthal.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js");function a(e,t){return[(0,r.cos)(t)*(0,r.sin)(e),(0,r.sin)(t)]}function i(){return(0,s.default)(a).scale(249.5).clipAngle(90+r.epsilon)}a.invert=(0,o.azimuthalInvert)(r.asin)},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/resample.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/transform.js"),a=(0,o.cos)(30*o.radians);function i(e,t){return+t?function(e,t){function n(r,s,i,d,l,u,c,f,h,m,p,g,_,y){var v=c-r,b=f-s,j=v*v+b*b;if(j>4*t&&_--){var x=d+m,w=l+p,k=u+g,C=(0,o.sqrt)(x*x+w*w+k*k),T=(0,o.asin)(k/=C),E=(0,o.abs)((0,o.abs)(k)-1)t||(0,o.abs)((v*N+b*D)/j-.5)>.3||d*m+l*p+u*g{"use strict";n.r(t),n.d(t,{stereographicRaw:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthal.js"),s=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js");function a(e,t){var n=(0,r.cos)(t),o=1+(0,r.cos)(e)*n;return[n*(0,r.sin)(e)/o,(0,r.sin)(t)/o]}function i(){return(0,s.default)(a).scale(250).clipAngle(142)}a.invert=(0,o.azimuthalInvert)((function(e){return 2*(0,r.atan)(e)}))},"./node_modules/dagre-d3/node_modules/d3-geo/src/projection/transverseMercator.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{transverseMercatorRaw:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/projection/mercator.js");function s(e,t){return[(0,r.log)((0,r.tan)((r.halfPi+t)/2)),-e]}function a(){var e=(0,o.mercatorProjection)(s),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}s.invert=function(e,t){return[-t,2*(0,r.atan)((0,r.exp)(e))-r.halfPi]}},"./node_modules/dagre-d3/node_modules/d3-geo/src/rotation.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{rotateRadians:()=>a,default:()=>u});var r=n("./node_modules/dagre-d3/node_modules/d3-geo/src/compose.js"),o=n("./node_modules/dagre-d3/node_modules/d3-geo/src/math.js");function s(e,t){return[(0,o.abs)(e)>o.pi?e+Math.round(-e/o.tau)*o.tau:e,t]}function a(e,t,n){return(e%=o.tau)?t||n?(0,r.default)(d(e),l(t,n)):d(e):t||n?l(t,n):s}function i(e){return function(t,n){return[(t+=e)>o.pi?t-o.tau:t<-o.pi?t+o.tau:t,n]}}function d(e){var t=i(e);return t.invert=i(-e),t}function l(e,t){var n=(0,o.cos)(e),r=(0,o.sin)(e),s=(0,o.cos)(t),a=(0,o.sin)(t);function i(e,t){var i=(0,o.cos)(t),d=(0,o.cos)(e)*i,l=(0,o.sin)(e)*i,u=(0,o.sin)(t),c=u*n+d*r;return[(0,o.atan2)(l*s-c*a,d*n-u*r),(0,o.asin)(c*s+l*a)]}return i.invert=function(e,t){var i=(0,o.cos)(t),d=(0,o.cos)(e)*i,l=(0,o.sin)(e)*i,u=(0,o.sin)(t),c=u*s-l*a;return[(0,o.atan2)(l*s+u*a,d*n+c*r),(0,o.asin)(c*n-d*r)]},i}function u(e){function t(t){return(t=e(t[0]*o.radians,t[1]*o.radians))[0]*=o.degrees,t[1]*=o.degrees,t}return e=a(e[0]*o.radians,e[1]*o.radians,e.length>2?e[2]*o.radians:0),t.invert=function(t){return(t=e.invert(t[0]*o.radians,t[1]*o.radians))[0]*=o.degrees,t[1]*=o.degrees,t},t}s.invert=s},"./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js":(e,t,n)=>{"use strict";function r(e,t){e&&s.hasOwnProperty(e.type)&&s[e.type](e,t)}n.r(t),n.d(t,{default:()=>d});var o={Feature:function(e,t){r(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,o=-1,s=n.length;++o{"use strict";function r(e){return{stream:o(e)}}function o(e){return function(t){var n=new s;for(var r in e)n[r]=e[r];return n.stream=t,n}}function s(){}n.r(t),n.d(t,{default:()=>r,transformer:()=>o}),s.prototype={constructor:s,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}}},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/accessors.js":(e,t,n)=>{"use strict";function r(e){return null==e?null:o(e)}function o(e){if("function"!=typeof e)throw new Error;return e}n.r(t),n.d(t,{optional:()=>r,required:()=>o})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{slice:()=>r,shuffle:()=>o});var r=Array.prototype.slice;function o(e){for(var t,n,r=e.length;r;)n=Math.random()*r--|0,t=e[r],e[r]=e[n],e[n]=t;return e}},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/cluster.js":(e,t,n)=>{"use strict";function r(e,t){return e.parent===t.parent?1:2}function o(e,t){return e+t.x}function s(e,t){return Math.max(e,t.y)}function a(){var e=r,t=1,n=1,a=!1;function i(r){var i,d=0;r.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(o,0)/e.length}(n),t.y=function(e){return 1+e.reduce(s,0)}(n)):(t.x=i?d+=e(t,i):0,t.y=0,i=t)}));var l=function(e){for(var t;t=e.children;)e=t[0];return e}(r),u=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(r),c=l.x-e(l,u)/2,f=u.x+e(u,l)/2;return r.eachAfter(a?function(e){e.x=(e.x-r.x)*t,e.y=(r.y-e.y)*n}:function(e){e.x=(e.x-c)/(f-c)*t,e.y=(1-(r.y?e.y/r.y:1))*n})}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(a=!1,t=+e[0],n=+e[1],i):a?null:[t,n]},i.nodeSize=function(e){return arguments.length?(a=!0,t=+e[0],n=+e[1],i):a?[t,n]:null},i}n.r(t),n.d(t,{default:()=>a})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/constant.js":(e,t,n)=>{"use strict";function r(){return 0}function o(e){return function(){return e}}n.r(t),n.d(t,{constantZero:()=>r,default:()=>o})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/ancestors.js":(e,t,n)=>{"use strict";function r(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/count.js":(e,t,n)=>{"use strict";function r(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function o(){return this.eachAfter(r)}n.r(t),n.d(t,{default:()=>o})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/descendants.js":(e,t,n)=>{"use strict";function r(){var e=[];return this.each((function(t){e.push(t)})),e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/each.js":(e,t,n)=>{"use strict";function r(e){var t,n,r,o,s=this,a=[s];do{for(t=a.reverse(),a=[];s=t.pop();)if(e(s),n=s.children)for(r=0,o=n.length;rr})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js":(e,t,n)=>{"use strict";function r(e){for(var t,n,r,o=this,s=[o],a=[];o=s.pop();)if(a.push(o),t=o.children)for(n=0,r=t.length;nr})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js":(e,t,n)=>{"use strict";function r(e){for(var t,n,r=this,o=[r];r=o.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)o.push(t[n]);return this}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m,computeHeight:()=>_,Node:()=>y});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/count.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/each.js"),s=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js"),a=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js"),i=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/sum.js"),d=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/sort.js"),l=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/path.js"),u=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/ancestors.js"),c=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/descendants.js"),f=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/leaves.js"),h=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/links.js");function m(e,t){var n,r,o,s,a,i=new y(e),d=+e.value&&(i.value=e.value),l=[i];for(null==t&&(t=p);n=l.pop();)if(d&&(n.value=+n.data.value),(o=t(n.data))&&(a=o.length))for(n.children=new Array(a),s=a-1;s>=0;--s)l.push(r=n.children[s]=new y(o[s])),r.parent=n,r.depth=n.depth+1;return i.eachBefore(_)}function p(e){return e.children}function g(e){e.data=e.data.data}function _(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function y(e){this.data=e,this.depth=this.height=0,this.parent=null}y.prototype=m.prototype={constructor:y,count:r.default,each:o.default,eachAfter:a.default,eachBefore:s.default,sum:i.default,sort:d.default,path:l.default,ancestors:u.default,descendants:c.default,leaves:f.default,links:h.default,copy:function(){return m(this).eachBefore(g)}}},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/leaves.js":(e,t,n)=>{"use strict";function r(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/links.js":(e,t,n)=>{"use strict";function r(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/path.js":(e,t,n)=>{"use strict";function r(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;for(e=n.pop(),t=r.pop();e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/sort.js":(e,t,n)=>{"use strict";function r(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/sum.js":(e,t,n)=>{"use strict";function r(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{cluster:()=>r.default,hierarchy:()=>o.default,pack:()=>s.default,packSiblings:()=>a.default,packEnclose:()=>i.default,partition:()=>d.default,stratify:()=>l.default,tree:()=>u.default,treemap:()=>c.default,treemapBinary:()=>f.default,treemapDice:()=>h.default,treemapSlice:()=>m.default,treemapSliceDice:()=>p.default,treemapSquarify:()=>g.default,treemapResquarify:()=>_.default});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/cluster.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/index.js"),s=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/index.js"),a=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/siblings.js"),i=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/enclose.js"),d=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/partition.js"),l=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/stratify.js"),u=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/tree.js"),c=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/index.js"),f=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/binary.js"),h=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js"),m=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/slice.js"),p=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/sliceDice.js"),g=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/squarify.js"),_=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/resquarify.js")},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/enclose.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/array.js");function o(e){for(var t,n,o=0,a=(e=(0,r.shuffle)(r.slice.call(e))).length,d=[];o0&&n*n>r*r+o*o}function d(e,t){for(var n=0;n{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/siblings.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/accessors.js"),s=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/constant.js");function a(e){return Math.sqrt(e.value)}function i(){var e=null,t=1,n=1,r=s.constantZero;function i(o){return o.x=t/2,o.y=n/2,e?o.eachBefore(d(e)).eachAfter(l(r,.5)).eachBefore(u(1)):o.eachBefore(d(a)).eachAfter(l(s.constantZero,1)).eachAfter(l(r,o.r/Math.min(t,n))).eachBefore(u(Math.min(t,n)/(2*o.r))),o}return i.radius=function(t){return arguments.length?(e=(0,o.optional)(t),i):e},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(e){return arguments.length?(r="function"==typeof e?e:(0,s.default)(+e),i):r},i}function d(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function l(e,t){return function(n){if(o=n.children){var o,s,a,i=o.length,d=e(n)*t||0;if(d)for(s=0;s{"use strict";n.r(t),n.d(t,{packEnclose:()=>d,default:()=>l});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/enclose.js");function o(e,t,n){var r,o,s,a,i=e.x-t.x,d=e.y-t.y,l=i*i+d*d;l?(o=t.r+n.r,o*=o,a=e.r+n.r,o>(a*=a)?(r=(l+a-o)/(2*l),s=Math.sqrt(Math.max(0,a/l-r*r)),n.x=e.x-r*i-s*d,n.y=e.y-r*d+s*i):(r=(l+o-a)/(2*l),s=Math.sqrt(Math.max(0,o/l-r*r)),n.x=t.x+r*i-s*d,n.y=t.y+r*d+s*i)):(n.x=t.x+n.r,n.y=t.y)}function s(e,t){var n=e.r+t.r-1e-6,r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function a(e){var t=e._,n=e.next._,r=t.r+n.r,o=(t.x*n.r+n.x*t.r)/r,s=(t.y*n.r+n.y*t.r)/r;return o*o+s*s}function i(e){this._=e,this.next=null,this.previous=null}function d(e){if(!(l=e.length))return 0;var t,n,d,l,u,c,f,h,m,p,g;if((t=e[0]).x=0,t.y=0,!(l>1))return t.r;if(n=e[1],t.x=-n.r,n.x=t.r,n.y=0,!(l>2))return t.r+n.r;o(n,t,d=e[2]),t=new i(t),n=new i(n),d=new i(d),t.next=d.previous=n,n.next=t.previous=d,d.next=n.previous=t;e:for(f=3;f{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/round.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js");function s(){var e=1,t=1,n=0,s=!1;function a(a){var i=a.height+1;return a.x0=a.y0=n,a.x1=e,a.y1=t/i,a.eachBefore(function(e,t){return function(r){r.children&&(0,o.default)(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var s=r.x0,a=r.y0,i=r.x1-n,d=r.y1-n;i{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/accessors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/index.js"),s={depth:-1},a={};function i(e){return e.id}function d(e){return e.parentId}function l(){var e=i,t=d;function n(n){var r,i,d,l,u,c,f,h=n.length,m=new Array(h),p={};for(i=0;i0)throw new Error("cycle");return d}return n.id=function(t){return arguments.length?(e=(0,r.required)(t),n):e},n.parentId=function(e){return arguments.length?(t=(0,r.required)(e),n):t},n}},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/tree.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/index.js");function o(e,t){return e.parent===t.parent?1:2}function s(e){var t=e.children;return t?t[0]:e.t}function a(e){var t=e.children;return t?t[t.length-1]:e.t}function i(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function d(e,t,n){return e.a.parent===t.parent?e.a:n}function l(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function u(){var e=o,t=1,n=1,r=null;function u(o){var s=function(e){for(var t,n,r,o,s,a=new l(e,0),i=[a];t=i.pop();)if(r=t._.children)for(t.children=new Array(s=r.length),o=s-1;o>=0;--o)i.push(n=t.children[o]=new l(r[o],o)),n.parent=t;return(a.parent=new l(null,0)).children=[a],a}(o);if(s.eachAfter(c),s.parent.m=-s.z,s.eachBefore(f),r)o.eachBefore(h);else{var a=o,i=o,d=o;o.eachBefore((function(e){e.xi.x&&(i=e),e.depth>d.depth&&(d=e)}));var u=a===i?1:e(a,i)/2,m=u-a.x,p=t/(i.x+u+m),g=n/(d.depth||1);o.eachBefore((function(e){e.x=(e.x+m)*p,e.y=e.depth*g}))}return o}function c(t){var n=t.children,r=t.parent.children,o=t.i?r[t.i-1]:null;if(n){!function(e){for(var t,n=0,r=0,o=e.children,s=o.length;--s>=0;)(t=o[s]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(t);var l=(n[0].z+n[n.length-1].z)/2;o?(t.z=o.z+e(t._,o._),t.m=t.z-l):t.z=l}else o&&(t.z=o.z+e(t._,o._));t.parent.A=function(t,n,r){if(n){for(var o,l=t,u=t,c=n,f=l.parent.children[0],h=l.m,m=u.m,p=c.m,g=f.m;c=a(c),l=s(l),c&&l;)f=s(f),(u=a(u)).a=t,(o=c.z+p-l.z-h+e(c._,l._))>0&&(i(d(c,t,r),t,o),h+=o,m+=o),p+=c.m,h+=l.m,g+=f.m,m+=u.m;c&&!a(u)&&(u.t=c,u.m+=p-m),l&&!s(f)&&(f.t=l,f.m+=h-g,r=t)}return r}(t,o,t.parent.A||r[0])}function f(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function h(e){e.x*=t,e.y=e.depth*n}return u.separation=function(t){return arguments.length?(e=t,u):e},u.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],u):r?null:[t,n]},u.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],u):r?[t,n]:null},u}l.prototype=Object.create(r.Node.prototype)},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/binary.js":(e,t,n)=>{"use strict";function r(e,t,n,r,o){var s,a,i=e.children,d=i.length,l=new Array(d+1);for(l[0]=a=s=0;s=n-1){var u=i[t];return u.x0=o,u.y0=s,u.x1=a,void(u.y1=d)}for(var c=l[t],f=r/2+c,h=t+1,m=n-1;h>>1;l[p]d-s){var y=(o*_+a*g)/r;e(t,h,g,o,s,y,d),e(h,n,_,y,s,a,d)}else{var v=(s*_+d*g)/r;e(t,h,g,o,s,a,v),e(h,n,_,o,v,a,d)}}(0,d,e.value,t,n,r,o)}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js":(e,t,n)=>{"use strict";function r(e,t,n,r,o){for(var s,a=e.children,i=-1,d=a.length,l=e.value&&(r-t)/e.value;++ir})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/round.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/squarify.js"),s=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/accessors.js"),a=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/constant.js");function i(){var e=o.default,t=!1,n=1,i=1,d=[0],l=a.constantZero,u=a.constantZero,c=a.constantZero,f=a.constantZero,h=a.constantZero;function m(e){return e.x0=e.y0=0,e.x1=n,e.y1=i,e.eachBefore(p),d=[0],t&&e.eachBefore(r.default),e}function p(t){var n=d[t.depth],r=t.x0+n,o=t.y0+n,s=t.x1-n,a=t.y1-n;s{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/slice.js"),s=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/squarify.js");const a=function e(t){function n(e,n,a,i,d){if((l=e._squarify)&&l.ratio===t)for(var l,u,c,f,h,m=-1,p=l.length,g=e.value;++m1?t:1)},n}(s.phi)},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/round.js":(e,t,n)=>{"use strict";function r(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/slice.js":(e,t,n)=>{"use strict";function r(e,t,n,r,o){for(var s,a=e.children,i=-1,d=a.length,l=e.value&&(o-n)/e.value;++ir})},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/sliceDice.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/slice.js");function s(e,t,n,s,a){(1&e.depth?o.default:r.default)(e,t,n,s,a)}},"./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/squarify.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{phi:()=>s,squarifyRatio:()=>a,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js"),o=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/slice.js"),s=(1+Math.sqrt(5))/2;function a(e,t,n,s,a,i){for(var d,l,u,c,f,h,m,p,g,_,y,v=[],b=t.children,j=0,x=0,w=b.length,k=t.value;jm&&(m=l),y=f*f*_,(p=Math.max(m/y,y/h))>g){f-=l;break}g=p}v.push(d={value:f,dice:u1?t:1)},n}(s)},"./node_modules/dagre-d3/node_modules/d3-polygon/src/area.js":(e,t,n)=>{"use strict";function r(e){for(var t,n=-1,r=e.length,o=e[r-1],s=0;++nr})},"./node_modules/dagre-d3/node_modules/d3-polygon/src/centroid.js":(e,t,n)=>{"use strict";function r(e){for(var t,n,r=-1,o=e.length,s=0,a=0,i=e[o-1],d=0;++rr})},"./node_modules/dagre-d3/node_modules/d3-polygon/src/contains.js":(e,t,n)=>{"use strict";function r(e,t){for(var n,r,o=e.length,s=e[o-1],a=t[0],i=t[1],d=s[0],l=s[1],u=!1,c=0;ci!=l>i&&a<(d-n)*(i-r)/(l-r)+n&&(u=!u),d=n,l=r;return u}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-polygon/src/cross.js":(e,t,n)=>{"use strict";function r(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-polygon/src/hull.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/cross.js");function o(e,t){return e[0]-t[0]||e[1]-t[1]}function s(e){for(var t=e.length,n=[0,1],o=2,s=2;s1&&(0,r.default)(e[n[o-2]],e[n[o-1]],e[s])<=0;)--o;n[o++]=s}return n.slice(0,o)}function a(e){if((n=e.length)<3)return null;var t,n,r=new Array(n),a=new Array(n);for(t=0;t=0;--t)c.push(e[r[i[t]][2]]);for(t=+l;t{"use strict";n.r(t),n.d(t,{polygonArea:()=>r.default,polygonCentroid:()=>o.default,polygonHull:()=>s.default,polygonContains:()=>a.default,polygonLength:()=>i.default});var r=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/area.js"),o=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/centroid.js"),s=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/hull.js"),a=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/contains.js"),i=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/length.js")},"./node_modules/dagre-d3/node_modules/d3-polygon/src/length.js":(e,t,n)=>{"use strict";function r(e){for(var t,n,r=-1,o=e.length,s=e[o-1],a=s[0],i=s[1],d=0;++rr})},"./node_modules/dagre-d3/node_modules/d3-random/src/bates.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js"),o=n("./node_modules/dagre-d3/node_modules/d3-random/src/irwinHall.js");const s=function e(t){function n(e){var n=o.default.source(t)(e);return function(){return n()/e}}return n.source=e,n}(r.default)},"./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js":(e,t,n)=>{"use strict";function r(){return Math.random()}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-random/src/exponential.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function e(t){function n(e){return function(){return-Math.log(1-t())/e}}return n.source=e,n}(n("./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js").default)},"./node_modules/dagre-d3/node_modules/d3-random/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{randomUniform:()=>r.default,randomNormal:()=>o.default,randomLogNormal:()=>s.default,randomBates:()=>a.default,randomIrwinHall:()=>i.default,randomExponential:()=>d.default});var r=n("./node_modules/dagre-d3/node_modules/d3-random/src/uniform.js"),o=n("./node_modules/dagre-d3/node_modules/d3-random/src/normal.js"),s=n("./node_modules/dagre-d3/node_modules/d3-random/src/logNormal.js"),a=n("./node_modules/dagre-d3/node_modules/d3-random/src/bates.js"),i=n("./node_modules/dagre-d3/node_modules/d3-random/src/irwinHall.js"),d=n("./node_modules/dagre-d3/node_modules/d3-random/src/exponential.js")},"./node_modules/dagre-d3/node_modules/d3-random/src/irwinHall.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function e(t){function n(e){return function(){for(var n=0,r=0;r{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js"),o=n("./node_modules/dagre-d3/node_modules/d3-random/src/normal.js");const s=function e(t){function n(){var e=o.default.source(t).apply(this,arguments);return function(){return Math.exp(e())}}return n.source=e,n}(r.default)},"./node_modules/dagre-d3/node_modules/d3-random/src/normal.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function e(t){function n(e,n){var r,o;return e=null==e?0:+e,n=null==n?1:+n,function(){var s;if(null!=r)s=r,r=null;else do{r=2*t()-1,s=2*t()-1,o=r*r+s*s}while(!o||o>1);return e+n*s*Math.sqrt(-2*Math.log(o)/o)}}return n.source=e,n}(n("./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js").default)},"./node_modules/dagre-d3/node_modules/d3-random/src/uniform.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,1===arguments.length?(n=e,e=0):n-=e,function(){return t()*n+e}}return n.source=e,n}(n("./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js").default)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Accent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Dark2.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Paired.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set1.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set2.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set3.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/category10.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js").default)("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js":(e,t,n)=>{"use strict";function r(e){for(var t=e.length/6|0,n=new Array(t),r=0;rr})},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/BrBG.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PRGn.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PiYG.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PuOr.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdBu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdGy.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/Spectral.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{schemeCategory10:()=>r.default,schemeAccent:()=>o.default,schemeDark2:()=>s.default,schemePaired:()=>a.default,schemePastel1:()=>i.default,schemePastel2:()=>d.default,schemeSet1:()=>l.default,schemeSet2:()=>u.default,schemeSet3:()=>c.default,schemeTableau10:()=>f.default,interpolateBrBG:()=>h.default,schemeBrBG:()=>h.scheme,interpolatePRGn:()=>m.default,schemePRGn:()=>m.scheme,interpolatePiYG:()=>p.default,schemePiYG:()=>p.scheme,interpolatePuOr:()=>g.default,schemePuOr:()=>g.scheme,interpolateRdBu:()=>_.default,schemeRdBu:()=>_.scheme,interpolateRdGy:()=>y.default,schemeRdGy:()=>y.scheme,interpolateRdYlBu:()=>v.default,schemeRdYlBu:()=>v.scheme,interpolateRdYlGn:()=>b.default,schemeRdYlGn:()=>b.scheme,interpolateSpectral:()=>j.default,schemeSpectral:()=>j.scheme,interpolateBuGn:()=>x.default,schemeBuGn:()=>x.scheme,interpolateBuPu:()=>w.default,schemeBuPu:()=>w.scheme,interpolateGnBu:()=>k.default,schemeGnBu:()=>k.scheme,interpolateOrRd:()=>C.default,schemeOrRd:()=>C.scheme,interpolatePuBuGn:()=>T.default,schemePuBuGn:()=>T.scheme,interpolatePuBu:()=>E.default,schemePuBu:()=>E.scheme,interpolatePuRd:()=>S.default,schemePuRd:()=>S.scheme,interpolateRdPu:()=>M.default,schemeRdPu:()=>M.scheme,interpolateYlGnBu:()=>A.default,schemeYlGnBu:()=>A.scheme,interpolateYlGn:()=>N.default,schemeYlGn:()=>N.scheme,interpolateYlOrBr:()=>D.default,schemeYlOrBr:()=>D.scheme,interpolateYlOrRd:()=>O.default,schemeYlOrRd:()=>O.scheme,interpolateBlues:()=>B.default,schemeBlues:()=>B.scheme,interpolateGreens:()=>R.default,schemeGreens:()=>R.scheme,interpolateGreys:()=>I.default,schemeGreys:()=>I.scheme,interpolatePurples:()=>P.default,schemePurples:()=>P.scheme,interpolateReds:()=>L.default,schemeReds:()=>L.scheme,interpolateOranges:()=>F.default,schemeOranges:()=>F.scheme,interpolateCividis:()=>z.default,interpolateCubehelixDefault:()=>q.default,interpolateRainbow:()=>Y.default,interpolateWarm:()=>Y.warm,interpolateCool:()=>Y.cool,interpolateSinebow:()=>U.default,interpolateTurbo:()=>H.default,interpolateViridis:()=>G.default,interpolateMagma:()=>G.magma,interpolateInferno:()=>G.inferno,interpolatePlasma:()=>G.plasma});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/category10.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Accent.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Dark2.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Paired.js"),i=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js"),d=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js"),l=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set1.js"),u=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set2.js"),c=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set3.js"),f=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js"),h=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/BrBG.js"),m=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PRGn.js"),p=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PiYG.js"),g=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PuOr.js"),_=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdBu.js"),y=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdGy.js"),v=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js"),b=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js"),j=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/Spectral.js"),x=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js"),w=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js"),k=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js"),C=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js"),T=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js"),E=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js"),S=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js"),M=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js"),A=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js"),N=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js"),D=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js"),O=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js"),B=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js"),R=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js"),I=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js"),P=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js"),L=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js"),F=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js"),z=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js"),q=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js"),Y=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js"),U=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js"),H=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js"),G=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js")},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-interpolate/src/rgb.js");function o(e){return(0,r.rgbBasis)(e[e.length-1])}},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js":(e,t,n)=>{"use strict";function r(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-2710.57*e)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-67.37*e)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-2475.67*e)))))))+")"}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/d3-color/src/cubehelix.js");const o=(0,n("./node_modules/d3-interpolate/src/cubehelix.js").cubehelixLong)((0,r.default)(300,.5,0),(0,r.default)(-240,.5,1))},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{warm:()=>s,cool:()=>a,default:()=>d});var r=n("./node_modules/d3-color/src/cubehelix.js"),o=n("./node_modules/d3-interpolate/src/cubehelix.js"),s=(0,o.cubehelixLong)((0,r.default)(-100,.75,.35),(0,r.default)(80,1.5,.8)),a=(0,o.cubehelixLong)((0,r.default)(260,.75,.35),(0,r.default)(80,1.5,.8)),i=(0,r.default)();function d(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return i.h=360*e-100,i.s=1.5-1.5*t,i.l=.8-.9*t,i+""}},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=(0,n("./node_modules/d3-color/src/color.js").rgb)(),o=Math.PI/3,s=2*Math.PI/3;function a(e){var t;return e=(.5-e)*Math.PI,r.r=255*(t=Math.sin(e))*t,r.g=255*(t=Math.sin(e+o))*t,r.b=255*(t=Math.sin(e+s))*t,r+""}},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js":(e,t,n)=>{"use strict";function r(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-14825.05*e)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+707.56*e)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-6838.66*e)))))))+")"}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,magma:()=>a,inferno:()=>i,plasma:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js");function o(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const s=o((0,r.default)("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var a=o((0,r.default)("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),i=o((0,r.default)("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),d=o((0,r.default)("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"))},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scheme:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js"),s=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(r.default);const a=(0,o.default)(s)},"./node_modules/dagre-d3/node_modules/d3-scale/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{map:()=>o,slice:()=>s});var r=Array.prototype,o=r.map,s=r.slice},"./node_modules/dagre-d3/node_modules/d3-scale/src/band.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,point:()=>d});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/ordinal.js");function a(){var e,t,n=(0,s.default)().unknown(void 0),i=n.domain,d=n.range,l=[0,1],u=!1,c=0,f=0,h=.5;function m(){var n=i().length,o=l[1]{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{identity:()=>c,copy:()=>g,transformer:()=>_,default:()=>y});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/d3-interpolate/src/value.js"),s=n("./node_modules/d3-interpolate/src/number.js"),a=n("./node_modules/d3-interpolate/src/round.js"),i=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),d=n("./node_modules/dagre-d3/node_modules/d3-scale/src/constant.js"),l=n("./node_modules/dagre-d3/node_modules/d3-scale/src/number.js"),u=[0,1];function c(e){return e}function f(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(0,d.default)(isNaN(t)?NaN:.5)}function h(e){var t,n=e[0],r=e[e.length-1];return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function m(e,t,n){var r=e[0],o=e[1],s=t[0],a=t[1];return o2?p:m,d=f=null,j}function j(t){return isNaN(t=+t)?n:(d||(d=r(g.map(e),_,y)))(e(v(t)))}return j.invert=function(n){return v(t((f||(f=r(_,g.map(e),s.default)))(n)))},j.domain=function(e){return arguments.length?(g=i.map.call(e,l.default),v===c||(v=h(g)),b()):g.slice()},j.range=function(e){return arguments.length?(_=i.slice.call(e),b()):_.slice()},j.rangeRound=function(e){return _=i.slice.call(e),y=a.default,b()},j.clamp=function(e){return arguments.length?(v=e?h(g):c,j):v!==c},j.interpolate=function(e){return arguments.length?(y=e,b()):y},j.unknown=function(e){return arguments.length?(n=e,j):n},function(n,r){return e=n,t=r,b()}}function y(e,t){return _()(e,t)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/diverging.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c,divergingLog:()=>f,divergingSymlog:()=>h,divergingPow:()=>m,divergingSqrt:()=>p});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale/src/log.js"),i=n("./node_modules/dagre-d3/node_modules/d3-scale/src/sequential.js"),d=n("./node_modules/dagre-d3/node_modules/d3-scale/src/symlog.js"),l=n("./node_modules/dagre-d3/node_modules/d3-scale/src/pow.js");function u(){var e,t,n,o,s,a,i,d=0,l=.5,u=1,c=r.identity,f=!1;function h(e){return isNaN(e=+e)?i:(e=.5+((e=+a(e))-t)*(e{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/number.js");function a(e){var t;function n(e){return isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=r.map.call(t,s.default),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return a(e).unknown(t)},e=arguments.length?r.map.call(e,s.default):[0,1],(0,o.linearish)(n)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{scaleBand:()=>r.default,scalePoint:()=>r.point,scaleIdentity:()=>o.default,scaleLinear:()=>s.default,scaleLog:()=>a.default,scaleSymlog:()=>i.default,scaleOrdinal:()=>d.default,scaleImplicit:()=>d.implicit,scalePow:()=>l.default,scaleSqrt:()=>l.sqrt,scaleQuantile:()=>u.default,scaleQuantize:()=>c.default,scaleThreshold:()=>f.default,scaleTime:()=>h.default,scaleUtc:()=>m.default,scaleSequential:()=>p.default,scaleSequentialLog:()=>p.sequentialLog,scaleSequentialPow:()=>p.sequentialPow,scaleSequentialSqrt:()=>p.sequentialSqrt,scaleSequentialSymlog:()=>p.sequentialSymlog,scaleSequentialQuantile:()=>g.default,scaleDiverging:()=>_.default,scaleDivergingLog:()=>_.divergingLog,scaleDivergingPow:()=>_.divergingPow,scaleDivergingSqrt:()=>_.divergingSqrt,scaleDivergingSymlog:()=>_.divergingSymlog,tickFormat:()=>y.default});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/band.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/identity.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale/src/log.js"),i=n("./node_modules/dagre-d3/node_modules/d3-scale/src/symlog.js"),d=n("./node_modules/dagre-d3/node_modules/d3-scale/src/ordinal.js"),l=n("./node_modules/dagre-d3/node_modules/d3-scale/src/pow.js"),u=n("./node_modules/dagre-d3/node_modules/d3-scale/src/quantile.js"),c=n("./node_modules/dagre-d3/node_modules/d3-scale/src/quantize.js"),f=n("./node_modules/dagre-d3/node_modules/d3-scale/src/threshold.js"),h=n("./node_modules/dagre-d3/node_modules/d3-scale/src/time.js"),m=n("./node_modules/dagre-d3/node_modules/d3-scale/src/utcTime.js"),p=n("./node_modules/dagre-d3/node_modules/d3-scale/src/sequential.js"),g=n("./node_modules/dagre-d3/node_modules/d3-scale/src/sequentialQuantile.js"),_=n("./node_modules/dagre-d3/node_modules/d3-scale/src/diverging.js"),y=n("./node_modules/dagre-d3/node_modules/d3-scale/src/tickFormat.js")},"./node_modules/dagre-d3/node_modules/d3-scale/src/init.js":(e,t,n)=>{"use strict";function r(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function o(e,t){switch(arguments.length){case 0:break;case 1:this.interpolator(e);break;default:this.interpolator(t).domain(e)}return this}n.r(t),n.d(t,{initRange:()=>r,initInterpolator:()=>o})},"./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{linearish:()=>i,default:()=>d});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale/src/tickFormat.js");function i(e){var t=e.domain;return e.ticks=function(e){var n=t();return(0,r.ticks)(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return(0,a.default)(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var o,s=t(),a=0,i=s.length-1,d=s[a],l=s[i];return l0?(d=Math.floor(d/o)*o,l=Math.ceil(l/o)*o,o=(0,r.tickIncrement)(d,l,n)):o<0&&(d=Math.ceil(d*o)/o,l=Math.floor(l*o)/o,o=(0,r.tickIncrement)(d,l,n)),o>0?(s[a]=Math.floor(d/o)*o,s[i]=Math.ceil(l/o)*o,t(s)):o<0&&(s[a]=Math.ceil(d*o)/o,s[i]=Math.floor(l*o)/o,t(s)),e},e}function d(){var e=(0,o.default)(o.identity,o.identity);return e.copy=function(){return(0,o.copy)(e,d())},s.initRange.apply(e,arguments),i(e)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/log.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{loggish:()=>m,default:()=>p});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/d3-format/src/defaultLocale.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/nice.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),i=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function d(e){return Math.log(e)}function l(e){return Math.exp(e)}function u(e){return-Math.log(-e)}function c(e){return-Math.exp(-e)}function f(e){return isFinite(e)?+("1e"+e):e<0?0:e}function h(e){return function(t){return-e(-t)}}function m(e){var t,n,a=e(d,l),i=a.domain,m=10;function p(){return t=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),function(t){return Math.log(t)/e})}(m),n=function(e){return 10===e?f:e===Math.E?Math.exp:function(t){return Math.pow(e,t)}}(m),i()[0]<0?(t=h(t),n=h(n),e(u,c)):e(d,l),a}return a.base=function(e){return arguments.length?(m=+e,p()):m},a.domain=function(e){return arguments.length?(i(e),p()):i()},a.ticks=function(e){var o,s=i(),a=s[0],d=s[s.length-1];(o=d0){for(;fd)break;g.push(c)}}else for(;f=1;--u)if(!((c=l*u)d)break;g.push(c)}}else g=(0,r.ticks)(f,h,Math.min(h-f,p)).map(n);return o?g.reverse():g},a.tickFormat=function(e,r){if(null==r&&(r=10===m?".0e":","),"function"!=typeof r&&(r=(0,o.format)(r)),e===1/0)return r;null==e&&(e=10);var s=Math.max(1,m*e/a.ticks().length);return function(e){var o=e/n(Math.round(t(e)));return o*m{"use strict";function r(e,t){var n,r=0,o=(e=e.slice()).length-1,s=e[r],a=e[o];return ar})},"./node_modules/dagre-d3/node_modules/d3-scale/src/number.js":(e,t,n)=>{"use strict";function r(e){return+e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-scale/src/ordinal.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{implicit:()=>a,default:()=>i});var r=n("./node_modules/d3-collection/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js"),a={name:"implicit"};function i(){var e=(0,r.map)(),t=[],n=[],d=a;function l(r){var o=r+"",s=e.get(o);if(!s){if(d!==a)return d;e.set(o,s=t.push(r))}return n[(s-1)%n.length]}return l.domain=function(n){if(!arguments.length)return t.slice();t=[],e=(0,r.map)();for(var o,s,a=-1,i=n.length;++a{"use strict";n.r(t),n.d(t,{powish:()=>l,default:()=>u,sqrt:()=>c});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function a(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function i(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function d(e){return e<0?-e*e:e*e}function l(e){var t=e(o.identity,o.identity),n=1;function s(){return 1===n?e(o.identity,o.identity):.5===n?e(i,d):e(a(n),a(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,s()):n},(0,r.linearish)(t)}function u(){var e=l((0,o.transformer)());return e.copy=function(){return(0,o.copy)(e,u()).exponent(e.exponent())},s.initRange.apply(e,arguments),e}function c(){return u.apply(null,arguments).exponent(.5)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/quantile.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function a(){var e,t=[],n=[],i=[];function d(){var e=0,o=Math.max(1,n.length);for(i=new Array(o-1);++e0?i[r-1]:t[0],r{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function i(){var e,t=0,n=1,d=1,l=[.5],u=[0,1];function c(t){return t<=t?u[(0,r.bisect)(l,t,0,d)]:e}function f(){var e=-1;for(l=new Array(d);++e=d?[l[d-1],n]:[l[r-1],l[r]]},c.unknown=function(t){return arguments.length?(e=t,c):c},c.thresholds=function(){return l.slice()},c.copy=function(){return i().domain([t,n]).range(u).unknown(e)},a.initRange.apply((0,s.linearish)(c),arguments)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/sequential.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{copy:()=>u,default:()=>c,sequentialLog:()=>f,sequentialSymlog:()=>h,sequentialPow:()=>m,sequentialSqrt:()=>p});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),a=n("./node_modules/dagre-d3/node_modules/d3-scale/src/log.js"),i=n("./node_modules/dagre-d3/node_modules/d3-scale/src/symlog.js"),d=n("./node_modules/dagre-d3/node_modules/d3-scale/src/pow.js");function l(){var e,t,n,o,s,a=0,i=1,d=r.identity,l=!1;function u(t){return isNaN(t=+t)?s:d(0===n?.5:(t=(o(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}return u.domain=function(r){return arguments.length?(e=o(a=+r[0]),t=o(i=+r[1]),n=e===t?0:1/(t-e),u):[a,i]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(d=e,u):d},u.unknown=function(e){return arguments.length?(s=e,u):s},function(r){return o=r,e=r(a),t=r(i),n=e===t?0:1/(t-e),u}}function u(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function c(){var e=(0,s.linearish)(l()(r.identity));return e.copy=function(){return u(e,c())},o.initInterpolator.apply(e,arguments)}function f(){var e=(0,a.loggish)(l()).domain([1,10]);return e.copy=function(){return u(e,f()).base(e.base())},o.initInterpolator.apply(e,arguments)}function h(){var e=(0,i.symlogish)(l());return e.copy=function(){return u(e,h()).constant(e.constant())},o.initInterpolator.apply(e,arguments)}function m(){var e=(0,d.powish)(l());return e.copy=function(){return u(e,m()).exponent(e.exponent())},o.initInterpolator.apply(e,arguments)}function p(){return m.apply(null,arguments).exponent(.5)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/sequentialQuantile.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function a(){var e=[],t=o.identity;function n(n){if(!isNaN(n=+n))return t(((0,r.bisect)(e,n)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var o,s=0,a=t.length;s{"use strict";n.r(t),n.d(t,{symlogish:()=>d,default:()=>l});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function a(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function i(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function d(e){var t=1,n=e(a(t),i(t));return n.constant=function(n){return arguments.length?e(a(t=+n),i(t)):t},(0,r.linearish)(n)}function l(){var e=d((0,o.transformer)());return e.copy=function(){return(0,o.copy)(e,l()).constant(e.constant())},s.initRange.apply(e,arguments)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/threshold.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function a(){var e,t=[.5],n=[0,1],i=1;function d(o){return o<=o?n[(0,r.bisect)(t,o,0,i)]:e}return d.domain=function(e){return arguments.length?(t=o.slice.call(e),i=Math.min(t.length,n.length-1),d):t.slice()},d.range=function(e){return arguments.length?(n=o.slice.call(e),i=Math.min(t.length,n.length-1),d):n.slice()},d.invertExtent=function(e){var r=n.indexOf(e);return[t[r-1],t[r]]},d.unknown=function(t){return arguments.length?(e=t,d):e},d.copy=function(){return a().domain(t).range(n).unknown(e)},s.initRange.apply(d,arguments)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/tickFormat.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/d3-format/src/formatSpecifier.js"),s=n("./node_modules/d3-format/src/precisionPrefix.js"),a=n("./node_modules/d3-format/src/defaultLocale.js"),i=n("./node_modules/d3-format/src/precisionRound.js"),d=n("./node_modules/d3-format/src/precisionFixed.js");function l(e,t,n,l){var u,c=(0,r.tickStep)(e,t,n);switch((l=(0,o.default)(null==l?",f":l)).type){case"s":var f=Math.max(Math.abs(e),Math.abs(t));return null!=l.precision||isNaN(u=(0,s.default)(c,f))||(l.precision=u),(0,a.formatPrefix)(l,f);case"":case"e":case"g":case"p":case"r":null!=l.precision||isNaN(u=(0,i.default)(c,Math.max(Math.abs(e),Math.abs(t))))||(l.precision=u-("e"===l.type));break;case"f":case"%":null!=l.precision||isNaN(u=(0,d.default)(c))||(l.precision=u-2*("%"===l.type))}return(0,a.format)(l)}},"./node_modules/dagre-d3/node_modules/d3-scale/src/time.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{calendar:()=>b,default:()=>j});var r=n("./node_modules/d3-array/src/index.js"),o=n("./node_modules/d3-time/src/year.js"),s=n("./node_modules/d3-time/src/month.js"),a=n("./node_modules/d3-time/src/week.js"),i=n("./node_modules/d3-time/src/day.js"),d=n("./node_modules/d3-time/src/hour.js"),l=n("./node_modules/d3-time/src/minute.js"),u=n("./node_modules/d3-time/src/second.js"),c=n("./node_modules/d3-time/src/millisecond.js"),f=n("./node_modules/d3-time-format/src/defaultLocale.js"),h=n("./node_modules/dagre-d3/node_modules/d3-scale/src/array.js"),m=n("./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js"),p=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js"),g=n("./node_modules/dagre-d3/node_modules/d3-scale/src/nice.js"),_=31536e6;function y(e){return new Date(e)}function v(e){return e instanceof Date?+e:+new Date(+e)}function b(e,t,n,o,s,a,i,d,l){var u=(0,m.default)(m.identity,m.identity),c=u.invert,f=u.domain,p=l(".%L"),j=l(":%S"),x=l("%I:%M"),w=l("%I %p"),k=l("%a %d"),C=l("%b %d"),T=l("%B"),E=l("%Y"),S=[[i,1,1e3],[i,5,5e3],[i,15,15e3],[i,30,3e4],[a,1,6e4],[a,5,3e5],[a,15,9e5],[a,30,18e5],[s,1,36e5],[s,3,108e5],[s,6,216e5],[s,12,432e5],[o,1,864e5],[o,2,1728e5],[n,1,6048e5],[t,1,2592e6],[t,3,7776e6],[e,1,_]];function M(r){return(i(r){"use strict";n.r(t),n.d(t,{default:()=>m});var r=n("./node_modules/dagre-d3/node_modules/d3-scale/src/time.js"),o=n("./node_modules/d3-time-format/src/defaultLocale.js"),s=n("./node_modules/d3-time/src/utcYear.js"),a=n("./node_modules/d3-time/src/utcMonth.js"),i=n("./node_modules/d3-time/src/utcWeek.js"),d=n("./node_modules/d3-time/src/utcDay.js"),l=n("./node_modules/d3-time/src/utcHour.js"),u=n("./node_modules/d3-time/src/utcMinute.js"),c=n("./node_modules/d3-time/src/second.js"),f=n("./node_modules/d3-time/src/millisecond.js"),h=n("./node_modules/dagre-d3/node_modules/d3-scale/src/init.js");function m(){return h.initRange.apply((0,r.calendar)(s.default,a.default,i.utcSunday,d.default,l.default,u.default,c.default,f.default,o.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}},"./node_modules/dagre-d3/node_modules/d3-shape/src/arc.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>h});var r=n("./node_modules/d3-path/src/path.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/math.js");function a(e){return e.innerRadius}function i(e){return e.outerRadius}function d(e){return e.startAngle}function l(e){return e.endAngle}function u(e){return e&&e.padAngle}function c(e,t,n,r,o,a,i,d){var l=n-e,u=r-t,c=i-o,f=d-a,h=f*l-c*u;if(!(h*hN*N+D*D&&(C=E,T=S),{cx:C,cy:T,x01:-c,y01:-f,x11:C*(o/x-1),y11:T*(o/x-1)}}function h(){var e=a,t=i,n=(0,o.default)(0),h=null,m=d,p=l,g=u,_=null;function y(){var o,a,i=+e.apply(this,arguments),d=+t.apply(this,arguments),l=m.apply(this,arguments)-s.halfPi,u=p.apply(this,arguments)-s.halfPi,y=(0,s.abs)(u-l),v=u>l;if(_||(_=o=(0,r.default)()),ds.epsilon)if(y>s.tau-s.epsilon)_.moveTo(d*(0,s.cos)(l),d*(0,s.sin)(l)),_.arc(0,0,d,l,u,!v),i>s.epsilon&&(_.moveTo(i*(0,s.cos)(u),i*(0,s.sin)(u)),_.arc(0,0,i,u,l,v));else{var b,j,x=l,w=u,k=l,C=u,T=y,E=y,S=g.apply(this,arguments)/2,M=S>s.epsilon&&(h?+h.apply(this,arguments):(0,s.sqrt)(i*i+d*d)),A=(0,s.min)((0,s.abs)(d-i)/2,+n.apply(this,arguments)),N=A,D=A;if(M>s.epsilon){var O=(0,s.asin)(M/i*(0,s.sin)(S)),B=(0,s.asin)(M/d*(0,s.sin)(S));(T-=2*O)>s.epsilon?(k+=O*=v?1:-1,C-=O):(T=0,k=C=(l+u)/2),(E-=2*B)>s.epsilon?(x+=B*=v?1:-1,w-=B):(E=0,x=w=(l+u)/2)}var R=d*(0,s.cos)(x),I=d*(0,s.sin)(x),P=i*(0,s.cos)(C),L=i*(0,s.sin)(C);if(A>s.epsilon){var F,z=d*(0,s.cos)(w),q=d*(0,s.sin)(w),Y=i*(0,s.cos)(k),U=i*(0,s.sin)(k);if(ys.epsilon?D>s.epsilon?(b=f(Y,U,R,I,d,D,v),j=f(z,q,P,L,d,D,v),_.moveTo(b.cx+b.x01,b.cy+b.y01),Ds.epsilon&&T>s.epsilon?N>s.epsilon?(b=f(P,L,z,q,i,-N,v),j=f(R,I,Y,U,i,-N,v),_.lineTo(b.cx+b.x01,b.cy+b.y01),N{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/d3-path/src/path.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linear.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/line.js"),i=n("./node_modules/dagre-d3/node_modules/d3-shape/src/point.js");function d(){var e=i.x,t=null,n=(0,o.default)(0),d=i.y,l=(0,o.default)(!0),u=null,c=s.default,f=null;function h(o){var s,a,i,h,m,p=o.length,g=!1,_=new Array(p),y=new Array(p);for(null==u&&(f=c(m=(0,r.default)())),s=0;s<=p;++s){if(!(s=a;--i)f.point(_[i],y[i]);f.lineEnd(),f.areaEnd()}g&&(_[s]=+e(h,s,o),y[s]=+n(h,s,o),f.point(t?+t(h,s,o):_[s],d?+d(h,s,o):y[s]))}if(m)return f=null,m+""||null}function m(){return(0,a.default)().defined(l).curve(c).context(u)}return h.x=function(n){return arguments.length?(e="function"==typeof n?n:(0,o.default)(+n),t=null,h):e},h.x0=function(t){return arguments.length?(e="function"==typeof t?t:(0,o.default)(+t),h):e},h.x1=function(e){return arguments.length?(t=null==e?null:"function"==typeof e?e:(0,o.default)(+e),h):t},h.y=function(e){return arguments.length?(n="function"==typeof e?e:(0,o.default)(+e),d=null,h):n},h.y0=function(e){return arguments.length?(n="function"==typeof e?e:(0,o.default)(+e),h):n},h.y1=function(e){return arguments.length?(d=null==e?null:"function"==typeof e?e:(0,o.default)(+e),h):d},h.lineX0=h.lineY0=function(){return m().x(e).y(n)},h.lineY1=function(){return m().x(e).y(d)},h.lineX1=function(){return m().x(t).y(n)},h.defined=function(e){return arguments.length?(l="function"==typeof e?e:(0,o.default)(!!e),h):l},h.curve=function(e){return arguments.length?(c=e,null!=u&&(f=c(u)),h):c},h.context=function(e){return arguments.length?(null==e?u=f=null:f=c(u=e),h):u},h}},"./node_modules/dagre-d3/node_modules/d3-shape/src/areaRadial.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/radial.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/area.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/lineRadial.js");function a(){var e=(0,o.default)().curve(r.curveRadialLinear),t=e.curve,n=e.lineX0,a=e.lineX1,i=e.lineY0,d=e.lineY1;return e.angle=e.x,delete e.x,e.startAngle=e.x0,delete e.x0,e.endAngle=e.x1,delete e.x1,e.radius=e.y,delete e.y,e.innerRadius=e.y0,delete e.y0,e.outerRadius=e.y1,delete e.y1,e.lineStartAngle=function(){return(0,s.lineRadial)(n())},delete e.lineX0,e.lineEndAngle=function(){return(0,s.lineRadial)(a())},delete e.lineX1,e.lineInnerRadius=function(){return(0,s.lineRadial)(i())},delete e.lineY0,e.lineOuterRadius=function(){return(0,s.lineRadial)(d())},delete e.lineY1,e.curve=function(e){return arguments.length?t((0,r.default)(e)):t()._curve},e}},"./node_modules/dagre-d3/node_modules/d3-shape/src/array.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{slice:()=>r});var r=Array.prototype.slice},"./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basis.js":(e,t,n)=>{"use strict";function r(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function o(e){this._context=e}function s(e){return new o(e)}n.r(t),n.d(t,{point:()=>r,Basis:()=>o,default:()=>s}),o.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:r(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:r(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basisClosed.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/noop.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basis.js");function s(e){this._context=e}function a(e){return new s(e)}s.prototype={areaStart:r.default,areaEnd:r.default,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:(0,o.point)(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basisOpen.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basis.js");function o(e){this._context=e}function s(e){return new o(e)}o.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,o=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,o):this._context.moveTo(n,o);break;case 3:this._point=4;default:(0,r.point)(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/bundle.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basis.js");function o(e,t){this._basis=new r.Basis(e),this._beta=t}o.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,o=e[0],s=t[0],a=e[n]-o,i=t[n]-s,d=-1;++d<=n;)r=d/n,this._basis.point(this._beta*e[d]+(1-this._beta)*(o+r*a),this._beta*t[d]+(1-this._beta)*(s+r*i));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const s=function e(t){function n(e){return 1===t?new r.Basis(e):new o(e,t)}return n.beta=function(t){return e(+t)},n}(.85)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinal.js":(e,t,n)=>{"use strict";function r(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function o(e,t){this._context=e,this._k=(1-t)/6}n.r(t),n.d(t,{point:()=>r,Cardinal:()=>o,default:()=>s}),o.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:r(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:r(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const s=function e(t){function n(e){return new o(e,t)}return n.tension=function(t){return e(+t)},n}(0)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalClosed.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{CardinalClosed:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/noop.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinal.js");function s(e,t){this._context=e,this._k=(1-t)/6}s.prototype={areaStart:r.default,areaEnd:r.default,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:(0,o.point)(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const a=function e(t){function n(e){return new s(e,t)}return n.tension=function(t){return e(+t)},n}(0)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalOpen.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{CardinalOpen:()=>o,default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinal.js");function o(e,t){this._context=e,this._k=(1-t)/6}o.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:(0,r.point)(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const s=function e(t){function n(e){return new o(e,t)}return n.tension=function(t){return e(+t)},n}(0)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRom.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{point:()=>s,default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/math.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinal.js");function s(e,t,n){var o=e._x1,s=e._y1,a=e._x2,i=e._y2;if(e._l01_a>r.epsilon){var d=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);o=(o*d-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,s=(s*d-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>r.epsilon){var u=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*u+e._x1*e._l23_2a-t*e._l12_2a)/c,i=(i*u+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(o,s,a,i,e._x2,e._y2)}function a(e,t){this._context=e,this._alpha=t}a.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:s(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const i=function e(t){function n(e){return t?new a(e,t):new o.Cardinal(e,0)}return n.alpha=function(t){return e(+t)},n}(.5)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRomClosed.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalClosed.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/noop.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRom.js");function a(e,t){this._context=e,this._alpha=t}a.prototype={areaStart:o.default,areaEnd:o.default,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:(0,s.point)(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const i=function e(t){function n(e){return t?new a(e,t):new r.CardinalClosed(e,0)}return n.alpha=function(t){return e(+t)},n}(.5)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRomOpen.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalOpen.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRom.js");function s(e,t){this._context=e,this._alpha=t}s.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:(0,o.point)(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const a=function e(t){function n(e){return t?new s(e,t):new r.CardinalOpen(e,0)}return n.alpha=function(t){return e(+t)},n}(.5)},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linear.js":(e,t,n)=>{"use strict";function r(e){this._context=e}function o(e){return new r(e)}n.r(t),n.d(t,{default:()=>o}),r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linearClosed.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/noop.js");function o(e){this._context=e}function s(e){return new o(e)}o.prototype={areaStart:r.default,areaEnd:r.default,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/monotone.js":(e,t,n)=>{"use strict";function r(e){return e<0?-1:1}function o(e,t,n){var o=e._x1-e._x0,s=t-e._x1,a=(e._y1-e._y0)/(o||s<0&&-0),i=(n-e._y1)/(s||o<0&&-0),d=(a*s+i*o)/(o+s);return(r(a)+r(i))*Math.min(Math.abs(a),Math.abs(i),.5*Math.abs(d))||0}function s(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function a(e,t,n){var r=e._x0,o=e._y0,s=e._x1,a=e._y1,i=(s-r)/3;e._context.bezierCurveTo(r+i,o+i*t,s-i,a-i*n,s,a)}function i(e){this._context=e}function d(e){this._context=new l(e)}function l(e){this._context=e}function u(e){return new i(e)}function c(e){return new d(e)}n.r(t),n.d(t,{monotoneX:()=>u,monotoneY:()=>c}),i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:a(this,this._t0,s(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,a(this,s(this,n=o(this,e,t)),n);break;default:a(this,this._t0,n=o(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(d.prototype=Object.create(i.prototype)).point=function(e,t){i.prototype.point.call(this,t,e)},l.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,o,s){this._context.bezierCurveTo(t,e,r,n,s,o)}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/natural.js":(e,t,n)=>{"use strict";function r(e){this._context=e}function o(e){var t,n,r=e.length-1,o=new Array(r),s=new Array(r),a=new Array(r);for(o[0]=0,s[0]=2,a[0]=e[0]+2*e[1],t=1;t=0;--t)o[t]=(a[t]-o[t+1])/s[t];for(s[r-1]=(e[r]+o[r-1])/2,t=0;ts}),r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=o(e),s=o(t),a=0,i=1;i{"use strict";n.r(t),n.d(t,{curveRadialLinear:()=>r,default:()=>s});var r=s(n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linear.js").default);function o(e){this._curve=e}function s(e){function t(t){return new o(e(t))}return t._curve=e,t}o.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),t*-Math.cos(e))}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/curve/step.js":(e,t,n)=>{"use strict";function r(e,t){this._context=e,this._t=t}function o(e){return new r(e,.5)}function s(e){return new r(e,0)}function a(e){return new r(e,1)}n.r(t),n.d(t,{default:()=>o,stepBefore:()=>s,stepAfter:()=>a}),r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/descending.js":(e,t,n)=>{"use strict";function r(e,t){return te?1:t>=e?0:NaN}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/identity.js":(e,t,n)=>{"use strict";function r(e){return e}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{arc:()=>r.default,area:()=>o.default,line:()=>s.default,pie:()=>a.default,areaRadial:()=>i.default,radialArea:()=>i.default,lineRadial:()=>d.default,radialLine:()=>d.default,pointRadial:()=>l.default,linkHorizontal:()=>u.linkHorizontal,linkVertical:()=>u.linkVertical,linkRadial:()=>u.linkRadial,symbol:()=>c.default,symbols:()=>c.symbols,symbolCircle:()=>f.default,symbolCross:()=>h.default,symbolDiamond:()=>m.default,symbolSquare:()=>p.default,symbolStar:()=>g.default,symbolTriangle:()=>_.default,symbolWye:()=>y.default,curveBasisClosed:()=>v.default,curveBasisOpen:()=>b.default,curveBasis:()=>j.default,curveBundle:()=>x.default,curveCardinalClosed:()=>w.default,curveCardinalOpen:()=>k.default,curveCardinal:()=>C.default,curveCatmullRomClosed:()=>T.default,curveCatmullRomOpen:()=>E.default,curveCatmullRom:()=>S.default,curveLinearClosed:()=>M.default,curveLinear:()=>A.default,curveMonotoneX:()=>N.monotoneX,curveMonotoneY:()=>N.monotoneY,curveNatural:()=>D.default,curveStep:()=>O.default,curveStepAfter:()=>O.stepAfter,curveStepBefore:()=>O.stepBefore,stack:()=>B.default,stackOffsetExpand:()=>R.default,stackOffsetDiverging:()=>I.default,stackOffsetNone:()=>P.default,stackOffsetSilhouette:()=>L.default,stackOffsetWiggle:()=>F.default,stackOrderAppearance:()=>z.default,stackOrderAscending:()=>q.default,stackOrderDescending:()=>Y.default,stackOrderInsideOut:()=>U.default,stackOrderNone:()=>H.default,stackOrderReverse:()=>G.default});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/arc.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/area.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/line.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/pie.js"),i=n("./node_modules/dagre-d3/node_modules/d3-shape/src/areaRadial.js"),d=n("./node_modules/dagre-d3/node_modules/d3-shape/src/lineRadial.js"),l=n("./node_modules/dagre-d3/node_modules/d3-shape/src/pointRadial.js"),u=n("./node_modules/dagre-d3/node_modules/d3-shape/src/link/index.js"),c=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol.js"),f=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/circle.js"),h=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/cross.js"),m=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/diamond.js"),p=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/square.js"),g=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/star.js"),_=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/triangle.js"),y=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/wye.js"),v=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basisClosed.js"),b=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basisOpen.js"),j=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basis.js"),x=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/bundle.js"),w=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalClosed.js"),k=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalOpen.js"),C=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinal.js"),T=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRomClosed.js"),E=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRomOpen.js"),S=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRom.js"),M=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linearClosed.js"),A=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linear.js"),N=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/monotone.js"),D=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/natural.js"),O=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/step.js"),B=n("./node_modules/dagre-d3/node_modules/d3-shape/src/stack.js"),R=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/expand.js"),I=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/diverging.js"),P=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/none.js"),L=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/silhouette.js"),F=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/wiggle.js"),z=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/appearance.js"),q=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/ascending.js"),Y=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/descending.js"),U=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/insideOut.js"),H=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/none.js"),G=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/reverse.js")},"./node_modules/dagre-d3/node_modules/d3-shape/src/line.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/d3-path/src/path.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linear.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/point.js");function i(){var e=a.x,t=a.y,n=(0,o.default)(!0),i=null,d=s.default,l=null;function u(o){var s,a,u,c=o.length,f=!1;for(null==i&&(l=d(u=(0,r.default)())),s=0;s<=c;++s)!(s{"use strict";n.r(t),n.d(t,{lineRadial:()=>s,default:()=>a});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/curve/radial.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/line.js");function s(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(e){return arguments.length?t((0,r.default)(e)):t()._curve},e}function a(){return s((0,o.default)().curve(r.curveRadialLinear))}},"./node_modules/dagre-d3/node_modules/d3-shape/src/link/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{linkHorizontal:()=>m,linkVertical:()=>p,linkRadial:()=>g});var r=n("./node_modules/d3-path/src/path.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/array.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/point.js"),i=n("./node_modules/dagre-d3/node_modules/d3-shape/src/pointRadial.js");function d(e){return e.source}function l(e){return e.target}function u(e){var t=d,n=l,i=a.x,u=a.y,c=null;function f(){var s,a=o.slice.call(arguments),d=t.apply(this,a),l=n.apply(this,a);if(c||(c=s=(0,r.default)()),e(c,+i.apply(this,(a[0]=d,a)),+u.apply(this,a),+i.apply(this,(a[0]=l,a)),+u.apply(this,a)),s)return c=null,s+""||null}return f.source=function(e){return arguments.length?(t=e,f):t},f.target=function(e){return arguments.length?(n=e,f):n},f.x=function(e){return arguments.length?(i="function"==typeof e?e:(0,s.default)(+e),f):i},f.y=function(e){return arguments.length?(u="function"==typeof e?e:(0,s.default)(+e),f):u},f.context=function(e){return arguments.length?(c=null==e?null:e,f):c},f}function c(e,t,n,r,o){e.moveTo(t,n),e.bezierCurveTo(t=(t+r)/2,n,t,o,r,o)}function f(e,t,n,r,o){e.moveTo(t,n),e.bezierCurveTo(t,n=(n+o)/2,r,n,r,o)}function h(e,t,n,r,o){var s=(0,i.default)(t,n),a=(0,i.default)(t,n=(n+o)/2),d=(0,i.default)(r,n),l=(0,i.default)(r,o);e.moveTo(s[0],s[1]),e.bezierCurveTo(a[0],a[1],d[0],d[1],l[0],l[1])}function m(){return u(c)}function p(){return u(f)}function g(){var e=u(h);return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e}},"./node_modules/dagre-d3/node_modules/d3-shape/src/math.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{abs:()=>r,atan2:()=>o,cos:()=>s,max:()=>a,min:()=>i,sin:()=>d,sqrt:()=>l,epsilon:()=>u,pi:()=>c,halfPi:()=>f,tau:()=>h,acos:()=>m,asin:()=>p});var r=Math.abs,o=Math.atan2,s=Math.cos,a=Math.max,i=Math.min,d=Math.sin,l=Math.sqrt,u=1e-12,c=Math.PI,f=c/2,h=2*c;function m(e){return e>1?0:e<-1?c:Math.acos(e)}function p(e){return e>=1?f:e<=-1?-f:Math.asin(e)}},"./node_modules/dagre-d3/node_modules/d3-shape/src/noop.js":(e,t,n)=>{"use strict";function r(){}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/offset/diverging.js":(e,t,n)=>{"use strict";function r(e,t){if((i=e.length)>0)for(var n,r,o,s,a,i,d=0,l=e[t[0]].length;d0?(r[0]=s,r[1]=s+=o):o<0?(r[1]=a,r[0]=a+=o):(r[0]=0,r[1]=o)}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/offset/expand.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/none.js");function o(e,t){if((o=e.length)>0){for(var n,o,s,a=0,i=e[0].length;a{"use strict";function r(e,t){if((o=e.length)>1)for(var n,r,o,s=1,a=e[t[0]],i=a.length;sr})},"./node_modules/dagre-d3/node_modules/d3-shape/src/offset/silhouette.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/none.js");function o(e,t){if((n=e.length)>0){for(var n,o=0,s=e[t[0]],a=s.length;o{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/none.js");function o(e,t){if((s=e.length)>0&&(o=(n=e[t[0]]).length)>0){for(var n,o,s,a=0,i=1;i{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/none.js");function o(e){var t=e.map(s);return(0,r.default)(e).sort((function(e,n){return t[e]-t[n]}))}function s(e){for(var t,n=-1,r=0,o=e.length,s=-1/0;++ns&&(s=t,r=n);return r}},"./node_modules/dagre-d3/node_modules/d3-shape/src/order/ascending.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o,sum:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/none.js");function o(e){var t=e.map(s);return(0,r.default)(e).sort((function(e,n){return t[e]-t[n]}))}function s(e){for(var t,n=0,r=-1,o=e.length;++r{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/ascending.js");function o(e){return(0,r.default)(e).reverse()}},"./node_modules/dagre-d3/node_modules/d3-shape/src/order/insideOut.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/appearance.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/ascending.js");function s(e){var t,n,s=e.length,a=e.map(o.sum),i=(0,r.default)(e),d=0,l=0,u=[],c=[];for(t=0;t{"use strict";function r(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/order/reverse.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/none.js");function o(e){return(0,r.default)(e).reverse()}},"./node_modules/dagre-d3/node_modules/d3-shape/src/pie.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/descending.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/identity.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/math.js");function i(){var e=s.default,t=o.default,n=null,i=(0,r.default)(0),d=(0,r.default)(a.tau),l=(0,r.default)(0);function u(r){var o,s,u,c,f,h=r.length,m=0,p=new Array(h),g=new Array(h),_=+i.apply(this,arguments),y=Math.min(a.tau,Math.max(-a.tau,d.apply(this,arguments)-_)),v=Math.min(Math.abs(y)/h,l.apply(this,arguments)),b=v*(y<0?-1:1);for(o=0;o0&&(m+=f);for(null!=t?p.sort((function(e,n){return t(g[e],g[n])})):null!=n&&p.sort((function(e,t){return n(r[e],r[t])})),o=0,u=m?(y-h*b)/m:0;o0?f*u:0)+b,g[s]={data:r[s],index:o,value:f,startAngle:_,endAngle:c,padAngle:v};return g}return u.value=function(t){return arguments.length?(e="function"==typeof t?t:(0,r.default)(+t),u):e},u.sortValues=function(e){return arguments.length?(t=e,n=null,u):t},u.sort=function(e){return arguments.length?(n=e,t=null,u):n},u.startAngle=function(e){return arguments.length?(i="function"==typeof e?e:(0,r.default)(+e),u):i},u.endAngle=function(e){return arguments.length?(d="function"==typeof e?e:(0,r.default)(+e),u):d},u.padAngle=function(e){return arguments.length?(l="function"==typeof e?e:(0,r.default)(+e),u):l},u}},"./node_modules/dagre-d3/node_modules/d3-shape/src/point.js":(e,t,n)=>{"use strict";function r(e){return e[0]}function o(e){return e[1]}n.r(t),n.d(t,{x:()=>r,y:()=>o})},"./node_modules/dagre-d3/node_modules/d3-shape/src/pointRadial.js":(e,t,n)=>{"use strict";function r(e,t){return[(t=+t)*Math.cos(e-=Math.PI/2),t*Math.sin(e)]}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-shape/src/stack.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/array.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/offset/none.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/order/none.js");function i(e,t){return e[t]}function d(){var e=(0,o.default)([]),t=a.default,n=s.default,d=i;function l(r){var o,s,a=e.apply(this,arguments),i=r.length,l=a.length,u=new Array(l);for(o=0;o{"use strict";n.r(t),n.d(t,{symbols:()=>f,default:()=>h});var r=n("./node_modules/d3-path/src/path.js"),o=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/circle.js"),s=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/cross.js"),a=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/diamond.js"),i=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/star.js"),d=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/square.js"),l=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/triangle.js"),u=n("./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/wye.js"),c=n("./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js"),f=[o.default,s.default,a.default,d.default,i.default,l.default,u.default];function h(){var e=(0,c.default)(o.default),t=(0,c.default)(64),n=null;function s(){var o;if(n||(n=o=(0,r.default)()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return s.type=function(t){return arguments.length?(e="function"==typeof t?t:(0,c.default)(t),s):e},s.size=function(e){return arguments.length?(t="function"==typeof e?e:(0,c.default)(+e),s):t},s.context=function(e){return arguments.length?(n=null==e?null:e,s):n},s}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/circle.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/math.js");const o={draw:function(e,t){var n=Math.sqrt(t/r.pi);e.moveTo(n,0),e.arc(0,0,n,0,r.tau)}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/cross.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={draw:function(e,t){var n=Math.sqrt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/diamond.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=Math.sqrt(1/3),o=2*r;const s={draw:function(e,t){var n=Math.sqrt(t/o),s=n*r;e.moveTo(0,-n),e.lineTo(s,0),e.lineTo(0,n),e.lineTo(-s,0),e.closePath()}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/square.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={draw:function(e,t){var n=Math.sqrt(t),r=-n/2;e.rect(r,r,n,n)}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/star.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n("./node_modules/dagre-d3/node_modules/d3-shape/src/math.js"),o=Math.sin(r.pi/10)/Math.sin(7*r.pi/10),s=Math.sin(r.tau/10)*o,a=-Math.cos(r.tau/10)*o;const i={draw:function(e,t){var n=Math.sqrt(.8908130915292852*t),o=s*n,i=a*n;e.moveTo(0,-n),e.lineTo(o,i);for(var d=1;d<5;++d){var l=r.tau*d/5,u=Math.cos(l),c=Math.sin(l);e.lineTo(c*n,-u*n),e.lineTo(u*o-c*i,c*o+u*i)}e.closePath()}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/triangle.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=Math.sqrt(3);const o={draw:function(e,t){var n=-Math.sqrt(t/(3*r));e.moveTo(0,2*n),e.lineTo(-r*n,-n),e.lineTo(r*n,-n),e.closePath()}}},"./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/wye.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=-.5,o=Math.sqrt(3)/2,s=1/Math.sqrt(12),a=3*(s/2+1);const i={draw:function(e,t){var n=Math.sqrt(t/a),i=n/2,d=n*s,l=i,u=n*s+n,c=-l,f=u;e.moveTo(i,d),e.lineTo(l,u),e.lineTo(c,f),e.lineTo(r*i-o*d,o*i+r*d),e.lineTo(r*l-o*u,o*l+r*u),e.lineTo(r*c-o*f,o*c+r*f),e.lineTo(r*i+o*d,r*d-o*i),e.lineTo(r*l+o*u,r*u-o*l),e.lineTo(r*c+o*f,r*f-o*c),e.closePath()}}},"./node_modules/dagre-d3/node_modules/d3-zoom/src/constant.js":(e,t,n)=>{"use strict";function r(e){return function(){return e}}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-zoom/src/event.js":(e,t,n)=>{"use strict";function r(e,t,n){this.target=e,this.type=t,this.transform=n}n.r(t),n.d(t,{default:()=>r})},"./node_modules/dagre-d3/node_modules/d3-zoom/src/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{zoom:()=>r.default,zoomTransform:()=>o.default,zoomIdentity:()=>o.identity});var r=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/zoom.js"),o=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/transform.js")},"./node_modules/dagre-d3/node_modules/d3-zoom/src/noevent.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{nopropagation:()=>o,default:()=>s});var r=n("./node_modules/d3-selection/src/selection/on.js");function o(){r.event.stopImmediatePropagation()}function s(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},"./node_modules/dagre-d3/node_modules/d3-zoom/src/transform.js":(e,t,n)=>{"use strict";function r(e,t,n){this.k=e,this.x=t,this.y=n}n.r(t),n.d(t,{Transform:()=>r,identity:()=>o,default:()=>s}),r.prototype={constructor:r,scale:function(e){return 1===e?this:new r(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new r(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var o=new r(1,0,0);function s(e){for(;!e.__zoom;)if(!(e=e.parentNode))return o;return e.__zoom}s.prototype=r.prototype},"./node_modules/dagre-d3/node_modules/d3-zoom/src/zoom.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>j});var r=n("./node_modules/d3-dispatch/src/dispatch.js"),o=n("./node_modules/d3-drag/src/nodrag.js"),s=n("./node_modules/d3-interpolate/src/zoom.js"),a=n("./node_modules/d3-selection/src/selection/on.js"),i=n("./node_modules/d3-selection/src/mouse.js"),d=n("./node_modules/d3-selection/src/select.js"),l=n("./node_modules/d3-selection/src/touch.js"),u=n("./node_modules/d3-transition/src/index.js"),c=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/constant.js"),f=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/event.js"),h=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/transform.js"),m=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/noevent.js");function p(){return!a.event.ctrlKey&&!a.event.button}function g(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function _(){return this.__zoom||h.identity}function y(){return-a.event.deltaY*(1===a.event.deltaMode?.05:a.event.deltaMode?1:.002)}function v(){return navigator.maxTouchPoints||"ontouchstart"in this}function b(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>s?(s+a)/2:Math.min(0,s)||Math.max(0,a))}function j(){var e,t,n=p,j=g,x=b,w=y,k=v,C=[0,1/0],T=[[-1/0,-1/0],[1/0,1/0]],E=250,S=s.default,M=(0,r.default)("start","zoom","end"),A=500,N=0;function D(e){e.property("__zoom",_).on("wheel.zoom",F).on("mousedown.zoom",z).on("dblclick.zoom",q).filter(k).on("touchstart.zoom",Y).on("touchmove.zoom",U).on("touchend.zoom touchcancel.zoom",H).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function O(e,t){return(t=Math.max(C[0],Math.min(C[1],t)))===e.k?e:new h.Transform(t,e.x,e.y)}function B(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new h.Transform(e.k,r,o)}function R(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function I(e,t,n){e.on("start.zoom",(function(){P(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){P(this,arguments).end()})).tween("zoom",(function(){var e=this,r=arguments,o=P(e,r),s=j.apply(e,r),a=null==n?R(s):"function"==typeof n?n.apply(e,r):n,i=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,l="function"==typeof t?t.apply(e,r):t,u=S(d.invert(a).concat(i/d.k),l.invert(a).concat(i/l.k));return function(e){if(1===e)e=l;else{var t=u(e),n=i/t[2];e=new h.Transform(n,a[0]-t[0]*n,a[1]-t[1]*n)}o.zoom(null,e)}}))}function P(e,t,n){return!n&&e.__zooming||new L(e,t)}function L(e,t){this.that=e,this.args=t,this.active=0,this.extent=j.apply(e,t),this.taps=0}function F(){if(n.apply(this,arguments)){var e=P(this,arguments),t=this.__zoom,r=Math.max(C[0],Math.min(C[1],t.k*Math.pow(2,w.apply(this,arguments)))),o=(0,i.default)(this);if(e.wheel)e.mouse[0][0]===o[0]&&e.mouse[0][1]===o[1]||(e.mouse[1]=t.invert(e.mouse[0]=o)),clearTimeout(e.wheel);else{if(t.k===r)return;e.mouse=[o,t.invert(o)],(0,u.interrupt)(this),e.start()}(0,m.default)(),e.wheel=setTimeout(s,150),e.zoom("mouse",x(B(O(t,r),e.mouse[0],e.mouse[1]),e.extent,T))}function s(){e.wheel=null,e.end()}}function z(){if(!t&&n.apply(this,arguments)){var e=P(this,arguments,!0),r=(0,d.default)(a.event.view).on("mousemove.zoom",f,!0).on("mouseup.zoom",h,!0),s=(0,i.default)(this),l=a.event.clientX,c=a.event.clientY;(0,o.default)(a.event.view),(0,m.nopropagation)(),e.mouse=[s,this.__zoom.invert(s)],(0,u.interrupt)(this),e.start()}function f(){if((0,m.default)(),!e.moved){var t=a.event.clientX-l,n=a.event.clientY-c;e.moved=t*t+n*n>N}e.zoom("mouse",x(B(e.that.__zoom,e.mouse[0]=(0,i.default)(e.that),e.mouse[1]),e.extent,T))}function h(){r.on("mousemove.zoom mouseup.zoom",null),(0,o.yesdrag)(a.event.view,e.moved),(0,m.default)(),e.end()}}function q(){if(n.apply(this,arguments)){var e=this.__zoom,t=(0,i.default)(this),r=e.invert(t),o=e.k*(a.event.shiftKey?.5:2),s=x(B(O(e,o),t,r),j.apply(this,arguments),T);(0,m.default)(),E>0?(0,d.default)(this).transition().duration(E).call(I,s,t):(0,d.default)(this).call(D.transform,s)}}function Y(){if(n.apply(this,arguments)){var t,r,o,s,i=a.event.touches,d=i.length,c=P(this,arguments,a.event.changedTouches.length===d);for((0,m.nopropagation)(),r=0;r{"use strict";n.r(t),n.d(t,{name:()=>r,version:()=>o,description:()=>s,keywords:()=>a,homepage:()=>i,license:()=>d,author:()=>l,main:()=>u,unpkg:()=>c,jsdelivr:()=>f,module:()=>h,repository:()=>m,files:()=>p,scripts:()=>g,devDependencies:()=>_,dependencies:()=>y});var r="d3",o="5.16.0",s="Data-Driven Documents",a=["dom","visualization","svg","animation","canvas"],i="https://d3js.org",d="BSD-3-Clause",l={name:"Mike Bostock",url:"https://bost.ocks.org/mike"},u="dist/d3.node.js",c="dist/d3.min.js",f="dist/d3.min.js",h="index.js",m={type:"git",url:"https://github.com/d3/d3.git"},p=["dist/**/*.js","index.js"],g={pretest:"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c",test:"tape 'test/**/*-test.js'",prepublishOnly:"yarn test",postpublish:'git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m "d3 ${npm_package_version}" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m "${npm_package_version}" && git tag -am "${npm_package_version}" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js'},_={json2module:"0.0",rimraf:"2",rollup:"1","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"3","rollup-plugin-terser":"5",tape:"4"},y={"d3-array":"1","d3-axis":"1","d3-brush":"1","d3-chord":"1","d3-collection":"1","d3-color":"1","d3-contour":"1","d3-dispatch":"1","d3-drag":"1","d3-dsv":"1","d3-ease":"1","d3-fetch":"1","d3-force":"1","d3-format":"1","d3-geo":"1","d3-hierarchy":"1","d3-interpolate":"1","d3-path":"1","d3-polygon":"1","d3-quadtree":"1","d3-random":"1","d3-scale":"2","d3-scale-chromatic":"1","d3-selection":"1","d3-shape":"1","d3-time":"1","d3-time-format":"2","d3-timer":"1","d3-transition":"1","d3-voronoi":"1","d3-zoom":"1"}},"./node_modules/dagre-d3/node_modules/d3/index.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{version:()=>r.version,ascending:()=>o.ascending,bisect:()=>o.bisect,bisectLeft:()=>o.bisectLeft,bisectRight:()=>o.bisectRight,bisector:()=>o.bisector,cross:()=>o.cross,descending:()=>o.descending,deviation:()=>o.deviation,extent:()=>o.extent,histogram:()=>o.histogram,max:()=>o.max,mean:()=>o.mean,median:()=>o.median,merge:()=>o.merge,min:()=>o.min,pairs:()=>o.pairs,permute:()=>o.permute,quantile:()=>o.quantile,range:()=>o.range,scan:()=>o.scan,shuffle:()=>o.shuffle,sum:()=>o.sum,thresholdFreedmanDiaconis:()=>o.thresholdFreedmanDiaconis,thresholdScott:()=>o.thresholdScott,thresholdSturges:()=>o.thresholdSturges,tickIncrement:()=>o.tickIncrement,tickStep:()=>o.tickStep,ticks:()=>o.ticks,transpose:()=>o.transpose,variance:()=>o.variance,zip:()=>o.zip,axisBottom:()=>s.axisBottom,axisLeft:()=>s.axisLeft,axisRight:()=>s.axisRight,axisTop:()=>s.axisTop,brush:()=>a.brush,brushSelection:()=>a.brushSelection,brushX:()=>a.brushX,brushY:()=>a.brushY,chord:()=>i.chord,ribbon:()=>i.ribbon,entries:()=>d.entries,keys:()=>d.keys,map:()=>d.map,nest:()=>d.nest,set:()=>d.set,values:()=>d.values,color:()=>l.color,cubehelix:()=>l.cubehelix,gray:()=>l.gray,hcl:()=>l.hcl,hsl:()=>l.hsl,lab:()=>l.lab,lch:()=>l.lch,rgb:()=>l.rgb,contourDensity:()=>u.contourDensity,contours:()=>u.contours,dispatch:()=>c.dispatch,drag:()=>f.drag,dragDisable:()=>f.dragDisable,dragEnable:()=>f.dragEnable,autoType:()=>h.autoType,csvFormat:()=>h.csvFormat,csvFormatBody:()=>h.csvFormatBody,csvFormatRow:()=>h.csvFormatRow,csvFormatRows:()=>h.csvFormatRows,csvFormatValue:()=>h.csvFormatValue,csvParse:()=>h.csvParse,csvParseRows:()=>h.csvParseRows,dsvFormat:()=>h.dsvFormat,tsvFormat:()=>h.tsvFormat,tsvFormatBody:()=>h.tsvFormatBody,tsvFormatRow:()=>h.tsvFormatRow,tsvFormatRows:()=>h.tsvFormatRows,tsvFormatValue:()=>h.tsvFormatValue,tsvParse:()=>h.tsvParse,tsvParseRows:()=>h.tsvParseRows,easeBack:()=>m.easeBack,easeBackIn:()=>m.easeBackIn,easeBackInOut:()=>m.easeBackInOut,easeBackOut:()=>m.easeBackOut,easeBounce:()=>m.easeBounce,easeBounceIn:()=>m.easeBounceIn,easeBounceInOut:()=>m.easeBounceInOut,easeBounceOut:()=>m.easeBounceOut,easeCircle:()=>m.easeCircle,easeCircleIn:()=>m.easeCircleIn,easeCircleInOut:()=>m.easeCircleInOut,easeCircleOut:()=>m.easeCircleOut,easeCubic:()=>m.easeCubic,easeCubicIn:()=>m.easeCubicIn,easeCubicInOut:()=>m.easeCubicInOut,easeCubicOut:()=>m.easeCubicOut,easeElastic:()=>m.easeElastic,easeElasticIn:()=>m.easeElasticIn,easeElasticInOut:()=>m.easeElasticInOut,easeElasticOut:()=>m.easeElasticOut,easeExp:()=>m.easeExp,easeExpIn:()=>m.easeExpIn,easeExpInOut:()=>m.easeExpInOut,easeExpOut:()=>m.easeExpOut,easeLinear:()=>m.easeLinear,easePoly:()=>m.easePoly,easePolyIn:()=>m.easePolyIn,easePolyInOut:()=>m.easePolyInOut,easePolyOut:()=>m.easePolyOut,easeQuad:()=>m.easeQuad,easeQuadIn:()=>m.easeQuadIn,easeQuadInOut:()=>m.easeQuadInOut,easeQuadOut:()=>m.easeQuadOut,easeSin:()=>m.easeSin,easeSinIn:()=>m.easeSinIn,easeSinInOut:()=>m.easeSinInOut,easeSinOut:()=>m.easeSinOut,blob:()=>p.blob,buffer:()=>p.buffer,csv:()=>p.csv,dsv:()=>p.dsv,html:()=>p.html,image:()=>p.image,json:()=>p.json,svg:()=>p.svg,text:()=>p.text,tsv:()=>p.tsv,xml:()=>p.xml,forceCenter:()=>g.forceCenter,forceCollide:()=>g.forceCollide,forceLink:()=>g.forceLink,forceManyBody:()=>g.forceManyBody,forceRadial:()=>g.forceRadial,forceSimulation:()=>g.forceSimulation,forceX:()=>g.forceX,forceY:()=>g.forceY,FormatSpecifier:()=>_.FormatSpecifier,format:()=>_.format,formatDefaultLocale:()=>_.formatDefaultLocale,formatLocale:()=>_.formatLocale,formatPrefix:()=>_.formatPrefix,formatSpecifier:()=>_.formatSpecifier,precisionFixed:()=>_.precisionFixed,precisionPrefix:()=>_.precisionPrefix,precisionRound:()=>_.precisionRound,geoAlbers:()=>y.geoAlbers,geoAlbersUsa:()=>y.geoAlbersUsa,geoArea:()=>y.geoArea,geoAzimuthalEqualArea:()=>y.geoAzimuthalEqualArea,geoAzimuthalEqualAreaRaw:()=>y.geoAzimuthalEqualAreaRaw,geoAzimuthalEquidistant:()=>y.geoAzimuthalEquidistant,geoAzimuthalEquidistantRaw:()=>y.geoAzimuthalEquidistantRaw,geoBounds:()=>y.geoBounds,geoCentroid:()=>y.geoCentroid,geoCircle:()=>y.geoCircle,geoClipAntimeridian:()=>y.geoClipAntimeridian,geoClipCircle:()=>y.geoClipCircle,geoClipExtent:()=>y.geoClipExtent,geoClipRectangle:()=>y.geoClipRectangle,geoConicConformal:()=>y.geoConicConformal,geoConicConformalRaw:()=>y.geoConicConformalRaw,geoConicEqualArea:()=>y.geoConicEqualArea,geoConicEqualAreaRaw:()=>y.geoConicEqualAreaRaw,geoConicEquidistant:()=>y.geoConicEquidistant,geoConicEquidistantRaw:()=>y.geoConicEquidistantRaw,geoContains:()=>y.geoContains,geoDistance:()=>y.geoDistance,geoEqualEarth:()=>y.geoEqualEarth,geoEqualEarthRaw:()=>y.geoEqualEarthRaw,geoEquirectangular:()=>y.geoEquirectangular,geoEquirectangularRaw:()=>y.geoEquirectangularRaw,geoGnomonic:()=>y.geoGnomonic,geoGnomonicRaw:()=>y.geoGnomonicRaw,geoGraticule:()=>y.geoGraticule,geoGraticule10:()=>y.geoGraticule10,geoIdentity:()=>y.geoIdentity,geoInterpolate:()=>y.geoInterpolate,geoLength:()=>y.geoLength,geoMercator:()=>y.geoMercator,geoMercatorRaw:()=>y.geoMercatorRaw,geoNaturalEarth1:()=>y.geoNaturalEarth1,geoNaturalEarth1Raw:()=>y.geoNaturalEarth1Raw,geoOrthographic:()=>y.geoOrthographic,geoOrthographicRaw:()=>y.geoOrthographicRaw,geoPath:()=>y.geoPath,geoProjection:()=>y.geoProjection,geoProjectionMutator:()=>y.geoProjectionMutator,geoRotation:()=>y.geoRotation,geoStereographic:()=>y.geoStereographic,geoStereographicRaw:()=>y.geoStereographicRaw,geoStream:()=>y.geoStream,geoTransform:()=>y.geoTransform,geoTransverseMercator:()=>y.geoTransverseMercator,geoTransverseMercatorRaw:()=>y.geoTransverseMercatorRaw,cluster:()=>v.cluster,hierarchy:()=>v.hierarchy,pack:()=>v.pack,packEnclose:()=>v.packEnclose,packSiblings:()=>v.packSiblings,partition:()=>v.partition,stratify:()=>v.stratify,tree:()=>v.tree,treemap:()=>v.treemap,treemapBinary:()=>v.treemapBinary,treemapDice:()=>v.treemapDice,treemapResquarify:()=>v.treemapResquarify,treemapSlice:()=>v.treemapSlice,treemapSliceDice:()=>v.treemapSliceDice,treemapSquarify:()=>v.treemapSquarify,interpolate:()=>b.interpolate,interpolateArray:()=>b.interpolateArray,interpolateBasis:()=>b.interpolateBasis,interpolateBasisClosed:()=>b.interpolateBasisClosed,interpolateCubehelix:()=>b.interpolateCubehelix,interpolateCubehelixLong:()=>b.interpolateCubehelixLong,interpolateDate:()=>b.interpolateDate,interpolateDiscrete:()=>b.interpolateDiscrete,interpolateHcl:()=>b.interpolateHcl,interpolateHclLong:()=>b.interpolateHclLong,interpolateHsl:()=>b.interpolateHsl,interpolateHslLong:()=>b.interpolateHslLong,interpolateHue:()=>b.interpolateHue,interpolateLab:()=>b.interpolateLab,interpolateNumber:()=>b.interpolateNumber,interpolateNumberArray:()=>b.interpolateNumberArray,interpolateObject:()=>b.interpolateObject,interpolateRgb:()=>b.interpolateRgb,interpolateRgbBasis:()=>b.interpolateRgbBasis,interpolateRgbBasisClosed:()=>b.interpolateRgbBasisClosed,interpolateRound:()=>b.interpolateRound,interpolateString:()=>b.interpolateString,interpolateTransformCss:()=>b.interpolateTransformCss,interpolateTransformSvg:()=>b.interpolateTransformSvg,interpolateZoom:()=>b.interpolateZoom,piecewise:()=>b.piecewise,quantize:()=>b.quantize,path:()=>j.path,polygonArea:()=>x.polygonArea,polygonCentroid:()=>x.polygonCentroid,polygonContains:()=>x.polygonContains,polygonHull:()=>x.polygonHull,polygonLength:()=>x.polygonLength,quadtree:()=>w.quadtree,randomBates:()=>k.randomBates,randomExponential:()=>k.randomExponential,randomIrwinHall:()=>k.randomIrwinHall,randomLogNormal:()=>k.randomLogNormal,randomNormal:()=>k.randomNormal,randomUniform:()=>k.randomUniform,scaleBand:()=>C.scaleBand,scaleDiverging:()=>C.scaleDiverging,scaleDivergingLog:()=>C.scaleDivergingLog,scaleDivergingPow:()=>C.scaleDivergingPow,scaleDivergingSqrt:()=>C.scaleDivergingSqrt,scaleDivergingSymlog:()=>C.scaleDivergingSymlog,scaleIdentity:()=>C.scaleIdentity,scaleImplicit:()=>C.scaleImplicit,scaleLinear:()=>C.scaleLinear,scaleLog:()=>C.scaleLog,scaleOrdinal:()=>C.scaleOrdinal,scalePoint:()=>C.scalePoint,scalePow:()=>C.scalePow,scaleQuantile:()=>C.scaleQuantile,scaleQuantize:()=>C.scaleQuantize,scaleSequential:()=>C.scaleSequential,scaleSequentialLog:()=>C.scaleSequentialLog,scaleSequentialPow:()=>C.scaleSequentialPow,scaleSequentialQuantile:()=>C.scaleSequentialQuantile,scaleSequentialSqrt:()=>C.scaleSequentialSqrt,scaleSequentialSymlog:()=>C.scaleSequentialSymlog,scaleSqrt:()=>C.scaleSqrt,scaleSymlog:()=>C.scaleSymlog,scaleThreshold:()=>C.scaleThreshold,scaleTime:()=>C.scaleTime,scaleUtc:()=>C.scaleUtc,tickFormat:()=>C.tickFormat,interpolateBlues:()=>T.interpolateBlues,interpolateBrBG:()=>T.interpolateBrBG,interpolateBuGn:()=>T.interpolateBuGn,interpolateBuPu:()=>T.interpolateBuPu,interpolateCividis:()=>T.interpolateCividis,interpolateCool:()=>T.interpolateCool,interpolateCubehelixDefault:()=>T.interpolateCubehelixDefault,interpolateGnBu:()=>T.interpolateGnBu,interpolateGreens:()=>T.interpolateGreens,interpolateGreys:()=>T.interpolateGreys,interpolateInferno:()=>T.interpolateInferno,interpolateMagma:()=>T.interpolateMagma,interpolateOrRd:()=>T.interpolateOrRd,interpolateOranges:()=>T.interpolateOranges,interpolatePRGn:()=>T.interpolatePRGn,interpolatePiYG:()=>T.interpolatePiYG,interpolatePlasma:()=>T.interpolatePlasma,interpolatePuBu:()=>T.interpolatePuBu,interpolatePuBuGn:()=>T.interpolatePuBuGn,interpolatePuOr:()=>T.interpolatePuOr,interpolatePuRd:()=>T.interpolatePuRd,interpolatePurples:()=>T.interpolatePurples,interpolateRainbow:()=>T.interpolateRainbow,interpolateRdBu:()=>T.interpolateRdBu,interpolateRdGy:()=>T.interpolateRdGy,interpolateRdPu:()=>T.interpolateRdPu,interpolateRdYlBu:()=>T.interpolateRdYlBu,interpolateRdYlGn:()=>T.interpolateRdYlGn,interpolateReds:()=>T.interpolateReds,interpolateSinebow:()=>T.interpolateSinebow,interpolateSpectral:()=>T.interpolateSpectral,interpolateTurbo:()=>T.interpolateTurbo,interpolateViridis:()=>T.interpolateViridis,interpolateWarm:()=>T.interpolateWarm,interpolateYlGn:()=>T.interpolateYlGn,interpolateYlGnBu:()=>T.interpolateYlGnBu,interpolateYlOrBr:()=>T.interpolateYlOrBr,interpolateYlOrRd:()=>T.interpolateYlOrRd,schemeAccent:()=>T.schemeAccent,schemeBlues:()=>T.schemeBlues,schemeBrBG:()=>T.schemeBrBG,schemeBuGn:()=>T.schemeBuGn,schemeBuPu:()=>T.schemeBuPu,schemeCategory10:()=>T.schemeCategory10,schemeDark2:()=>T.schemeDark2,schemeGnBu:()=>T.schemeGnBu,schemeGreens:()=>T.schemeGreens,schemeGreys:()=>T.schemeGreys,schemeOrRd:()=>T.schemeOrRd,schemeOranges:()=>T.schemeOranges,schemePRGn:()=>T.schemePRGn,schemePaired:()=>T.schemePaired,schemePastel1:()=>T.schemePastel1,schemePastel2:()=>T.schemePastel2,schemePiYG:()=>T.schemePiYG,schemePuBu:()=>T.schemePuBu,schemePuBuGn:()=>T.schemePuBuGn,schemePuOr:()=>T.schemePuOr,schemePuRd:()=>T.schemePuRd,schemePurples:()=>T.schemePurples,schemeRdBu:()=>T.schemeRdBu,schemeRdGy:()=>T.schemeRdGy,schemeRdPu:()=>T.schemeRdPu,schemeRdYlBu:()=>T.schemeRdYlBu,schemeRdYlGn:()=>T.schemeRdYlGn,schemeReds:()=>T.schemeReds,schemeSet1:()=>T.schemeSet1,schemeSet2:()=>T.schemeSet2,schemeSet3:()=>T.schemeSet3,schemeSpectral:()=>T.schemeSpectral,schemeTableau10:()=>T.schemeTableau10,schemeYlGn:()=>T.schemeYlGn,schemeYlGnBu:()=>T.schemeYlGnBu,schemeYlOrBr:()=>T.schemeYlOrBr,schemeYlOrRd:()=>T.schemeYlOrRd,clientPoint:()=>E.clientPoint,create:()=>E.create,creator:()=>E.creator,customEvent:()=>E.customEvent,event:()=>E.event,local:()=>E.local,matcher:()=>E.matcher,mouse:()=>E.mouse,namespace:()=>E.namespace,namespaces:()=>E.namespaces,select:()=>E.select,selectAll:()=>E.selectAll,selection:()=>E.selection,selector:()=>E.selector,selectorAll:()=>E.selectorAll,style:()=>E.style,touch:()=>E.touch,touches:()=>E.touches,window:()=>E.window,arc:()=>S.arc,area:()=>S.area,areaRadial:()=>S.areaRadial,curveBasis:()=>S.curveBasis,curveBasisClosed:()=>S.curveBasisClosed,curveBasisOpen:()=>S.curveBasisOpen,curveBundle:()=>S.curveBundle,curveCardinal:()=>S.curveCardinal,curveCardinalClosed:()=>S.curveCardinalClosed,curveCardinalOpen:()=>S.curveCardinalOpen,curveCatmullRom:()=>S.curveCatmullRom,curveCatmullRomClosed:()=>S.curveCatmullRomClosed,curveCatmullRomOpen:()=>S.curveCatmullRomOpen,curveLinear:()=>S.curveLinear,curveLinearClosed:()=>S.curveLinearClosed,curveMonotoneX:()=>S.curveMonotoneX,curveMonotoneY:()=>S.curveMonotoneY,curveNatural:()=>S.curveNatural,curveStep:()=>S.curveStep,curveStepAfter:()=>S.curveStepAfter,curveStepBefore:()=>S.curveStepBefore,line:()=>S.line,lineRadial:()=>S.lineRadial,linkHorizontal:()=>S.linkHorizontal,linkRadial:()=>S.linkRadial,linkVertical:()=>S.linkVertical,pie:()=>S.pie,pointRadial:()=>S.pointRadial,radialArea:()=>S.radialArea,radialLine:()=>S.radialLine,stack:()=>S.stack,stackOffsetDiverging:()=>S.stackOffsetDiverging,stackOffsetExpand:()=>S.stackOffsetExpand,stackOffsetNone:()=>S.stackOffsetNone,stackOffsetSilhouette:()=>S.stackOffsetSilhouette,stackOffsetWiggle:()=>S.stackOffsetWiggle,stackOrderAppearance:()=>S.stackOrderAppearance,stackOrderAscending:()=>S.stackOrderAscending,stackOrderDescending:()=>S.stackOrderDescending,stackOrderInsideOut:()=>S.stackOrderInsideOut,stackOrderNone:()=>S.stackOrderNone,stackOrderReverse:()=>S.stackOrderReverse,symbol:()=>S.symbol,symbolCircle:()=>S.symbolCircle,symbolCross:()=>S.symbolCross,symbolDiamond:()=>S.symbolDiamond,symbolSquare:()=>S.symbolSquare,symbolStar:()=>S.symbolStar,symbolTriangle:()=>S.symbolTriangle,symbolWye:()=>S.symbolWye,symbols:()=>S.symbols,timeDay:()=>M.timeDay,timeDays:()=>M.timeDays,timeFriday:()=>M.timeFriday,timeFridays:()=>M.timeFridays,timeHour:()=>M.timeHour,timeHours:()=>M.timeHours,timeInterval:()=>M.timeInterval,timeMillisecond:()=>M.timeMillisecond,timeMilliseconds:()=>M.timeMilliseconds,timeMinute:()=>M.timeMinute,timeMinutes:()=>M.timeMinutes,timeMonday:()=>M.timeMonday,timeMondays:()=>M.timeMondays,timeMonth:()=>M.timeMonth,timeMonths:()=>M.timeMonths,timeSaturday:()=>M.timeSaturday,timeSaturdays:()=>M.timeSaturdays,timeSecond:()=>M.timeSecond,timeSeconds:()=>M.timeSeconds,timeSunday:()=>M.timeSunday,timeSundays:()=>M.timeSundays,timeThursday:()=>M.timeThursday,timeThursdays:()=>M.timeThursdays,timeTuesday:()=>M.timeTuesday,timeTuesdays:()=>M.timeTuesdays,timeWednesday:()=>M.timeWednesday,timeWednesdays:()=>M.timeWednesdays,timeWeek:()=>M.timeWeek,timeWeeks:()=>M.timeWeeks,timeYear:()=>M.timeYear,timeYears:()=>M.timeYears,utcDay:()=>M.utcDay,utcDays:()=>M.utcDays,utcFriday:()=>M.utcFriday,utcFridays:()=>M.utcFridays,utcHour:()=>M.utcHour,utcHours:()=>M.utcHours,utcMillisecond:()=>M.utcMillisecond,utcMilliseconds:()=>M.utcMilliseconds,utcMinute:()=>M.utcMinute,utcMinutes:()=>M.utcMinutes,utcMonday:()=>M.utcMonday,utcMondays:()=>M.utcMondays,utcMonth:()=>M.utcMonth,utcMonths:()=>M.utcMonths,utcSaturday:()=>M.utcSaturday,utcSaturdays:()=>M.utcSaturdays,utcSecond:()=>M.utcSecond,utcSeconds:()=>M.utcSeconds,utcSunday:()=>M.utcSunday,utcSundays:()=>M.utcSundays,utcThursday:()=>M.utcThursday,utcThursdays:()=>M.utcThursdays,utcTuesday:()=>M.utcTuesday,utcTuesdays:()=>M.utcTuesdays,utcWednesday:()=>M.utcWednesday,utcWednesdays:()=>M.utcWednesdays,utcWeek:()=>M.utcWeek,utcWeeks:()=>M.utcWeeks,utcYear:()=>M.utcYear,utcYears:()=>M.utcYears,isoFormat:()=>A.isoFormat,isoParse:()=>A.isoParse,timeFormat:()=>A.timeFormat,timeFormatDefaultLocale:()=>A.timeFormatDefaultLocale,timeFormatLocale:()=>A.timeFormatLocale,timeParse:()=>A.timeParse,utcFormat:()=>A.utcFormat,utcParse:()=>A.utcParse,interval:()=>N.interval,now:()=>N.now,timeout:()=>N.timeout,timer:()=>N.timer,timerFlush:()=>N.timerFlush,active:()=>D.active,interrupt:()=>D.interrupt,transition:()=>D.transition,voronoi:()=>O.voronoi,zoom:()=>B.zoom,zoomIdentity:()=>B.zoomIdentity,zoomTransform:()=>B.zoomTransform});var r=n("./node_modules/dagre-d3/node_modules/d3/dist/package.js"),o=n("./node_modules/d3-array/src/index.js"),s=n("./node_modules/dagre-d3/node_modules/d3-axis/src/index.js"),a=n("./node_modules/dagre-d3/node_modules/d3-brush/src/index.js"),i=n("./node_modules/dagre-d3/node_modules/d3-chord/src/index.js"),d=n("./node_modules/d3-collection/src/index.js"),l=n("./node_modules/d3-color/src/index.js"),u=n("./node_modules/dagre-d3/node_modules/d3-contour/src/index.js"),c=n("./node_modules/d3-dispatch/src/index.js"),f=n("./node_modules/d3-drag/src/index.js"),h=n("./node_modules/d3-dsv/src/index.js"),m=n("./node_modules/d3-ease/src/index.js"),p=n("./node_modules/dagre-d3/node_modules/d3-fetch/src/index.js"),g=n("./node_modules/dagre-d3/node_modules/d3-force/src/index.js"),_=n("./node_modules/d3-format/src/index.js"),y=n("./node_modules/dagre-d3/node_modules/d3-geo/src/index.js"),v=n("./node_modules/dagre-d3/node_modules/d3-hierarchy/src/index.js"),b=n("./node_modules/d3-interpolate/src/index.js"),j=n("./node_modules/d3-path/src/index.js"),x=n("./node_modules/dagre-d3/node_modules/d3-polygon/src/index.js"),w=n("./node_modules/d3-quadtree/src/index.js"),k=n("./node_modules/dagre-d3/node_modules/d3-random/src/index.js"),C=n("./node_modules/dagre-d3/node_modules/d3-scale/src/index.js"),T=n("./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/index.js"),E=n("./node_modules/d3-selection/src/index.js"),S=n("./node_modules/dagre-d3/node_modules/d3-shape/src/index.js"),M=n("./node_modules/d3-time/src/index.js"),A=n("./node_modules/d3-time-format/src/index.js"),N=n("./node_modules/d3-timer/src/index.js"),D=n("./node_modules/d3-transition/src/index.js"),O=n("./node_modules/d3-voronoi/src/index.js"),B=n("./node_modules/dagre-d3/node_modules/d3-zoom/src/index.js")},"./node_modules/dagre/index.js":(e,t,n)=>{e.exports={graphlib:n("./node_modules/dagre/lib/graphlib.js"),layout:n("./node_modules/dagre/lib/layout.js"),debug:n("./node_modules/dagre/lib/debug.js"),util:{time:n("./node_modules/dagre/lib/util.js").time,notime:n("./node_modules/dagre/lib/util.js").notime},version:n("./node_modules/dagre/lib/version.js")}},"./node_modules/dagre/lib/acyclic.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/greedy-fas.js");e.exports={run:function(e){var t="greedy"===e.graph().acyclicer?o(e,function(e){return function(t){return e.edge(t).weight}}(e)):function(e){var t=[],n={},o={};return r.forEach(e.nodes(),(function s(a){r.has(o,a)||(o[a]=!0,n[a]=!0,r.forEach(e.outEdges(a),(function(e){r.has(n,e.w)?t.push(e):s(e.w)})),delete n[a])})),t}(e);r.forEach(t,(function(t){var n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,r.uniqueId("rev"))}))},undo:function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.reversed){e.removeEdge(t);var r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}}))}}},"./node_modules/dagre/lib/add-border-segments.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/util.js");function s(e,t,n,r,s,a){var i={width:0,height:0,rank:a,borderType:t},d=s[t][a-1],l=o.addDummyNode(e,"border",i,n);s[t][a]=l,e.setParent(l,r),d&&e.setEdge(d,l,{weight:1})}e.exports=function(e){r.forEach(e.children(),(function t(n){var o=e.children(n),a=e.node(n);if(o.length&&r.forEach(o,t),r.has(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var i=a.minRank,d=a.maxRank+1;i{"use strict";var r=n("./node_modules/dagre/lib/lodash.js");function o(e){r.forEach(e.nodes(),(function(t){s(e.node(t))})),r.forEach(e.edges(),(function(t){s(e.edge(t))}))}function s(e){var t=e.width;e.width=e.height,e.height=t}function a(e){e.y=-e.y}function i(e){var t=e.x;e.x=e.y,e.y=t}e.exports={adjust:function(e){var t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||o(e)},undo:function(e){var t=e.graph().rankdir.toLowerCase();"bt"!==t&&"rl"!==t||function(e){r.forEach(e.nodes(),(function(t){a(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.forEach(n.points,a),r.has(n,"y")&&a(n)}))}(e),"lr"!==t&&"rl"!==t||(function(e){r.forEach(e.nodes(),(function(t){i(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.forEach(n.points,i),r.has(n,"x")&&i(n)}))}(e),o(e))}}},"./node_modules/dagre/lib/data/list.js":e=>{function t(){var e={};e._next=e._prev=e,this._sentinel=e}function n(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function r(e,t){if("_next"!==e&&"_prev"!==e)return t}e.exports=t,t.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return n(t),t},t.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&n(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},t.prototype.toString=function(){for(var e=[],t=this._sentinel,n=t._prev;n!==t;)e.push(JSON.stringify(n,r)),n=n._prev;return"["+e.join(", ")+"]"}},"./node_modules/dagre/lib/debug.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/util.js"),s=n("./node_modules/dagre/lib/graphlib.js").Graph;e.exports={debugOrdering:function(e){var t=o.buildLayerMatrix(e),n=new s({compound:!0,multigraph:!0}).setGraph({});return r.forEach(e.nodes(),(function(t){n.setNode(t,{label:t}),n.setParent(t,"layer"+e.node(t).rank)})),r.forEach(e.edges(),(function(e){n.setEdge(e.v,e.w,{},e.name)})),r.forEach(t,(function(e,t){var o="layer"+t;n.setNode(o,{rank:"same"}),r.reduce(e,(function(e,t){return n.setEdge(e,t,{style:"invis"}),t}))})),n}}},"./node_modules/dagre/lib/graphlib.js":(e,t,n)=>{var r;try{r=n("./node_modules/graphlib/index.js")}catch(e){}r||(r=window.graphlib),e.exports=r},"./node_modules/dagre/lib/greedy-fas.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/graphlib.js").Graph,s=n("./node_modules/dagre/lib/data/list.js");e.exports=function(e,t){if(e.nodeCount()<=1)return[];var n=function(e,t){var n=new o,a=0,i=0;r.forEach(e.nodes(),(function(e){n.setNode(e,{v:e,in:0,out:0})})),r.forEach(e.edges(),(function(e){var r=n.edge(e.v,e.w)||0,o=t(e),s=r+o;n.setEdge(e.v,e.w,s),i=Math.max(i,n.node(e.v).out+=o),a=Math.max(a,n.node(e.w).in+=o)}));var l=r.range(i+a+3).map((function(){return new s})),u=a+1;return r.forEach(n.nodes(),(function(e){d(l,u,n.node(e))})),{graph:n,buckets:l,zeroIdx:u}}(e,t||a),l=function(e,t,n){for(var r,o=[],s=t[t.length-1],a=t[0];e.nodeCount();){for(;r=a.dequeue();)i(e,t,n,r);for(;r=s.dequeue();)i(e,t,n,r);if(e.nodeCount())for(var d=t.length-2;d>0;--d)if(r=t[d].dequeue()){o=o.concat(i(e,t,n,r,!0));break}}return o}(n.graph,n.buckets,n.zeroIdx);return r.flatten(r.map(l,(function(t){return e.outEdges(t.v,t.w)})),!0)};var a=r.constant(1);function i(e,t,n,o,s){var a=s?[]:void 0;return r.forEach(e.inEdges(o.v),(function(r){var o=e.edge(r),i=e.node(r.v);s&&a.push({v:r.v,w:r.w}),i.out-=o,d(t,n,i)})),r.forEach(e.outEdges(o.v),(function(r){var o=e.edge(r),s=r.w,a=e.node(s);a.in-=o,d(t,n,a)})),e.removeNode(o.v),a}function d(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}},"./node_modules/dagre/lib/layout.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/acyclic.js"),s=n("./node_modules/dagre/lib/normalize.js"),a=n("./node_modules/dagre/lib/rank/index.js"),i=n("./node_modules/dagre/lib/util.js").normalizeRanks,d=n("./node_modules/dagre/lib/parent-dummy-chains.js"),l=n("./node_modules/dagre/lib/util.js").removeEmptyRanks,u=n("./node_modules/dagre/lib/nesting-graph.js"),c=n("./node_modules/dagre/lib/add-border-segments.js"),f=n("./node_modules/dagre/lib/coordinate-system.js"),h=n("./node_modules/dagre/lib/order/index.js"),m=n("./node_modules/dagre/lib/position/index.js"),p=n("./node_modules/dagre/lib/util.js"),g=n("./node_modules/dagre/lib/graphlib.js").Graph;e.exports=function(e,t){var n=t&&t.debugTiming?p.time:p.notime;n("layout",(function(){var t=n(" buildLayoutGraph",(function(){return function(e){var t=new g({multigraph:!0,compound:!0}),n=T(e.graph());return t.setGraph(r.merge({},y,C(n,_),r.pick(n,v))),r.forEach(e.nodes(),(function(n){var o=T(e.node(n));t.setNode(n,r.defaults(C(o,b),j)),t.setParent(n,e.parent(n))})),r.forEach(e.edges(),(function(n){var o=T(e.edge(n));t.setEdge(n,r.merge({},w,C(o,x),r.pick(o,k)))})),t}(e)}));n(" runLayout",(function(){!function(e,t){t(" makeSpaceForEdgeLabels",(function(){!function(e){var t=e.graph();t.ranksep/=2,r.forEach(e.edges(),(function(n){var r=e.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(e)})),t(" removeSelfEdges",(function(){!function(e){r.forEach(e.edges(),(function(t){if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))}(e)})),t(" acyclic",(function(){o.run(e)})),t(" nestingGraph.run",(function(){u.run(e)})),t(" rank",(function(){a(p.asNonCompoundGraph(e))})),t(" injectEdgeLabelProxies",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.width&&n.height){var r=e.node(t.v),o={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};p.addDummyNode(e,"edge-proxy",o,"_ep")}}))}(e)})),t(" removeEmptyRanks",(function(){l(e)})),t(" nestingGraph.cleanup",(function(){u.cleanup(e)})),t(" normalizeRanks",(function(){i(e)})),t(" assignRankMinMax",(function(){!function(e){var t=0;r.forEach(e.nodes(),(function(n){var o=e.node(n);o.borderTop&&(o.minRank=e.node(o.borderTop).rank,o.maxRank=e.node(o.borderBottom).rank,t=r.max(t,o.maxRank))})),e.graph().maxRank=t}(e)})),t(" removeEdgeLabelProxies",(function(){!function(e){r.forEach(e.nodes(),(function(t){var n=e.node(t);"edge-proxy"===n.dummy&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))}))}(e)})),t(" normalize.run",(function(){s.run(e)})),t(" parentDummyChains",(function(){d(e)})),t(" addBorderSegments",(function(){c(e)})),t(" order",(function(){h(e)})),t(" insertSelfEdges",(function(){!function(e){var t=p.buildLayerMatrix(e);r.forEach(t,(function(t){var n=0;r.forEach(t,(function(t,o){var s=e.node(t);s.order=o+n,r.forEach(s.selfEdges,(function(t){p.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:s.rank,order:o+ ++n,e:t.e,label:t.label},"_se")})),delete s.selfEdges}))}))}(e)})),t(" adjustCoordinateSystem",(function(){f.adjust(e)})),t(" position",(function(){m(e)})),t(" positionSelfEdges",(function(){!function(e){r.forEach(e.nodes(),(function(t){var n=e.node(t);if("selfedge"===n.dummy){var r=e.node(n.e.v),o=r.x+r.width/2,s=r.y,a=n.x-o,i=r.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:o+2*a/3,y:s-i},{x:o+5*a/6,y:s-i},{x:o+a,y:s},{x:o+5*a/6,y:s+i},{x:o+2*a/3,y:s+i}],n.label.x=n.x,n.label.y=n.y}}))}(e)})),t(" removeBorderNodes",(function(){!function(e){r.forEach(e.nodes(),(function(t){if(e.children(t).length){var n=e.node(t),o=e.node(n.borderTop),s=e.node(n.borderBottom),a=e.node(r.last(n.borderLeft)),i=e.node(r.last(n.borderRight));n.width=Math.abs(i.x-a.x),n.height=Math.abs(s.y-o.y),n.x=a.x+n.width/2,n.y=o.y+n.height/2}})),r.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))}(e)})),t(" normalize.undo",(function(){s.undo(e)})),t(" fixupEdgeLabelCoords",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(r.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(e)})),t(" undoCoordinateSystem",(function(){f.undo(e)})),t(" translateGraph",(function(){!function(e){var t=Number.POSITIVE_INFINITY,n=0,o=Number.POSITIVE_INFINITY,s=0,a=e.graph(),i=a.marginx||0,d=a.marginy||0;function l(e){var r=e.x,a=e.y,i=e.width,d=e.height;t=Math.min(t,r-i/2),n=Math.max(n,r+i/2),o=Math.min(o,a-d/2),s=Math.max(s,a+d/2)}r.forEach(e.nodes(),(function(t){l(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.has(n,"x")&&l(n)})),t-=i,o-=d,r.forEach(e.nodes(),(function(n){var r=e.node(n);r.x-=t,r.y-=o})),r.forEach(e.edges(),(function(n){var s=e.edge(n);r.forEach(s.points,(function(e){e.x-=t,e.y-=o})),r.has(s,"x")&&(s.x-=t),r.has(s,"y")&&(s.y-=o)})),a.width=n-t+i,a.height=s-o+d}(e)})),t(" assignNodeIntersects",(function(){!function(e){r.forEach(e.edges(),(function(t){var n,r,o=e.edge(t),s=e.node(t.v),a=e.node(t.w);o.points?(n=o.points[0],r=o.points[o.points.length-1]):(o.points=[],n=a,r=s),o.points.unshift(p.intersectRect(s,n)),o.points.push(p.intersectRect(a,r))}))}(e)})),t(" reversePoints",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);n.reversed&&n.points.reverse()}))}(e)})),t(" acyclic.undo",(function(){o.undo(e)}))}(t,n)})),n(" updateInputGraph",(function(){!function(e,t){r.forEach(e.nodes(),(function(n){var r=e.node(n),o=t.node(n);r&&(r.x=o.x,r.y=o.y,t.children(n).length&&(r.width=o.width,r.height=o.height))})),r.forEach(e.edges(),(function(n){var o=e.edge(n),s=t.edge(n);o.points=s.points,r.has(s,"x")&&(o.x=s.x,o.y=s.y)})),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)}))}))};var _=["nodesep","edgesep","ranksep","marginx","marginy"],y={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],b=["width","height"],j={width:0,height:0},x=["minlen","weight","width","height","labeloffset"],w={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},k=["labelpos"];function C(e,t){return r.mapValues(r.pick(e,t),Number)}function T(e){var t={};return r.forEach(e,(function(e,n){t[n.toLowerCase()]=e})),t}},"./node_modules/dagre/lib/lodash.js":(e,t,n)=>{var r;try{r={cloneDeep:n("./node_modules/lodash/cloneDeep.js"),constant:n("./node_modules/lodash/constant.js"),defaults:n("./node_modules/lodash/defaults.js"),each:n("./node_modules/lodash/each.js"),filter:n("./node_modules/lodash/filter.js"),find:n("./node_modules/lodash/find.js"),flatten:n("./node_modules/lodash/flatten.js"),forEach:n("./node_modules/lodash/forEach.js"),forIn:n("./node_modules/lodash/forIn.js"),has:n("./node_modules/lodash/has.js"),isUndefined:n("./node_modules/lodash/isUndefined.js"),last:n("./node_modules/lodash/last.js"),map:n("./node_modules/lodash/map.js"),mapValues:n("./node_modules/lodash/mapValues.js"),max:n("./node_modules/lodash/max.js"),merge:n("./node_modules/lodash/merge.js"),min:n("./node_modules/lodash/min.js"),minBy:n("./node_modules/lodash/minBy.js"),now:n("./node_modules/lodash/now.js"),pick:n("./node_modules/lodash/pick.js"),range:n("./node_modules/lodash/range.js"),reduce:n("./node_modules/lodash/reduce.js"),sortBy:n("./node_modules/lodash/sortBy.js"),uniqueId:n("./node_modules/lodash/uniqueId.js"),values:n("./node_modules/lodash/values.js"),zipObject:n("./node_modules/lodash/zipObject.js")}}catch(e){}r||(r=window._),e.exports=r},"./node_modules/dagre/lib/nesting-graph.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/util.js");function s(e,t,n,a,i,d,l){var u=e.children(l);if(u.length){var c=o.addBorderNode(e,"_bt"),f=o.addBorderNode(e,"_bb"),h=e.node(l);e.setParent(c,l),h.borderTop=c,e.setParent(f,l),h.borderBottom=f,r.forEach(u,(function(r){s(e,t,n,a,i,d,r);var o=e.node(r),u=o.borderTop?o.borderTop:r,h=o.borderBottom?o.borderBottom:r,m=o.borderTop?a:2*a,p=u!==h?1:i-d[l]+1;e.setEdge(c,u,{weight:m,minlen:p,nestingEdge:!0}),e.setEdge(h,f,{weight:m,minlen:p,nestingEdge:!0})})),e.parent(l)||e.setEdge(t,c,{weight:0,minlen:i+d[l]})}else l!==t&&e.setEdge(t,l,{weight:0,minlen:n})}e.exports={run:function(e){var t=o.addDummyNode(e,"root",{},"_root"),n=function(e){var t={};function n(o,s){var a=e.children(o);a&&a.length&&r.forEach(a,(function(e){n(e,s+1)})),t[o]=s}return r.forEach(e.children(),(function(e){n(e,1)})),t}(e),a=r.max(r.values(n))-1,i=2*a+1;e.graph().nestingRoot=t,r.forEach(e.edges(),(function(t){e.edge(t).minlen*=i}));var d=function(e){return r.reduce(e.edges(),(function(t,n){return t+e.edge(n).weight}),0)}(e)+1;r.forEach(e.children(),(function(r){s(e,t,i,d,a,n,r)})),e.graph().nodeRankFactor=i},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,r.forEach(e.edges(),(function(t){e.edge(t).nestingEdge&&e.removeEdge(t)}))}}},"./node_modules/dagre/lib/normalize.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/util.js");e.exports={run:function(e){e.graph().dummyChains=[],r.forEach(e.edges(),(function(t){!function(e,t){var n,r,s,a=t.v,i=e.node(a).rank,d=t.w,l=e.node(d).rank,u=t.name,c=e.edge(t),f=c.labelRank;if(l!==i+1){for(e.removeEdge(t),s=0,++i;i{var r=n("./node_modules/dagre/lib/lodash.js");e.exports=function(e,t,n){var o,s={};r.forEach(n,(function(n){for(var r,a,i=e.parent(n);i;){if((r=e.parent(i))?(a=s[r],s[r]=i):(a=o,o=i),a&&a!==i)return void t.setEdge(a,i);i=r}}))}},"./node_modules/dagre/lib/order/barycenter.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js");e.exports=function(e,t){return r.map(t,(function(t){var n=e.inEdges(t);if(n.length){var o=r.reduce(n,(function(t,n){var r=e.edge(n),o=e.node(n.v);return{sum:t.sum+r.weight*o.order,weight:t.weight+r.weight}}),{sum:0,weight:0});return{v:t,barycenter:o.sum/o.weight,weight:o.weight}}return{v:t}}))}},"./node_modules/dagre/lib/order/build-layer-graph.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/graphlib.js").Graph;e.exports=function(e,t,n){var s=function(e){for(var t;e.hasNode(t=r.uniqueId("_root")););return t}(e),a=new o({compound:!0}).setGraph({root:s}).setDefaultNodeLabel((function(t){return e.node(t)}));return r.forEach(e.nodes(),(function(o){var i=e.node(o),d=e.parent(o);(i.rank===t||i.minRank<=t&&t<=i.maxRank)&&(a.setNode(o),a.setParent(o,d||s),r.forEach(e[n](o),(function(t){var n=t.v===o?t.w:t.v,s=a.edge(n,o),i=r.isUndefined(s)?0:s.weight;a.setEdge(n,o,{weight:e.edge(t).weight+i})})),r.has(i,"minRank")&&a.setNode(o,{borderLeft:i.borderLeft[t],borderRight:i.borderRight[t]}))})),a}},"./node_modules/dagre/lib/order/cross-count.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js");function o(e,t,n){for(var o=r.zipObject(n,r.map(n,(function(e,t){return t}))),s=r.flatten(r.map(t,(function(t){return r.sortBy(r.map(e.outEdges(t),(function(t){return{pos:o[t.w],weight:e.edge(t).weight}})),"pos")})),!0),a=1;a0;)t%2&&(n+=d[t+1]),d[t=t-1>>1]+=e.weight;l+=e.weight*n}))),l}e.exports=function(e,t){for(var n=0,r=1;r{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/order/init-order.js"),s=n("./node_modules/dagre/lib/order/cross-count.js"),a=n("./node_modules/dagre/lib/order/sort-subgraph.js"),i=n("./node_modules/dagre/lib/order/build-layer-graph.js"),d=n("./node_modules/dagre/lib/order/add-subgraph-constraints.js"),l=n("./node_modules/dagre/lib/graphlib.js").Graph,u=n("./node_modules/dagre/lib/util.js");function c(e,t,n){return r.map(t,(function(t){return i(e,t,n)}))}function f(e,t){var n=new l;r.forEach(e,(function(e){var o=e.graph().root,s=a(e,o,n,t);r.forEach(s.vs,(function(t,n){e.node(t).order=n})),d(e,n,s.vs)}))}function h(e,t){r.forEach(t,(function(t){r.forEach(t,(function(t,n){e.node(t).order=n}))}))}e.exports=function(e){var t=u.maxRank(e),n=c(e,r.range(1,t+1),"inEdges"),a=c(e,r.range(t-1,-1,-1),"outEdges"),i=o(e);h(e,i);for(var d,l=Number.POSITIVE_INFINITY,m=0,p=0;p<4;++m,++p){f(m%2?n:a,m%4>=2),i=u.buildLayerMatrix(e);var g=s(e,i);g{"use strict";var r=n("./node_modules/dagre/lib/lodash.js");e.exports=function(e){var t={},n=r.filter(e.nodes(),(function(t){return!e.children(t).length})),o=r.max(r.map(n,(function(t){return e.node(t).rank}))),s=r.map(r.range(o+1),(function(){return[]})),a=r.sortBy(n,(function(t){return e.node(t).rank}));return r.forEach(a,(function n(o){if(!r.has(t,o)){t[o]=!0;var a=e.node(o);s[a.rank].push(o),r.forEach(e.successors(o),n)}})),s}},"./node_modules/dagre/lib/order/resolve-conflicts.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js");e.exports=function(e,t){var n={};return r.forEach(e,(function(e,t){var o=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};r.isUndefined(e.barycenter)||(o.barycenter=e.barycenter,o.weight=e.weight)})),r.forEach(t.edges(),(function(e){var t=n[e.v],o=n[e.w];r.isUndefined(t)||r.isUndefined(o)||(o.indegree++,t.out.push(n[e.w]))})),function(e){var t=[];function n(e){return function(t){var n,o,s,a;t.merged||(r.isUndefined(t.barycenter)||r.isUndefined(e.barycenter)||t.barycenter>=e.barycenter)&&(o=t,s=0,a=0,(n=e).weight&&(s+=n.barycenter*n.weight,a+=n.weight),o.weight&&(s+=o.barycenter*o.weight,a+=o.weight),n.vs=o.vs.concat(n.vs),n.barycenter=s/a,n.weight=a,n.i=Math.min(o.i,n.i),o.merged=!0)}}function o(t){return function(n){n.in.push(t),0==--n.indegree&&e.push(n)}}for(;e.length;){var s=e.pop();t.push(s),r.forEach(s.in.reverse(),n(s)),r.forEach(s.out,o(s))}return r.map(r.filter(t,(function(e){return!e.merged})),(function(e){return r.pick(e,["vs","i","barycenter","weight"])}))}(r.filter(n,(function(e){return!e.indegree})))}},"./node_modules/dagre/lib/order/sort-subgraph.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/order/barycenter.js"),s=n("./node_modules/dagre/lib/order/resolve-conflicts.js"),a=n("./node_modules/dagre/lib/order/sort.js");e.exports=function e(t,n,i,d){var l=t.children(n),u=t.node(n),c=u?u.borderLeft:void 0,f=u?u.borderRight:void 0,h={};c&&(l=r.filter(l,(function(e){return e!==c&&e!==f})));var m=o(t,l);r.forEach(m,(function(n){if(t.children(n.v).length){var o=e(t,n.v,i,d);h[n.v]=o,r.has(o,"barycenter")&&(s=n,a=o,r.isUndefined(s.barycenter)?(s.barycenter=a.barycenter,s.weight=a.weight):(s.barycenter=(s.barycenter*s.weight+a.barycenter*a.weight)/(s.weight+a.weight),s.weight+=a.weight))}var s,a}));var p=s(m,i);!function(e,t){r.forEach(e,(function(e){e.vs=r.flatten(e.vs.map((function(e){return t[e]?t[e].vs:e})),!0)}))}(p,h);var g=a(p,d);if(c&&(g.vs=r.flatten([c,g.vs,f],!0),t.predecessors(c).length)){var _=t.node(t.predecessors(c)[0]),y=t.node(t.predecessors(f)[0]);r.has(g,"barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+_.order+y.order)/(g.weight+2),g.weight+=2}return g}},"./node_modules/dagre/lib/order/sort.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/util.js");function s(e,t,n){for(var o;t.length&&(o=r.last(t)).i<=n;)t.pop(),e.push(o.vs),n++;return n}e.exports=function(e,t){var n,a=o.partition(e,(function(e){return r.has(e,"barycenter")})),i=a.lhs,d=r.sortBy(a.rhs,(function(e){return-e.i})),l=[],u=0,c=0,f=0;i.sort((n=!!t,function(e,t){return e.barycentert.barycenter?1:n?t.i-e.i:e.i-t.i})),f=s(l,d,f),r.forEach(i,(function(e){f+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,c+=e.weight,f=s(l,d,f)}));var h={vs:r.flatten(l,!0)};return c&&(h.barycenter=u/c,h.weight=c),h}},"./node_modules/dagre/lib/parent-dummy-chains.js":(e,t,n)=>{var r=n("./node_modules/dagre/lib/lodash.js");e.exports=function(e){var t=function(e){var t={},n=0;return r.forEach(e.children(),(function o(s){var a=n;r.forEach(e.children(s),o),t[s]={low:a,lim:n++}})),t}(e);r.forEach(e.graph().dummyChains,(function(n){for(var r=e.node(n),o=r.edgeObj,s=function(e,t,n,r){var o,s,a=[],i=[],d=Math.min(t[n].low,t[r].low),l=Math.max(t[n].lim,t[r].lim);o=n;do{o=e.parent(o),a.push(o)}while(o&&(t[o].low>d||l>t[o].lim));for(s=o,o=r;(o=e.parent(o))!==s;)i.push(o);return{path:a.concat(i.reverse()),lca:s}}(e,t,o.v,o.w),a=s.path,i=s.lca,d=0,l=a[d],u=!0;n!==o.w;){if(r=e.node(n),u){for(;(l=a[d])!==i&&e.node(l).maxRank{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/graphlib.js").Graph,s=n("./node_modules/dagre/lib/util.js");function a(e,t){var n={};return r.reduce(t,(function(t,o){var s=0,a=0,i=t.length,l=r.last(o);return r.forEach(o,(function(t,u){var c=function(e,t){if(e.node(t).dummy)return r.find(e.predecessors(t),(function(t){return e.node(t).dummy}))}(e,t),f=c?e.node(c).order:i;(c||t===l)&&(r.forEach(o.slice(a,u+1),(function(t){r.forEach(e.predecessors(t),(function(r){var o=e.node(r),a=o.order;!(ai)&&d(n,t,l)}))}))}return r.reduce(t,(function(t,n){var s,a=-1,i=0;return r.forEach(n,(function(r,d){if("border"===e.node(r).dummy){var l=e.predecessors(r);l.length&&(s=e.node(l[0]).order,o(n,i,d,a,s),i=d,a=s)}o(n,i,n.length,s,t.length)})),n})),n}function d(e,t,n){if(t>n){var r=t;t=n,n=r}var o=e[t];o||(e[t]=o={}),o[n]=!0}function l(e,t,n){if(t>n){var o=t;t=n,n=o}return r.has(e[t],n)}function u(e,t,n,o){var s={},a={},i={};return r.forEach(t,(function(e){r.forEach(e,(function(e,t){s[e]=e,a[e]=e,i[e]=t}))})),r.forEach(t,(function(e){var t=-1;r.forEach(e,(function(e){var d=o(e);if(d.length){d=r.sortBy(d,(function(e){return i[e]}));for(var u=(d.length-1)/2,c=Math.floor(u),f=Math.ceil(u);c<=f;++c){var h=d[c];a[e]===e&&t{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/util.js"),s=n("./node_modules/dagre/lib/position/bk.js").positionX;e.exports=function(e){(function(e){var t=o.buildLayerMatrix(e),n=e.graph().ranksep,s=0;r.forEach(t,(function(t){var o=r.max(r.map(t,(function(t){return e.node(t).height})));r.forEach(t,(function(t){e.node(t).y=s+o/2})),s+=o+n}))})(e=o.asNonCompoundGraph(e)),r.forEach(s(e),(function(t,n){e.node(n).x=t}))}},"./node_modules/dagre/lib/rank/feasible-tree.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/graphlib.js").Graph,s=n("./node_modules/dagre/lib/rank/util.js").slack;function a(e,t){return r.forEach(e.nodes(),(function n(o){r.forEach(t.nodeEdges(o),(function(r){var a=r.v,i=o===a?r.w:a;e.hasNode(i)||s(t,r)||(e.setNode(i,{}),e.setEdge(o,i,{}),n(i))}))})),e.nodeCount()}function i(e,t){return r.minBy(t.edges(),(function(n){if(e.hasNode(n.v)!==e.hasNode(n.w))return s(t,n)}))}function d(e,t,n){r.forEach(e.nodes(),(function(e){t.node(e).rank+=n}))}e.exports=function(e){var t,n,r=new o({directed:!1}),l=e.nodes()[0],u=e.nodeCount();for(r.setNode(l,{});a(r,e){"use strict";var r=n("./node_modules/dagre/lib/rank/util.js").longestPath,o=n("./node_modules/dagre/lib/rank/feasible-tree.js"),s=n("./node_modules/dagre/lib/rank/network-simplex.js");e.exports=function(e){switch(e.graph().ranker){case"network-simplex":default:!function(e){s(e)}(e);break;case"tight-tree":!function(e){r(e),o(e)}(e);break;case"longest-path":a(e)}};var a=r},"./node_modules/dagre/lib/rank/network-simplex.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/rank/feasible-tree.js"),s=n("./node_modules/dagre/lib/rank/util.js").slack,a=n("./node_modules/dagre/lib/rank/util.js").longestPath,i=n("./node_modules/dagre/lib/graphlib.js").alg.preorder,d=n("./node_modules/dagre/lib/graphlib.js").alg.postorder,l=n("./node_modules/dagre/lib/util.js").simplify;function u(e){e=l(e),a(e);var t,n=o(e);for(h(n),c(n,e);t=p(n);)_(n,e,t,g(n,e,t))}function c(e,t){var n=d(e,e.nodes());n=n.slice(0,n.length-1),r.forEach(n,(function(n){!function(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=f(e,t,n)}(e,t,n)}))}function f(e,t,n){var o=e.node(n).parent,s=!0,a=t.edge(n,o),i=0;return a||(s=!1,a=t.edge(o,n)),i=a.weight,r.forEach(t.nodeEdges(n),(function(r){var a,d,l=r.v===n,u=l?r.w:r.v;if(u!==o){var c=l===s,f=t.edge(r).weight;if(i+=c?f:-f,a=n,d=u,e.hasEdge(a,d)){var h=e.edge(n,u).cutvalue;i+=c?-h:h}}})),i}function h(e,t){arguments.length<2&&(t=e.nodes()[0]),m(e,{},1,t)}function m(e,t,n,o,s){var a=n,i=e.node(o);return t[o]=!0,r.forEach(e.neighbors(o),(function(s){r.has(t,s)||(n=m(e,t,n,s,o))})),i.low=a,i.lim=n++,s?i.parent=s:delete i.parent,n}function p(e){return r.find(e.edges(),(function(t){return e.edge(t).cutvalue<0}))}function g(e,t,n){var o=n.v,a=n.w;t.hasEdge(o,a)||(o=n.w,a=n.v);var i=e.node(o),d=e.node(a),l=i,u=!1;i.lim>d.lim&&(l=d,u=!0);var c=r.filter(t.edges(),(function(t){return u===y(0,e.node(t.v),l)&&u!==y(0,e.node(t.w),l)}));return r.minBy(c,(function(e){return s(t,e)}))}function _(e,t,n,o){var s=n.v,a=n.w;e.removeEdge(s,a),e.setEdge(o.v,o.w,{}),h(e),c(e,t),function(e,t){var n=r.find(e.nodes(),(function(e){return!t.node(e).parent})),o=i(e,n);o=o.slice(1),r.forEach(o,(function(n){var r=e.node(n).parent,o=t.edge(n,r),s=!1;o||(o=t.edge(r,n),s=!0),t.node(n).rank=t.node(r).rank+(s?o.minlen:-o.minlen)}))}(e,t)}function y(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}e.exports=u,u.initLowLimValues=h,u.initCutValues=c,u.calcCutValue=f,u.leaveEdge=p,u.enterEdge=g,u.exchangeEdges=_},"./node_modules/dagre/lib/rank/util.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js");e.exports={longestPath:function(e){var t={};r.forEach(e.sources(),(function n(o){var s=e.node(o);if(r.has(t,o))return s.rank;t[o]=!0;var a=r.min(r.map(e.outEdges(o),(function(t){return n(t.w)-e.edge(t).minlen})));return a!==Number.POSITIVE_INFINITY&&null!=a||(a=0),s.rank=a}))},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}}},"./node_modules/dagre/lib/util.js":(e,t,n)=>{"use strict";var r=n("./node_modules/dagre/lib/lodash.js"),o=n("./node_modules/dagre/lib/graphlib.js").Graph;function s(e,t,n,o){var s;do{s=r.uniqueId(o)}while(e.hasNode(s));return n.dummy=t,e.setNode(s,n),s}function a(e){return r.max(r.map(e.nodes(),(function(t){var n=e.node(t).rank;if(!r.isUndefined(n))return n})))}e.exports={addDummyNode:s,simplify:function(e){var t=(new o).setGraph(e.graph());return r.forEach(e.nodes(),(function(n){t.setNode(n,e.node(n))})),r.forEach(e.edges(),(function(n){var r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})})),t},asNonCompoundGraph:function(e){var t=new o({multigraph:e.isMultigraph()}).setGraph(e.graph());return r.forEach(e.nodes(),(function(n){e.children(n).length||t.setNode(n,e.node(n))})),r.forEach(e.edges(),(function(n){t.setEdge(n,e.edge(n))})),t},successorWeights:function(e){var t=r.map(e.nodes(),(function(t){var n={};return r.forEach(e.outEdges(t),(function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight})),n}));return r.zipObject(e.nodes(),t)},predecessorWeights:function(e){var t=r.map(e.nodes(),(function(t){var n={};return r.forEach(e.inEdges(t),(function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight})),n}));return r.zipObject(e.nodes(),t)},intersectRect:function(e,t){var n,r,o=e.x,s=e.y,a=t.x-o,i=t.y-s,d=e.width/2,l=e.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(i)*d>Math.abs(a)*l?(i<0&&(l=-l),n=l*a/i,r=l):(a<0&&(d=-d),n=d,r=d*i/a),{x:o+n,y:s+r}},buildLayerMatrix:function(e){var t=r.map(r.range(a(e)+1),(function(){return[]}));return r.forEach(e.nodes(),(function(n){var o=e.node(n),s=o.rank;r.isUndefined(s)||(t[s][o.order]=n)})),t},normalizeRanks:function(e){var t=r.min(r.map(e.nodes(),(function(t){return e.node(t).rank})));r.forEach(e.nodes(),(function(n){var o=e.node(n);r.has(o,"rank")&&(o.rank-=t)}))},removeEmptyRanks:function(e){var t=r.min(r.map(e.nodes(),(function(t){return e.node(t).rank}))),n=[];r.forEach(e.nodes(),(function(r){var o=e.node(r).rank-t;n[o]||(n[o]=[]),n[o].push(r)}));var o=0,s=e.graph().nodeRankFactor;r.forEach(n,(function(t,n){r.isUndefined(t)&&n%s!=0?--o:o&&r.forEach(t,(function(t){e.node(t).rank+=o}))}))},addBorderNode:function(e,t,n,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),s(e,"border",o,t)},maxRank:a,partition:function(e,t){var n={lhs:[],rhs:[]};return r.forEach(e,(function(e){t(e)?n.lhs.push(e):n.rhs.push(e)})),n},time:function(e,t){var n=r.now();try{return t()}finally{console.log(e+" time: "+(r.now()-n)+"ms")}},notime:function(e,t){return t()}}},"./node_modules/dagre/lib/version.js":e=>{e.exports="0.8.5"},"./node_modules/dompurify/dist/purify.js":function(e){e.exports=function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.getPrototypeOf,o=Object.getOwnPropertyDescriptor,s=Object.freeze,a=Object.seal,i=Object.create,d="undefined"!=typeof Reflect&&Reflect,l=d.apply,u=d.construct;l||(l=function(e,t,n){return e.apply(t,n)}),s||(s=function(e){return e}),a||(a=function(e){return e}),u||(u=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),o=1;o/gm),F=a(/^data-[\-\w.\u00B7-\uFFFF]/),z=a(/^aria-[\-\w]+$/),q=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Y=a(/^(?:\w+script|data):/i),U=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function G(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:V(),n=function(t){return e(t)};if(n.version="2.3.5",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,o=t.document,a=t.DocumentFragment,i=t.HTMLTemplateElement,d=t.Node,l=t.Element,u=t.NodeFilter,c=t.NamedNodeMap,x=void 0===c?t.NamedNodeMap||t.MozNamedAttrMap:c,$=t.HTMLFormElement,X=t.DOMParser,Z=t.trustedTypes,K=l.prototype,Q=C(K,"cloneNode"),J=C(K,"nextSibling"),ee=C(K,"childNodes"),te=C(K,"parentNode");if("function"==typeof i){var ne=o.createElement("template");ne.content&&ne.content.ownerDocument&&(o=ne.content.ownerDocument)}var re=W(Z,r),oe=re?re.createHTML(""):"",se=o,ae=se.implementation,ie=se.createNodeIterator,de=se.createDocumentFragment,le=se.getElementsByTagName,ue=r.importNode,ce={};try{ce=k(o).documentMode?o.documentMode:{}}catch(e){}var fe={};n.isSupported="function"==typeof te&&ae&&void 0!==ae.createHTMLDocument&&9!==ce;var he=P,me=L,pe=F,ge=z,_e=Y,ye=U,ve=q,be=null,je=w({},[].concat(G(T),G(E),G(S),G(A),G(D))),xe=null,we=w({},[].concat(G(O),G(B),G(R),G(I))),ke=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,Te=null,Ee=!0,Se=!0,Me=!1,Ae=!1,Ne=!1,De=!1,Oe=!1,Be=!1,Re=!1,Ie=!1,Pe=!0,Le=!0,Fe=!1,ze={},qe=null,Ye=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ue=null,He=w({},["audio","video","img","source","image","track"]),Ge=null,Ve=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),We="http://www.w3.org/1998/Math/MathML",$e="http://www.w3.org/2000/svg",Xe="http://www.w3.org/1999/xhtml",Ze=Xe,Ke=!1,Qe=void 0,Je=["application/xhtml+xml","text/html"],et="text/html",tt=void 0,nt=null,rt=o.createElement("form"),ot=function(e){return e instanceof RegExp||e instanceof Function},st=function(e){nt&&nt===e||(e&&"object"===(void 0===e?"undefined":H(e))||(e={}),e=k(e),be="ALLOWED_TAGS"in e?w({},e.ALLOWED_TAGS):je,xe="ALLOWED_ATTR"in e?w({},e.ALLOWED_ATTR):we,Ge="ADD_URI_SAFE_ATTR"in e?w(k(Ve),e.ADD_URI_SAFE_ATTR):Ve,Ue="ADD_DATA_URI_TAGS"in e?w(k(He),e.ADD_DATA_URI_TAGS):He,qe="FORBID_CONTENTS"in e?w({},e.FORBID_CONTENTS):Ye,Ce="FORBID_TAGS"in e?w({},e.FORBID_TAGS):{},Te="FORBID_ATTR"in e?w({},e.FORBID_ATTR):{},ze="USE_PROFILES"in e&&e.USE_PROFILES,Ee=!1!==e.ALLOW_ARIA_ATTR,Se=!1!==e.ALLOW_DATA_ATTR,Me=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ae=e.SAFE_FOR_TEMPLATES||!1,Ne=e.WHOLE_DOCUMENT||!1,Be=e.RETURN_DOM||!1,Re=e.RETURN_DOM_FRAGMENT||!1,Ie=e.RETURN_TRUSTED_TYPE||!1,Oe=e.FORCE_BODY||!1,Pe=!1!==e.SANITIZE_DOM,Le=!1!==e.KEEP_CONTENT,Fe=e.IN_PLACE||!1,ve=e.ALLOWED_URI_REGEXP||ve,Ze=e.NAMESPACE||Xe,e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ke.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ke.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(ke.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Qe=Qe=-1===Je.indexOf(e.PARSER_MEDIA_TYPE)?et:e.PARSER_MEDIA_TYPE,tt="application/xhtml+xml"===Qe?function(e){return e}:p,Ae&&(Se=!1),Re&&(Be=!0),ze&&(be=w({},[].concat(G(D))),xe=[],!0===ze.html&&(w(be,T),w(xe,O)),!0===ze.svg&&(w(be,E),w(xe,B),w(xe,I)),!0===ze.svgFilters&&(w(be,S),w(xe,B),w(xe,I)),!0===ze.mathMl&&(w(be,A),w(xe,R),w(xe,I))),e.ADD_TAGS&&(be===je&&(be=k(be)),w(be,e.ADD_TAGS)),e.ADD_ATTR&&(xe===we&&(xe=k(xe)),w(xe,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&w(Ge,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(qe===Ye&&(qe=k(qe)),w(qe,e.FORBID_CONTENTS)),Le&&(be["#text"]=!0),Ne&&w(be,["html","head","body"]),be.table&&(w(be,["tbody"]),delete Ce.tbody),s&&s(e),nt=e)},at=w({},["mi","mo","mn","ms","mtext"]),it=w({},["foreignobject","desc","title","annotation-xml"]),dt=w({},E);w(dt,S),w(dt,M);var lt=w({},A);w(lt,N);var ut=function(e){var t=te(e);t&&t.tagName||(t={namespaceURI:Xe,tagName:"template"});var n=p(e.tagName),r=p(t.tagName);if(e.namespaceURI===$e)return t.namespaceURI===Xe?"svg"===n:t.namespaceURI===We?"svg"===n&&("annotation-xml"===r||at[r]):Boolean(dt[n]);if(e.namespaceURI===We)return t.namespaceURI===Xe?"math"===n:t.namespaceURI===$e?"math"===n&&it[r]:Boolean(lt[n]);if(e.namespaceURI===Xe){if(t.namespaceURI===$e&&!it[r])return!1;if(t.namespaceURI===We&&!at[r])return!1;var o=w({},["title","style","font","a","script"]);return!lt[n]&&(o[n]||!dt[n])}return!1},ct=function(e){m(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=oe}catch(t){e.remove()}}},ft=function(e,t){try{m(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){m(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!xe[e])if(Be||Re)try{ct(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},ht=function(e){var t=void 0,n=void 0;if(Oe)e=""+e;else{var r=g(e,/^[\r\n\t ]+/);n=r&&r[0]}"application/xhtml+xml"===Qe&&(e=''+e+"");var s=re?re.createHTML(e):e;if(Ze===Xe)try{t=(new X).parseFromString(s,Qe)}catch(e){}if(!t||!t.documentElement){t=ae.createDocument(Ze,"template",null);try{t.documentElement.innerHTML=Ke?"":s}catch(e){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),Ze===Xe?le.call(t,Ne?"html":"body")[0]:Ne?t.documentElement:a},mt=function(e){return ie.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},pt=function(e){return e instanceof $&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof x)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore)},gt=function(e){return"object"===(void 0===d?"undefined":H(d))?e instanceof d:e&&"object"===(void 0===e?"undefined":H(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},_t=function(e,t,r){fe[e]&&f(fe[e],(function(e){e.call(n,t,r,nt)}))},yt=function(e){var t=void 0;if(_t("beforeSanitizeElements",e,null),pt(e))return ct(e),!0;if(g(e.nodeName,/[\u0080-\uFFFF]/))return ct(e),!0;var r=tt(e.nodeName);if(_t("uponSanitizeElement",e,{tagName:r,allowedTags:be}),!gt(e.firstElementChild)&&(!gt(e.content)||!gt(e.content.firstElementChild))&&b(/<[/\w]/g,e.innerHTML)&&b(/<[/\w]/g,e.textContent))return ct(e),!0;if("select"===r&&b(/