From ee0b31b3d58383b777f573b0edebf36f416fd6e6 Mon Sep 17 00:00:00 2001 From: ashishj Date: Wed, 11 May 2022 14:04:50 +0200 Subject: [PATCH 1/2] #3025 Fix from broken init call --- src/mermaid.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mermaid.js b/src/mermaid.js index 38391c941..4323ab69d 100644 --- a/src/mermaid.js +++ b/src/mermaid.js @@ -31,7 +31,7 @@ import utils from './utils'; */ const init = function () { try { - initThrowsErrors(); + initThrowsErrors(...arguments); } catch (e) { log.warn('Syntax Error rendering'); log.warn(e); From 5a9ec30803398464688f7e460fc66a008814d7a2 Mon Sep 17 00:00:00 2001 From: ashishj Date: Wed, 11 May 2022 14:05:21 +0200 Subject: [PATCH 2/2] Updating Release version to 9.1.1 --- dist/mermaid.core.js | 4 ++-- dist/mermaid.core.js.map | 2 +- dist/mermaid.js | 4 ++-- dist/mermaid.js.map | 2 +- docs/index.html | 2 +- package.json | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/mermaid.core.js b/dist/mermaid.core.js index 9706a8dc6..7d57bdd3c 100644 --- a/dist/mermaid.core.js +++ b/dist/mermaid.core.js @@ -27050,7 +27050,7 @@ __webpack_require__.r(__webpack_exports__); var init = function init() { try { - initThrowsErrors(); + initThrowsErrors.apply(void 0, arguments); } catch (e) { _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn('Syntax Error rendering'); _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn(e); @@ -31839,7 +31839,7 @@ module.exports = require("stylis"); /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"name":"mermaid","version":"9.1.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":"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":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.6","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":"^16.0.0","@commitlint/config-conventional":"^16.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":"9.6.0","cypress-image-snapshot":"^4.0.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":"^39.1.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","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":"^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"]}'); +module.exports = JSON.parse('{"name":"mermaid","version":"9.1.1","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":"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":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.6","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":"^16.0.0","@commitlint/config-conventional":"^16.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":"9.6.0","cypress-image-snapshot":"^4.0.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":"^39.1.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","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":"^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"]}'); /***/ }) diff --git a/dist/mermaid.core.js.map b/dist/mermaid.core.js.map index 6db4afa50..b5b346814 100644 --- a/dist/mermaid.core.js.map +++ b/dist/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,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,2zBAA2zB;AACt0B,aAAa,ueAAue;AACpf;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,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,uEAAuE,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,iHAAiH,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;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,2GAA2G,mCAAmC,cAAc,uCAAuC,aAAa;AACzkB,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;;;;;;;;;;;ACxxBA;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,8BAA8B;AAC9B;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,osBAAosB,0BAA0B;AACzuB,aAAa,gcAAgc,EAAE;AAC/c;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,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,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,eAAe,gBAAgB,gBAAgB,sBAAsB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,gIAAgI,6BAA6B,gBAAgB,iBAAiB,QAAQ,EAAE,SAAS,gBAAgB,yBAAyB,4CAA4C,UAAU,EAAE,UAAU,4CAA4C,UAAU,eAAe,wDAAwD,GAAG,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,wEAAwE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,gBAAgB,UAAU,8BAA8B,8BAA8B,gBAAgB,8BAA8B,0DAA0D,8BAA8B,gBAAgB,8BAA8B,GAAG,UAAU,EAAE,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,oBAAoB,gBAAgB,oBAAoB,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;AAC9hH,iBAAiB,iEAAiE;AAClF;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,+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;;;;;;;;;;;ACv7BA;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,8nCAA8nC;AACzoC,aAAa,6uBAA6uB;AAC1vB;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;AACA,4BAA4B,gFAAgF;AAC5G;AACA;AACA,4BAA4B,kFAAkF;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,wDAAwD;AAC/E;AACA;AACA;;AAEA,uBAAuB,qDAAqD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;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,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,kFAAkF,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,6OAA6O,EAAE,uBAAuB,iCAAiC,oNAAoN,4BAA4B,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,6BAA6B,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,8BAA8B,UAAU,EAAE,UAAU,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,sFAAsF,EAAE,oCAAoC,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,iDAAiD,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,EAAE,mBAAmB,gBAAgB,mBAAmB,EAAE,SAAS,gBAAgB,SAAS,EAAE,SAAS,8GAA8G,MAAM,aAAa,MAAM,aAAa,MAAM,aAAa,aAAa,aAAa,aAAa,GAAG,oCAAoC,kHAAkH,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,gBAAgB,cAAc,EAAE,UAAU,EAAE,WAAW,gBAAgB,WAAW,gBAAgB,UAAU,0DAA0D,gPAAgP,EAAE,gPAAgP,EAAE,gPAAgP,EAAE,WAAW,EAAE,0PAA0P,EAAE,WAAW,EAAE,0PAA0P,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,wEAAwE,WAAW,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,sDAAsD,aAAa,aAAa,aAAa,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACv6H,iBAAiB,yNAAyN;AAC1O;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,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,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,sKAAsK,uNAAuN,yBAAyB,wHAAwH,eAAe,cAAc,mFAAmF,qBAAqB,yCAAyC,4IAA4I;AACtoC,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;;;;;;;;;;;AC55BA;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,8BAA8B;AAC9B;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;A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E,KAfA;EAgBbC,QAAQ,EAAE,KAhBG;;EAkBb;AACF;AACA;AACA;AACA;AACA;AACA;EACEha,UAAU,EAAE,6CAzBC;;EA2Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEia,QAAQ,EAAE,CAxCG;;EA0Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEV,aAAa,EAAE,QAtDF;;EAwDb;AACF;AACA;AACA;AACA;AACA;AACA;EACEW,WAAW,EAAE,IA/DA;;EAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEnP,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;EACE0a,gBAAgB,EAAE,KAtGL;;EAwGb;AACF;AACA;AACA;AACA;EACEC,mBAAmB,EAAEnZ,SA7GR;;EA+Gb;EACAG,SAAS,EAAE;IACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiZ,cAAc,EAAE,CAbP;;IAeT;AACJ;AACA;AACA;AACA;AACA;AACA;IACIhZ,UAAU,EAAE,IAtBH;;IAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiZ,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;IACIhQ,KAAK,EAAE,OA7DE;IA8DT;IACA;IACA3I,OAAO,EAAE,EAhEA;;IAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI4Y,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;IACIrZ,KAAK,EAAE,GA7CC;;IA+CR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EAtDA;;IAwDR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIqZ,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;QACLxc,UAAU,EAAE,KAAKkc,iBADZ;QAELO,QAAQ,EAAE,KAAKR,eAFV;QAGLS,UAAU,EAAE,KAAKP;MAHZ,CAAP;IAKD,CA9RO;IA+RRQ,QAAQ,EAAE,oBAAY;MACpB,OAAO;QACL3c,UAAU,EAAE,KAAK8b,cADZ;QAELW,QAAQ,EAAE,KAAKZ,YAFV;QAGLa,UAAU,EAAE,KAAKX;MAHZ,CAAP;IAKD,CArSO;IAsSRa,SAAS,EAAE,qBAAY;MACrB,OAAO;QACL5c,UAAU,EAAE,KAAK2b,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,EAAExc;EAnIL,CAhgBM;;EAsoBb;EACAyc,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;IACIjc,KAAK,EAAE,GAnCA;;IAqCP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EA5CD;;IA8CP;AACJ;AACA;AACA;AAC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CA;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;;;;;;;;;;;;;;;;;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/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/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/knuts/source/priv/atlantica/mermaid/src/diagrams/class/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/er/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/flowchart/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/gantt/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/git/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/info/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/pie/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/requirement/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/sequence/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/state/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/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,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.setTitle(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,48],$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=[1,44],$Ve=[30,45,46],$Vf=[4,6,9,11,23,25,27,29,30,48],$Vg=[41,42,43,44],$Vh=[22,36],$Vi=[1,62];\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,\"attribute\":31,\"attributeType\":32,\"attributeName\":33,\"attributeKeyType\":34,\"attributeComment\":35,\"ATTRIBUTE_WORD\":36,\"ATTRIBUTE_KEY\":37,\"COMMENT\":38,\"cardinality\":39,\"relType\":40,\"ZERO_OR_ONE\":41,\"ZERO_OR_MORE\":42,\"ONE_OR_MORE\":43,\"ONLY_ONE\":44,\"NON_IDENTIFYING\":45,\"IDENTIFYING\":46,\"WORD\":47,\"open_directive\":48,\"type_directive\":49,\"arg_directive\":50,\"close_directive\":51,\"$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\",36:\"ATTRIBUTE_WORD\",37:\"ATTRIBUTE_KEY\",38:\"COMMENT\",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\"},\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],[21,1],[21,2],[31,2],[31,3],[31,3],[31,4],[32,1],[33,1],[34,1],[35,1],[18,3],[39,1],[39,1],[39,1],[39,1],[40,1],[40,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.setTitle(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]]; \nbreak;\ncase 22:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 23:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 24:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 25:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 26:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 27: case 28: case 29:\n this.$=$$[$0]; \nbreak;\ncase 30:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 31:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 32:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 33:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 34:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 35:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 36:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 37:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 38:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 39:\n this.$ = $$[$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', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,48:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,48:$V1},{13:8,49:[1,9]},{49:[2,40]},{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,48:$V1},{1:[2,2]},{14:22,15:[1,23],51:$V8},o([15,51],[2,41]),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,48:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:26,39:28,20:[1,27],41:$V9,42:$Va,43:$Vb,44:$Vc}),{24:[1,33]},{26:[1,34]},{28:[1,35]},o($V2,[2,19]),o([6,9,11,15,20,23,25,27,29,30,41,42,43,44,48],[2,20]),{11:[1,36]},{16:37,50:[1,38]},{11:[2,43]},o($V2,[2,5]),{17:39,30:$V7},{21:40,22:[1,41],31:42,32:43,36:$Vd},{40:45,45:[1,46],46:[1,47]},o($Ve,[2,32]),o($Ve,[2,33]),o($Ve,[2,34]),o($Ve,[2,35]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($Vf,[2,9]),{14:48,51:$V8},{51:[2,42]},{15:[1,49]},{22:[1,50]},o($V2,[2,14]),{21:51,22:[2,21],31:42,32:43,36:$Vd},{33:52,36:[1,53]},{36:[2,27]},{39:54,41:$V9,42:$Va,43:$Vb,44:$Vc},o($Vg,[2,36]),o($Vg,[2,37]),{11:[1,55]},{19:56,30:[1,58],47:[1,57]},o($V2,[2,13]),{22:[2,22]},o($Vh,[2,23],{34:59,35:60,37:[1,61],38:$Vi}),o([22,36,37,38],[2,28]),{30:[2,31]},o($Vf,[2,10]),o($V2,[2,12]),o($V2,[2,38]),o($V2,[2,39]),o($Vh,[2,24],{35:63,38:$Vi}),o($Vh,[2,25]),o([22,36,38],[2,29]),o($Vh,[2,30]),o($Vh,[2,26])],\ndefaultActions: {5:[2,40],7:[2,2],24:[2,43],38:[2,42],44:[2,27],51:[2,22],54:[2,31]},\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 48; \nbreak;\ncase 8: this.begin('type_directive'); return 49; \nbreak;\ncase 9: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 10: this.popState(); this.popState(); return 51; \nbreak;\ncase 11:return 50;\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 47;\nbreak;\ncase 18:return 4;\nbreak;\ncase 19: this.begin(\"block\"); return 20; \nbreak;\ncase 20:/* skip whitespace in block */\nbreak;\ncase 21:return 37\nbreak;\ncase 22:return 36\nbreak;\ncase 23:return 38;\nbreak;\ncase 24:/* nothing */\nbreak;\ncase 25: this.popState(); return 22; \nbreak;\ncase 26:return yy_.yytext[0];\nbreak;\ncase 27:return 41;\nbreak;\ncase 28:return 42;\nbreak;\ncase 29:return 43;\nbreak;\ncase 30:return 44;\nbreak;\ncase 31:return 41;\nbreak;\ncase 32:return 42;\nbreak;\ncase 33:return 43;\nbreak;\ncase 34:return 45;\nbreak;\ncase 35:return 46;\nbreak;\ncase 36:return 45;\nbreak;\ncase 37:return 45;\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,/^(?:(?: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: {\"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.setTitle(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.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setTitle(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,19,21,23,24,26,28,31,34,47,51],$V8=[8,14,19,21,23,24,26,28,31,34],$V9=[8,13,14,19,21,23,24,26,28,31,34],$Va=[1,26],$Vb=[6,8,14,47,51],$Vc=[8,14,51],$Vd=[1,61],$Ve=[1,62],$Vf=[1,63],$Vg=[8,14,32,38,39,51];\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,\"acc_title\":19,\"acc_title_value\":20,\"acc_descr\":21,\"acc_descr_value\":22,\"acc_descr_multiline_value\":23,\"section\":24,\"branchStatement\":25,\"CHECKOUT\":26,\"ID\":27,\"BRANCH\":28,\"ORDER\":29,\"NUM\":30,\"MERGE\":31,\"COMMIT_TAG\":32,\"STR\":33,\"COMMIT\":34,\"commit_arg\":35,\"COMMIT_TYPE\":36,\"commitType\":37,\"COMMIT_ID\":38,\"COMMIT_MSG\":39,\"NORMAL\":40,\"REVERSE\":41,\"HIGHLIGHT\":42,\"openDirective\":43,\"typeDirective\":44,\"closeDirective\":45,\"argDirective\":46,\"open_directive\":47,\"type_directive\":48,\"arg_directive\":49,\"close_directive\":50,\";\":51,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",19:\"acc_title\",20:\"acc_title_value\",21:\"acc_descr\",22:\"acc_descr_value\",23:\"acc_descr_multiline_value\",24:\"section\",26:\"CHECKOUT\",27:\"ID\",28:\"BRANCH\",29:\"ORDER\",30:\"NUM\",31:\"MERGE\",32:\"COMMIT_TAG\",33:\"STR\",34:\"COMMIT\",36:\"COMMIT_TYPE\",38:\"COMMIT_ID\",39:\"COMMIT_MSG\",40:\"NORMAL\",41:\"REVERSE\",42:\"HIGHLIGHT\",47:\"open_directive\",48:\"type_directive\",49:\"arg_directive\",50:\"close_directive\",51:\";\"},\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,2],[16,2],[16,1],[16,1],[16,1],[16,2],[25,2],[25,4],[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],[35,0],[35,1],[37,1],[37,1],[37,1],[5,3],[5,5],[43,1],[44,1],[46,1],[45,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 16:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 17: case 18:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 19:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 21:\nyy.checkout($$[$0])\nbreak;\ncase 22:\nyy.branch($$[$0])\nbreak;\ncase 23:\nyy.branch($$[$0-2], $$[$0])\nbreak;\ncase 24:\nyy.merge($$[$0])\nbreak;\ncase 25:\nyy.merge($$[$0-2], $$[$0])\nbreak;\ncase 26:\nyy.commit($$[$0])\nbreak;\ncase 27:\nyy.commit('','',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 28:\nyy.commit('','',$$[$0],'')\nbreak;\ncase 29:\nyy.commit('','',$$[$0],$$[$0-2])\nbreak;\ncase 30:\nyy.commit('','',$$[$0-2],$$[$0])\nbreak;\ncase 31:\nyy.commit('',$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 32:\nyy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 33:\nyy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 34:\nyy.commit('',$$[$0-2],$$[$0],'')\nbreak;\ncase 35:\nyy.commit('',$$[$0],$$[$0-2],'')\nbreak;\ncase 36:\nyy.commit('',$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 37:\nyy.commit('',$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 38:\nyy.commit('',$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 39:\nyy.commit('',$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 40:\nyy.commit('',$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 41:\nyy.commit('',$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 42:\nyy.commit($$[$0],'',yy.commitType.NORMAL,'')\nbreak;\ncase 43:\nyy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 44:\nyy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 45:\nyy.commit($$[$0-2],'',$$[$0],'')\nbreak;\ncase 46:\nyy.commit($$[$0],'',$$[$0-2],'')\nbreak;\ncase 47:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')\nbreak;\ncase 48:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 49:\nyy.commit($$[$0-4],'',$$[$0-2],$$[$0])\nbreak;\ncase 50:\nyy.commit($$[$0-4],'',$$[$0],$$[$0-2])\nbreak;\ncase 51:\nyy.commit($$[$0-2],'',$$[$0-4],$$[$0])\nbreak;\ncase 52:\nyy.commit($$[$0],'',$$[$0-4],$$[$0-2])\nbreak;\ncase 53:\nyy.commit($$[$0],'',$$[$0-2],$$[$0-4])\nbreak;\ncase 54:\nyy.commit($$[$0-2],'',$$[$0],$$[$0-4])\nbreak;\ncase 55:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],'')\nbreak;\ncase 56:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],'')\nbreak;\ncase 57:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],'')\nbreak;\ncase 58:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],'')\nbreak;\ncase 59:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],'')\nbreak;\ncase 60:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],'')\nbreak;\ncase 61:\nyy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 62:\nyy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 63:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 64:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 65:\nyy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 66:\nyy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 67:\nyy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 68:\nyy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 69:\nyy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 70:\nyy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 71:\nyy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 72:\nyy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 73:\nyy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])\nbreak;\ncase 74:\nyy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])\nbreak;\ncase 75:\nyy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])\nbreak;\ncase 76:\nyy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])\nbreak;\ncase 77:\nyy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])\nbreak;\ncase 78:\nyy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])\nbreak;\ncase 79:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])\nbreak;\ncase 80:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])\nbreak;\ncase 81:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])\nbreak;\ncase 82:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])\nbreak;\ncase 83:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])\nbreak;\ncase 84:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])\nbreak;\ncase 85:\nyy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])\nbreak;\ncase 86:\nyy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])\nbreak;\ncase 87:\nyy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])\nbreak;\ncase 88:\nyy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])\nbreak;\ncase 89:\nyy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])\nbreak;\ncase 90:\nyy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])\nbreak;\ncase 91:\nthis.$ = \"\"\nbreak;\ncase 92:\nthis.$=$$[$0]\nbreak;\ncase 93:\n this.$=yy.commitType.NORMAL;\nbreak;\ncase 94:\n this.$=yy.commitType.REVERSE;\nbreak;\ncase 95:\n this.$=yy.commitType.HIGHLIGHT;\nbreak;\ncase 98:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 99:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 100:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 101:\n yy.parseDirective('}%%', 'close_directive', 'gitGraph'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,102]),o($V7,[2,103]),o($V7,[2,104]),{44:17,48:[1,18]},{48:[2,98]},{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],45:24,50:$Va},o([9,50],[2,99]),{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:[1,34],21:[1,35],23:[1,36],24:[1,37],25:38,26:[1,39],28:[1,42],31:[1,41],34:[1,40]},o($V9,[2,8]),o($Vb,[2,96]),{46:43,49:[1,44]},o($Vb,[2,101]),{1:[2,4]},{8:[1,45]},o($V8,[2,11]),{4:46,8:$V1,14:$V2,51:$V4},o($V8,[2,13]),o($Vc,[2,14]),o($Vc,[2,15]),{20:[1,47]},{22:[1,48]},o($Vc,[2,18]),o($Vc,[2,19]),o($Vc,[2,20]),{27:[1,49]},o($Vc,[2,91],{35:50,32:[1,51],33:[1,55],36:[1,52],38:[1,53],39:[1,54]}),{27:[1,56]},{27:[1,57]},{45:58,50:$Va},{50:[2,100]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,16]),o($Vc,[2,17]),o($Vc,[2,21]),o($Vc,[2,26]),{33:[1,59]},{37:60,40:$Vd,41:$Ve,42:$Vf},{33:[1,64]},{33:[1,65]},o($Vc,[2,92]),o($Vc,[2,24],{32:[1,66]}),o($Vc,[2,22],{29:[1,67]}),o($Vb,[2,97]),o($Vc,[2,27],{36:[1,68],38:[1,69],39:[1,70]}),o($Vc,[2,28],{32:[1,71],38:[1,72],39:[1,73]}),o($Vg,[2,93]),o($Vg,[2,94]),o($Vg,[2,95]),o($Vc,[2,31],{32:[1,74],36:[1,75],39:[1,76]}),o($Vc,[2,42],{32:[1,77],36:[1,78],38:[1,79]}),{33:[1,80]},{30:[1,81]},{37:82,40:$Vd,41:$Ve,42:$Vf},{33:[1,83]},{33:[1,84]},{33:[1,85]},{33:[1,86]},{33:[1,87]},{33:[1,88]},{37:89,40:$Vd,41:$Ve,42:$Vf},{33:[1,90]},{33:[1,91]},{37:92,40:$Vd,41:$Ve,42:$Vf},{33:[1,93]},o($Vc,[2,25]),o($Vc,[2,23]),o($Vc,[2,29],{38:[1,94],39:[1,95]}),o($Vc,[2,33],{36:[1,96],39:[1,97]}),o($Vc,[2,43],{36:[1,98],38:[1,99]}),o($Vc,[2,30],{38:[1,100],39:[1,101]}),o($Vc,[2,35],{32:[1,102],39:[1,103]}),o($Vc,[2,46],{32:[1,104],38:[1,105]}),o($Vc,[2,32],{36:[1,106],39:[1,107]}),o($Vc,[2,34],{32:[1,108],39:[1,109]}),o($Vc,[2,47],{32:[1,111],36:[1,110]}),o($Vc,[2,44],{36:[1,112],38:[1,113]}),o($Vc,[2,45],{32:[1,114],38:[1,115]}),o($Vc,[2,48],{32:[1,117],36:[1,116]}),{33:[1,118]},{33:[1,119]},{37:120,40:$Vd,41:$Ve,42:$Vf},{33:[1,121]},{37:122,40:$Vd,41:$Ve,42:$Vf},{33:[1,123]},{33:[1,124]},{33:[1,125]},{33:[1,126]},{33:[1,127]},{33:[1,128]},{33:[1,129]},{37:130,40:$Vd,41:$Ve,42:$Vf},{33:[1,131]},{33:[1,132]},{33:[1,133]},{37:134,40:$Vd,41:$Ve,42:$Vf},{33:[1,135]},{37:136,40:$Vd,41:$Ve,42:$Vf},{33:[1,137]},{33:[1,138]},{33:[1,139]},{37:140,40:$Vd,41:$Ve,42:$Vf},{33:[1,141]},o($Vc,[2,40],{39:[1,142]}),o($Vc,[2,53],{38:[1,143]}),o($Vc,[2,41],{39:[1,144]}),o($Vc,[2,64],{36:[1,145]}),o($Vc,[2,54],{38:[1,146]}),o($Vc,[2,63],{36:[1,147]}),o($Vc,[2,39],{39:[1,148]}),o($Vc,[2,52],{38:[1,149]}),o($Vc,[2,38],{39:[1,150]}),o($Vc,[2,58],{32:[1,151]}),o($Vc,[2,51],{38:[1,152]}),o($Vc,[2,57],{32:[1,153]}),o($Vc,[2,37],{39:[1,154]}),o($Vc,[2,65],{36:[1,155]}),o($Vc,[2,36],{39:[1,156]}),o($Vc,[2,59],{32:[1,157]}),o($Vc,[2,60],{32:[1,158]}),o($Vc,[2,66],{36:[1,159]}),o($Vc,[2,50],{38:[1,160]}),o($Vc,[2,61],{36:[1,161]}),o($Vc,[2,49],{38:[1,162]}),o($Vc,[2,55],{32:[1,163]}),o($Vc,[2,56],{32:[1,164]}),o($Vc,[2,62],{36:[1,165]}),{33:[1,166]},{33:[1,167]},{33:[1,168]},{37:169,40:$Vd,41:$Ve,42:$Vf},{33:[1,170]},{37:171,40:$Vd,41:$Ve,42:$Vf},{33:[1,172]},{33:[1,173]},{33:[1,174]},{33:[1,175]},{33:[1,176]},{33:[1,177]},{33:[1,178]},{37:179,40:$Vd,41:$Ve,42:$Vf},{33:[1,180]},{33:[1,181]},{33:[1,182]},{37:183,40:$Vd,41:$Ve,42:$Vf},{33:[1,184]},{37:185,40:$Vd,41:$Ve,42:$Vf},{33:[1,186]},{33:[1,187]},{33:[1,188]},{37:189,40:$Vd,41:$Ve,42:$Vf},o($Vc,[2,81]),o($Vc,[2,82]),o($Vc,[2,79]),o($Vc,[2,80]),o($Vc,[2,84]),o($Vc,[2,83]),o($Vc,[2,88]),o($Vc,[2,87]),o($Vc,[2,86]),o($Vc,[2,85]),o($Vc,[2,90]),o($Vc,[2,89]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,76]),o($Vc,[2,75]),o($Vc,[2,73]),o($Vc,[2,74]),o($Vc,[2,72]),o($Vc,[2,71]),o($Vc,[2,70]),o($Vc,[2,69]),o($Vc,[2,67]),o($Vc,[2,68])],\ndefaultActions: {9:[2,98],10:[2,1],11:[2,2],19:[2,3],27:[2,4],44:[2,100],45:[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 47; \nbreak;\ncase 1: this.begin('type_directive'); return 48; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 9; \nbreak;\ncase 3: this.popState(); this.popState(); return 50; \nbreak;\ncase 4:return 49;\nbreak;\ncase 5: this.begin(\"acc_title\");return 19; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 21; \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 34;\nbreak;\ncase 18:return 38;\nbreak;\ncase 19:return 36;\nbreak;\ncase 20:return 39;\nbreak;\ncase 21:return 40;\nbreak;\ncase 22:return 41;\nbreak;\ncase 23:return 42;\nbreak;\ncase 24:return 32;\nbreak;\ncase 25:return 28;\nbreak;\ncase 26:return 29;\nbreak;\ncase 27:return 31;\nbreak;\ncase 28:return 26;\nbreak;\ncase 29:return 10;\nbreak;\ncase 30:return 10;\nbreak;\ncase 31:return 9;\nbreak;\ncase 32:return 'CARET'\nbreak;\ncase 33:this.begin(\"options\"); //\nbreak;\ncase 34:this.popState(); // not used anymore in the renderer, fixed for backward compatibility\nbreak;\ncase 35:return 13; //\nbreak;\ncase 36:this.begin(\"string\");\nbreak;\ncase 37:this.popState();\nbreak;\ncase 38:return 33;\nbreak;\ncase 39:return 30;\nbreak;\ncase 40:return 27;\nbreak;\ncase 41: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,/^(?: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\":[34,35],\"inclusive\":false},\"string\":{\"rules\":[37,38],\"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,36,39,40,41],\"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.setPieTitle(this.$); \nbreak;\ncase 11:\n this.$=$$[$0].trim();yy.setTitle(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.setTitle(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,41],$Vn=[1,42],$Vo=[1,43],$Vp=[1,44],$Vq=[1,45],$Vr=[1,46],$Vs=[1,49],$Vt=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,48,49,54,55,56,57,65,75],$Vu=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,49,54,55,56,57,65,75],$Vv=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,48,49,54,55,56,57,65,75],$Vw=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,54,55,56,57,65,75],$Vx=[63,64,65],$Vy=[1,114],$Vz=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,48,49,54,55,56,57,65,75];\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,\"and\":47,\"else\":48,\"note\":49,\"placement\":50,\"text2\":51,\"over\":52,\"actor_pair\":53,\"links\":54,\"link\":55,\"properties\":56,\"details\":57,\"spaceList\":58,\",\":59,\"left_of\":60,\"right_of\":61,\"signaltype\":62,\"+\":63,\"-\":64,\"ACTOR\":65,\"SOLID_OPEN_ARROW\":66,\"DOTTED_OPEN_ARROW\":67,\"SOLID_ARROW\":68,\"DOTTED_ARROW\":69,\"SOLID_CROSS\":70,\"DOTTED_CROSS\":71,\"SOLID_POINT\":72,\"DOTTED_POINT\":73,\"TXT\":74,\"open_directive\":75,\"type_directive\":76,\"arg_directive\":77,\"close_directive\":78,\"$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:\"and\",48:\"else\",49:\"note\",52:\"over\",54:\"links\",55:\"link\",56:\"properties\",57:\"details\",59:\",\",60:\"left_of\",61:\"right_of\",63:\"+\",64:\"-\",65:\"ACTOR\",66:\"SOLID_OPEN_ARROW\",67:\"DOTTED_OPEN_ARROW\",68:\"SOLID_ARROW\",69:\"DOTTED_ARROW\",70:\"SOLID_CROSS\",71:\"DOTTED_CROSS\",72:\"SOLID_POINT\",73:\"DOTTED_POINT\",74:\"TXT\",75:\"open_directive\",76:\"type_directive\",77:\"arg_directive\",78:\"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,1],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[58,2],[58,1],[53,3],[53,1],[50,1],[50,1],[21,5],[21,5],[21,4],[17,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[51,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.setTitle(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 40:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 42:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 43:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 44:\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 45:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 46:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 47:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 48:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 51:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 52:\n this.$ = $$[$0]; \nbreak;\ncase 53:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 54:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 55:\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 56:\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 57:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 58:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 59:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 60:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 61:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 62:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 63:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 64:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 65:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 66:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 67:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 68:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 69:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 70:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 71:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},o([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,49,54,55,56,57,65,75],$V4,{8:11}),{12:12,76:[1,13]},{76:[2,68]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{13:47,14:[1,48],78:$Vs},o([14,78],[2,69]),o($Vt,[2,6]),{6:39,10:50,11:6,16:$V7,17:40,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,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},o($Vt,[2,8]),o($Vt,[2,9]),{17:51,65:$Vr},{17:52,65:$Vr},{5:[1,53]},{5:[1,56],23:[1,54],24:[1,55]},{17:57,65:$Vr},{17:58,65:$Vr},{5:[1,59]},{5:[1,60]},{5:[1,61]},{5:[1,62]},{5:[1,63]},o($Vt,[2,28]),o($Vt,[2,29]),{35:[1,64]},{37:[1,65]},o($Vt,[2,32]),{19:[1,66]},{19:[1,67]},{19:[1,68]},{19:[1,69]},{19:[1,70]},o($Vt,[2,38]),{62:71,66:[1,72],67:[1,73],68:[1,74],69:[1,75],70:[1,76],71:[1,77],72:[1,78],73:[1,79]},{50:80,52:[1,81],60:[1,82],61:[1,83]},{17:84,65:$Vr},{17:85,65:$Vr},{17:86,65:$Vr},{17:87,65:$Vr},o([5,18,59,66,67,68,69,70,71,72,73,74],[2,58]),{5:[1,88]},{15:89,77:[1,90]},{5:[2,71]},o($Vt,[2,7]),{5:[1,92],18:[1,91]},{5:[1,94],18:[1,93]},o($Vt,[2,16]),{5:[1,96],23:[1,95]},{5:[1,97]},o($Vt,[2,20]),{5:[1,98]},{5:[1,99]},o($Vt,[2,23]),o($Vt,[2,24]),o($Vt,[2,25]),o($Vt,[2,26]),o($Vt,[2,27]),o($Vt,[2,30]),o($Vt,[2,31]),o($Vu,$V4,{8:100}),o($Vu,$V4,{8:101}),o($Vu,$V4,{8:102}),o($Vv,$V4,{44:103,8:104}),o($Vw,$V4,{46:105,8:106}),{17:109,63:[1,107],64:[1,108],65:$Vr},o($Vx,[2,59]),o($Vx,[2,60]),o($Vx,[2,61]),o($Vx,[2,62]),o($Vx,[2,63]),o($Vx,[2,64]),o($Vx,[2,65]),o($Vx,[2,66]),{17:110,65:$Vr},{17:112,53:111,65:$Vr},{65:[2,53]},{65:[2,54]},{51:113,74:$Vy},{51:115,74:$Vy},{51:116,74:$Vy},{51:117,74:$Vy},o($Vz,[2,10]),{13:118,78:$Vs},{78:[2,70]},{19:[1,119]},o($Vt,[2,13]),{19:[1,120]},o($Vt,[2,15]),{5:[1,121]},o($Vt,[2,18]),o($Vt,[2,19]),o($Vt,[2,21]),o($Vt,[2,22]),{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,122],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,123],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,124],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{40:[1,125]},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,48:[1,126],49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{40:[1,127]},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,39],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:[1,128],49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{17:129,65:$Vr},{17:130,65:$Vr},{51:131,74:$Vy},{51:132,74:$Vy},{51:133,74:$Vy},{59:[1,134],74:[2,52]},{5:[2,45]},{5:[2,67]},{5:[2,46]},{5:[2,47]},{5:[2,48]},{5:[1,135]},{5:[1,136]},{5:[1,137]},o($Vt,[2,17]),o($Vt,[2,33]),o($Vt,[2,34]),o($Vt,[2,35]),o($Vt,[2,36]),{19:[1,138]},o($Vt,[2,37]),{19:[1,139]},{51:140,74:$Vy},{51:141,74:$Vy},{5:[2,57]},{5:[2,43]},{5:[2,44]},{17:142,65:$Vr},o($Vz,[2,11]),o($Vt,[2,12]),o($Vt,[2,14]),o($Vv,$V4,{8:104,44:143}),o($Vw,$V4,{8:106,46:144}),{5:[2,55]},{5:[2,56]},{74:[2,51]},{40:[2,42]},{40:[2,40]}],\ndefaultActions: {7:[2,68],8:[2,1],9:[2,2],10:[2,3],49:[2,71],82:[2,53],83:[2,54],90:[2,70],113:[2,45],114:[2,67],115:[2,46],116:[2,47],117:[2,48],131:[2,57],132:[2,43],133:[2,44],140:[2,55],141:[2,56],142:[2,51],143:[2,42],144:[2,40]},\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 75; \nbreak;\ncase 1: this.begin('type_directive'); return 76; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 78; \nbreak;\ncase 4:return 77;\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 65; \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 48; \nbreak;\ncase 22: this.begin('LINE'); return 45; \nbreak;\ncase 23: this.begin('LINE'); return 47; \nbreak;\ncase 24: this.popState(); return 19; \nbreak;\ncase 25:return 40;\nbreak;\ncase 26:return 60;\nbreak;\ncase 27:return 61;\nbreak;\ncase 28:return 54;\nbreak;\ncase 29:return 55;\nbreak;\ncase 30:return 56;\nbreak;\ncase 31:return 57;\nbreak;\ncase 32:return 52;\nbreak;\ncase 33:return 49;\nbreak;\ncase 34: this.begin('ID'); return 25; \nbreak;\ncase 35: this.begin('ID'); return 26; \nbreak;\ncase 36:return 32;\nbreak;\ncase 37:return 33;\nbreak;\ncase 38: this.begin(\"acc_title\");return 34; \nbreak;\ncase 39: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 40: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 41: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 42: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 43: this.popState(); \nbreak;\ncase 44:return \"acc_descr_multiline_value\";\nbreak;\ncase 45:return 7;\nbreak;\ncase 46:return 22;\nbreak;\ncase 47:return 24;\nbreak;\ncase 48:return 59;\nbreak;\ncase 49:return 5;\nbreak;\ncase 50: yy_.yytext = yy_.yytext.trim(); return 65; \nbreak;\ncase 51:return 68;\nbreak;\ncase 52:return 69;\nbreak;\ncase 53:return 66;\nbreak;\ncase 54:return 67;\nbreak;\ncase 55:return 70;\nbreak;\ncase 56:return 71;\nbreak;\ncase 57:return 72;\nbreak;\ncase 58:return 73;\nbreak;\ncase 59:return 74;\nbreak;\ncase 60:return 63;\nbreak;\ncase 61:return 64;\nbreak;\ncase 62:return 5;\nbreak;\ncase 63: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,/^(?:(?:[:]?(?: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\":[43,44],\"inclusive\":false},\"acc_descr\":{\"rules\":[41],\"inclusive\":false},\"acc_title\":{\"rules\":[39],\"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,24],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,42,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],\"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.setTitle(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.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 12:\n this.$=$$[$0].trim();yy.setTitle(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 getTitle 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.getTitle();\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 description = '';\nconst sanitizeText = (txt) => _sanitizeText(txt, getConfig());\n\nexport const clear = function () {\n title = '';\n description = '';\n};\n\nexport const setTitle = function (txt) {\n title = sanitizeText(txt).replace(/^\\s+/g, '');\n};\n\nexport const getTitle = function () {\n return title;\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 default {\n setTitle,\n getTitle,\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 themeVaraibles\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 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 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 // 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 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 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 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 },\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 { 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 setTitle,\n getTitle,\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 console.log(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 setTitle,\n getTitle,\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, configureSvgSize } 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 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 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 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 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 demoand 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.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 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';\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};\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 ? '#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 /* 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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 '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 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":["addSVGAccessibilityFields","yy_parser","svg","id","insert","title_string","getTitle","description","getAccDescription","attr","text","sanitizeText","_sanitizeText","getConfig","title","txt","clear","setTitle","replace","setAccDescription","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","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","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","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","keyify","obj","prefix","reduce","configKeys","configApi","common","mermaidAPI","commonClear","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","console","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","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","replaceAll","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","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","accDescription","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","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","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","newCommit","nextCommit","prettyPrint","getCommitsArray","mainBranch","getBranchesAsObjArray","branchesArray","values","branchConfig","getBranches","getCommits","getCurrentBranch","getHead","REVERSE","HIGHLIGHT","db","gitGraphParser","allCommitsDict","branchNum","branchPos","commitPos","lanes","maxPos","drawText","drawCommits","modifyGraph","gitGraphConfig","gBullets","gLabels","sortedKeys","typeClass","circle2","labelBkg","hole","tagBbox","h2","ly","hasOverlappingCommits","commit1","commit2","allCommits","commit1Pos","commit2Pos","overlappingComits","findLane","y2","_depth","candidate","ok","drawArrow","overlappingCommits","arc","arc2","colorClassNum","lineDef","lineY","arrow","drawArrows","gArrows","drawBranches","bkg","branchLabel","commitLabelColor","commitLabelBackground","tagLabelColor","tagLabelBackground","tagLabelBorder","primaryColor","setMessage","getMessage","setInfo","inf","getInfo","infoParser","showData","setShowData","toggle","getShowData","cleanupValue","setPieTitle","sanitizedText","getPieTitle","scaleOrdinal","d3pie","pieData","pieParser","margin","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","diagramTitle","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","getMessages","getActors","getActor","getActorKeys","enableSequenceNumbers","disableSequenceNumbers","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","AUTONUMBER","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","addLinks","actorId","insertLinks","addALink","sep","addProperties","insertProperties","addDetails","innerHTML","details","getActorProperty","setDiagramTitle","getDiagramTitle","param","sequenceIndex","step","sequenceIndexStep","visible","sequenceVisible","signalType","loopText","optText","altText","parText","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","round","curr","boundMessage","lines","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","textConf","wrapLabel","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertComputerIcon","insertDatabaseIcon","insertClockIcon","calculateLoopBounds","insertArrowHead","insertArrowCrossHead","insertArrowFilledHead","insertSequenceNumber","activeEnd","activationData","drawActivation","messagesToDraw","drawLoop","drawBackgroundRect","messageModel","requiredBoxSize","box","actorLines","boxHeight","boxWidth","extraVertForTitle","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","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","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","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","bind","time","initThrowsErrors","parseError","arguments","mermaid","sequenceConfig","callback","Node","ganttConfig","idGeneratior","initIdGeneratior","next","entityDecode","detectInit","svgCode","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","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","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,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,2zBAA2zB;AACt0B,aAAa,ueAAue;AACpf;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,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,uEAAuE,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,iHAAiH,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;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,2GAA2G,mCAAmC,cAAc,uCAAuC,aAAa;AACzkB,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;;;;;;;;;;;ACxxBA;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;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AAoS,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,8BAA8B;AAC9B;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,osBAAosB,0BAA0B;AACzuB,aAAa,gcAAgc,EAAE;AAC/c;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,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,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,eAAe,gBAAgB,gBAAgB,sBAAsB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,gIAAgI,6BAA6B,gBAAgB,iBAAiB,QAAQ,EAAE,SAAS,gBAAgB,yBAAyB,4CAA4C,UAAU,EAAE,UAAU,4CAA4C,UAAU,eAAe,wDAAwD,GAAG,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,wEAAwE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,gBAAgB,UAAU,8BAA8B,8BAA8B,gBAAgB,8BAA8B,0DAA0D,8BAA8B,gBAAgB,8BAA8B,GAAG,UAAU,EAAE,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,oBAAoB,gBAAgB,oBAAoB,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;AAC9hH,iBAAiB,iEAAiE;AAClF;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,+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;;;;;;;;;;;ACv7BA;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,8nCAA8nC;AACzoC,aAAa,6uBAA6uB;AAC1vB;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;AACA,4BAA4B,gFAAgF;AAC5G;AACA;AACA,4BAA4B,kFAAkF;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,wDAAwD;AAC/E;AACA;AACA;;AAEA,uBAAuB,qDAAqD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;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,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,kFAAkF,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,6OAA6O,EAAE,uBAAuB,iCAAiC,oNAAoN,4BAA4B,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,6BAA6B,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,8BAA8B,UAAU,EAAE,UAAU,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,sFAAsF,EAAE,oCAAoC,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,iDAAiD,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,EAAE,mBAAmB,gBAAgB,mBAAmB,EAAE,SAAS,gBAAgB,SAAS,EAAE,SAAS,8GAA8G,MAAM,aAAa,MAAM,aAAa,MAAM,aAAa,aAAa,aAAa,aAAa,GAAG,oCAAoC,kHAAkH,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,gBAAgB,cAAc,EAAE,UAAU,EAAE,WAAW,gBAAgB,WAAW,gBAAgB,UAAU,0DAA0D,gPAAgP,EAAE,gPAAgP,EAAE,gPAAgP,EAAE,WAAW,EAAE,0PAA0P,EAAE,WAAW,EAAE,0PAA0P,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,wEAAwE,WAAW,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,sDAAsD,aAAa,aAAa,aAAa,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACv6H,iBAAiB,yNAAyN;AAC1O;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,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,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,sKAAsK,uNAAuN,yBAAyB,wHAAwH,eAAe,cAAc,mFAAmF,qBAAqB,yCAAyC,4IAA4I;AACtoC,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;;;;;;;;;;;AC55BA;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,8BAA8B;AAC9B;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;A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E,KAfA;EAgBbC,QAAQ,EAAE,KAhBG;;EAkBb;AACF;AACA;AACA;AACA;AACA;AACA;EACEha,UAAU,EAAE,6CAzBC;;EA2Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEia,QAAQ,EAAE,CAxCG;;EA0Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEV,aAAa,EAAE,QAtDF;;EAwDb;AACF;AACA;AACA;AACA;AACA;AACA;EACEW,WAAW,EAAE,IA/DA;;EAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEnP,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;EACE0a,gBAAgB,EAAE,KAtGL;;EAwGb;AACF;AACA;AACA;AACA;EACEC,mBAAmB,EAAEnZ,SA7GR;;EA+Gb;EACAG,SAAS,EAAE;IACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiZ,cAAc,EAAE,CAbP;;IAeT;AACJ;AACA;AACA;AACA;AACA;AACA;IACIhZ,UAAU,EAAE,IAtBH;;IAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiZ,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;IACIhQ,KAAK,EAAE,OA7DE;IA8DT;IACA;IACA3I,OAAO,EAAE,EAhEA;;IAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI4Y,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;IACIrZ,KAAK,EAAE,GA7CC;;IA+CR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EAtDA;;IAwDR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIqZ,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;QACLxc,UAAU,EAAE,KAAKkc,iBADZ;QAELO,QAAQ,EAAE,KAAKR,eAFV;QAGLS,UAAU,EAAE,KAAKP;MAHZ,CAAP;IAKD,CA9RO;IA+RRQ,QAAQ,EAAE,oBAAY;MACpB,OAAO;QACL3c,UAAU,EAAE,KAAK8b,cADZ;QAELW,QAAQ,EAAE,KAAKZ,YAFV;QAGLa,UAAU,EAAE,KAAKX;MAHZ,CAAP;IAKD,CArSO;IAsSRa,SAAS,EAAE,qBAAY;MACrB,OAAO;QACL5c,UAAU,EAAE,KAAK2b,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,EAAExc;EAnIL,CAhgBM;;EAsoBb;EACAyc,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;IACIjc,KAAK,EAAE,GAnCA;;IAqCP;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EA5CD;;IA8CP;AACJ;AACA;AACA;AAC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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;;;;;;;;;;;;;;;;;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/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/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/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,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.setTitle(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,48],$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=[1,44],$Ve=[30,45,46],$Vf=[4,6,9,11,23,25,27,29,30,48],$Vg=[41,42,43,44],$Vh=[22,36],$Vi=[1,62];\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,\"attribute\":31,\"attributeType\":32,\"attributeName\":33,\"attributeKeyType\":34,\"attributeComment\":35,\"ATTRIBUTE_WORD\":36,\"ATTRIBUTE_KEY\":37,\"COMMENT\":38,\"cardinality\":39,\"relType\":40,\"ZERO_OR_ONE\":41,\"ZERO_OR_MORE\":42,\"ONE_OR_MORE\":43,\"ONLY_ONE\":44,\"NON_IDENTIFYING\":45,\"IDENTIFYING\":46,\"WORD\":47,\"open_directive\":48,\"type_directive\":49,\"arg_directive\":50,\"close_directive\":51,\"$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\",36:\"ATTRIBUTE_WORD\",37:\"ATTRIBUTE_KEY\",38:\"COMMENT\",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\"},\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],[21,1],[21,2],[31,2],[31,3],[31,3],[31,4],[32,1],[33,1],[34,1],[35,1],[18,3],[39,1],[39,1],[39,1],[39,1],[40,1],[40,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.setTitle(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]]; \nbreak;\ncase 22:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 23:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 24:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 25:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 26:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 27: case 28: case 29:\n this.$=$$[$0]; \nbreak;\ncase 30:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 31:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 32:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 33:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 34:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 35:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 36:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 37:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 38:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 39:\n this.$ = $$[$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', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,48:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,48:$V1},{13:8,49:[1,9]},{49:[2,40]},{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,48:$V1},{1:[2,2]},{14:22,15:[1,23],51:$V8},o([15,51],[2,41]),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,48:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:26,39:28,20:[1,27],41:$V9,42:$Va,43:$Vb,44:$Vc}),{24:[1,33]},{26:[1,34]},{28:[1,35]},o($V2,[2,19]),o([6,9,11,15,20,23,25,27,29,30,41,42,43,44,48],[2,20]),{11:[1,36]},{16:37,50:[1,38]},{11:[2,43]},o($V2,[2,5]),{17:39,30:$V7},{21:40,22:[1,41],31:42,32:43,36:$Vd},{40:45,45:[1,46],46:[1,47]},o($Ve,[2,32]),o($Ve,[2,33]),o($Ve,[2,34]),o($Ve,[2,35]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($Vf,[2,9]),{14:48,51:$V8},{51:[2,42]},{15:[1,49]},{22:[1,50]},o($V2,[2,14]),{21:51,22:[2,21],31:42,32:43,36:$Vd},{33:52,36:[1,53]},{36:[2,27]},{39:54,41:$V9,42:$Va,43:$Vb,44:$Vc},o($Vg,[2,36]),o($Vg,[2,37]),{11:[1,55]},{19:56,30:[1,58],47:[1,57]},o($V2,[2,13]),{22:[2,22]},o($Vh,[2,23],{34:59,35:60,37:[1,61],38:$Vi}),o([22,36,37,38],[2,28]),{30:[2,31]},o($Vf,[2,10]),o($V2,[2,12]),o($V2,[2,38]),o($V2,[2,39]),o($Vh,[2,24],{35:63,38:$Vi}),o($Vh,[2,25]),o([22,36,38],[2,29]),o($Vh,[2,30]),o($Vh,[2,26])],\ndefaultActions: {5:[2,40],7:[2,2],24:[2,43],38:[2,42],44:[2,27],51:[2,22],54:[2,31]},\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 48; \nbreak;\ncase 8: this.begin('type_directive'); return 49; \nbreak;\ncase 9: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 10: this.popState(); this.popState(); return 51; \nbreak;\ncase 11:return 50;\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 47;\nbreak;\ncase 18:return 4;\nbreak;\ncase 19: this.begin(\"block\"); return 20; \nbreak;\ncase 20:/* skip whitespace in block */\nbreak;\ncase 21:return 37\nbreak;\ncase 22:return 36\nbreak;\ncase 23:return 38;\nbreak;\ncase 24:/* nothing */\nbreak;\ncase 25: this.popState(); return 22; \nbreak;\ncase 26:return yy_.yytext[0];\nbreak;\ncase 27:return 41;\nbreak;\ncase 28:return 42;\nbreak;\ncase 29:return 43;\nbreak;\ncase 30:return 44;\nbreak;\ncase 31:return 41;\nbreak;\ncase 32:return 42;\nbreak;\ncase 33:return 43;\nbreak;\ncase 34:return 45;\nbreak;\ncase 35:return 46;\nbreak;\ncase 36:return 45;\nbreak;\ncase 37:return 45;\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,/^(?:(?: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: {\"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.setTitle(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.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setTitle(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,19,21,23,24,26,28,31,34,47,51],$V8=[8,14,19,21,23,24,26,28,31,34],$V9=[8,13,14,19,21,23,24,26,28,31,34],$Va=[1,26],$Vb=[6,8,14,47,51],$Vc=[8,14,51],$Vd=[1,61],$Ve=[1,62],$Vf=[1,63],$Vg=[8,14,32,38,39,51];\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,\"acc_title\":19,\"acc_title_value\":20,\"acc_descr\":21,\"acc_descr_value\":22,\"acc_descr_multiline_value\":23,\"section\":24,\"branchStatement\":25,\"CHECKOUT\":26,\"ID\":27,\"BRANCH\":28,\"ORDER\":29,\"NUM\":30,\"MERGE\":31,\"COMMIT_TAG\":32,\"STR\":33,\"COMMIT\":34,\"commit_arg\":35,\"COMMIT_TYPE\":36,\"commitType\":37,\"COMMIT_ID\":38,\"COMMIT_MSG\":39,\"NORMAL\":40,\"REVERSE\":41,\"HIGHLIGHT\":42,\"openDirective\":43,\"typeDirective\":44,\"closeDirective\":45,\"argDirective\":46,\"open_directive\":47,\"type_directive\":48,\"arg_directive\":49,\"close_directive\":50,\";\":51,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",19:\"acc_title\",20:\"acc_title_value\",21:\"acc_descr\",22:\"acc_descr_value\",23:\"acc_descr_multiline_value\",24:\"section\",26:\"CHECKOUT\",27:\"ID\",28:\"BRANCH\",29:\"ORDER\",30:\"NUM\",31:\"MERGE\",32:\"COMMIT_TAG\",33:\"STR\",34:\"COMMIT\",36:\"COMMIT_TYPE\",38:\"COMMIT_ID\",39:\"COMMIT_MSG\",40:\"NORMAL\",41:\"REVERSE\",42:\"HIGHLIGHT\",47:\"open_directive\",48:\"type_directive\",49:\"arg_directive\",50:\"close_directive\",51:\";\"},\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,2],[16,2],[16,1],[16,1],[16,1],[16,2],[25,2],[25,4],[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],[35,0],[35,1],[37,1],[37,1],[37,1],[5,3],[5,5],[43,1],[44,1],[46,1],[45,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 16:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 17: case 18:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 19:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 21:\nyy.checkout($$[$0])\nbreak;\ncase 22:\nyy.branch($$[$0])\nbreak;\ncase 23:\nyy.branch($$[$0-2], $$[$0])\nbreak;\ncase 24:\nyy.merge($$[$0])\nbreak;\ncase 25:\nyy.merge($$[$0-2], $$[$0])\nbreak;\ncase 26:\nyy.commit($$[$0])\nbreak;\ncase 27:\nyy.commit('','',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 28:\nyy.commit('','',$$[$0],'')\nbreak;\ncase 29:\nyy.commit('','',$$[$0],$$[$0-2])\nbreak;\ncase 30:\nyy.commit('','',$$[$0-2],$$[$0])\nbreak;\ncase 31:\nyy.commit('',$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 32:\nyy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 33:\nyy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 34:\nyy.commit('',$$[$0-2],$$[$0],'')\nbreak;\ncase 35:\nyy.commit('',$$[$0],$$[$0-2],'')\nbreak;\ncase 36:\nyy.commit('',$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 37:\nyy.commit('',$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 38:\nyy.commit('',$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 39:\nyy.commit('',$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 40:\nyy.commit('',$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 41:\nyy.commit('',$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 42:\nyy.commit($$[$0],'',yy.commitType.NORMAL,'')\nbreak;\ncase 43:\nyy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 44:\nyy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 45:\nyy.commit($$[$0-2],'',$$[$0],'')\nbreak;\ncase 46:\nyy.commit($$[$0],'',$$[$0-2],'')\nbreak;\ncase 47:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')\nbreak;\ncase 48:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 49:\nyy.commit($$[$0-4],'',$$[$0-2],$$[$0])\nbreak;\ncase 50:\nyy.commit($$[$0-4],'',$$[$0],$$[$0-2])\nbreak;\ncase 51:\nyy.commit($$[$0-2],'',$$[$0-4],$$[$0])\nbreak;\ncase 52:\nyy.commit($$[$0],'',$$[$0-4],$$[$0-2])\nbreak;\ncase 53:\nyy.commit($$[$0],'',$$[$0-2],$$[$0-4])\nbreak;\ncase 54:\nyy.commit($$[$0-2],'',$$[$0],$$[$0-4])\nbreak;\ncase 55:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],'')\nbreak;\ncase 56:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],'')\nbreak;\ncase 57:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],'')\nbreak;\ncase 58:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],'')\nbreak;\ncase 59:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],'')\nbreak;\ncase 60:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],'')\nbreak;\ncase 61:\nyy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 62:\nyy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 63:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 64:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 65:\nyy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 66:\nyy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 67:\nyy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 68:\nyy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 69:\nyy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 70:\nyy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 71:\nyy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 72:\nyy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 73:\nyy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])\nbreak;\ncase 74:\nyy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])\nbreak;\ncase 75:\nyy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])\nbreak;\ncase 76:\nyy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])\nbreak;\ncase 77:\nyy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])\nbreak;\ncase 78:\nyy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])\nbreak;\ncase 79:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])\nbreak;\ncase 80:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])\nbreak;\ncase 81:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])\nbreak;\ncase 82:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])\nbreak;\ncase 83:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])\nbreak;\ncase 84:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])\nbreak;\ncase 85:\nyy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])\nbreak;\ncase 86:\nyy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])\nbreak;\ncase 87:\nyy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])\nbreak;\ncase 88:\nyy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])\nbreak;\ncase 89:\nyy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])\nbreak;\ncase 90:\nyy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])\nbreak;\ncase 91:\nthis.$ = \"\"\nbreak;\ncase 92:\nthis.$=$$[$0]\nbreak;\ncase 93:\n this.$=yy.commitType.NORMAL;\nbreak;\ncase 94:\n this.$=yy.commitType.REVERSE;\nbreak;\ncase 95:\n this.$=yy.commitType.HIGHLIGHT;\nbreak;\ncase 98:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 99:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 100:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 101:\n yy.parseDirective('}%%', 'close_directive', 'gitGraph'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,102]),o($V7,[2,103]),o($V7,[2,104]),{44:17,48:[1,18]},{48:[2,98]},{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],45:24,50:$Va},o([9,50],[2,99]),{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:[1,34],21:[1,35],23:[1,36],24:[1,37],25:38,26:[1,39],28:[1,42],31:[1,41],34:[1,40]},o($V9,[2,8]),o($Vb,[2,96]),{46:43,49:[1,44]},o($Vb,[2,101]),{1:[2,4]},{8:[1,45]},o($V8,[2,11]),{4:46,8:$V1,14:$V2,51:$V4},o($V8,[2,13]),o($Vc,[2,14]),o($Vc,[2,15]),{20:[1,47]},{22:[1,48]},o($Vc,[2,18]),o($Vc,[2,19]),o($Vc,[2,20]),{27:[1,49]},o($Vc,[2,91],{35:50,32:[1,51],33:[1,55],36:[1,52],38:[1,53],39:[1,54]}),{27:[1,56]},{27:[1,57]},{45:58,50:$Va},{50:[2,100]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,16]),o($Vc,[2,17]),o($Vc,[2,21]),o($Vc,[2,26]),{33:[1,59]},{37:60,40:$Vd,41:$Ve,42:$Vf},{33:[1,64]},{33:[1,65]},o($Vc,[2,92]),o($Vc,[2,24],{32:[1,66]}),o($Vc,[2,22],{29:[1,67]}),o($Vb,[2,97]),o($Vc,[2,27],{36:[1,68],38:[1,69],39:[1,70]}),o($Vc,[2,28],{32:[1,71],38:[1,72],39:[1,73]}),o($Vg,[2,93]),o($Vg,[2,94]),o($Vg,[2,95]),o($Vc,[2,31],{32:[1,74],36:[1,75],39:[1,76]}),o($Vc,[2,42],{32:[1,77],36:[1,78],38:[1,79]}),{33:[1,80]},{30:[1,81]},{37:82,40:$Vd,41:$Ve,42:$Vf},{33:[1,83]},{33:[1,84]},{33:[1,85]},{33:[1,86]},{33:[1,87]},{33:[1,88]},{37:89,40:$Vd,41:$Ve,42:$Vf},{33:[1,90]},{33:[1,91]},{37:92,40:$Vd,41:$Ve,42:$Vf},{33:[1,93]},o($Vc,[2,25]),o($Vc,[2,23]),o($Vc,[2,29],{38:[1,94],39:[1,95]}),o($Vc,[2,33],{36:[1,96],39:[1,97]}),o($Vc,[2,43],{36:[1,98],38:[1,99]}),o($Vc,[2,30],{38:[1,100],39:[1,101]}),o($Vc,[2,35],{32:[1,102],39:[1,103]}),o($Vc,[2,46],{32:[1,104],38:[1,105]}),o($Vc,[2,32],{36:[1,106],39:[1,107]}),o($Vc,[2,34],{32:[1,108],39:[1,109]}),o($Vc,[2,47],{32:[1,111],36:[1,110]}),o($Vc,[2,44],{36:[1,112],38:[1,113]}),o($Vc,[2,45],{32:[1,114],38:[1,115]}),o($Vc,[2,48],{32:[1,117],36:[1,116]}),{33:[1,118]},{33:[1,119]},{37:120,40:$Vd,41:$Ve,42:$Vf},{33:[1,121]},{37:122,40:$Vd,41:$Ve,42:$Vf},{33:[1,123]},{33:[1,124]},{33:[1,125]},{33:[1,126]},{33:[1,127]},{33:[1,128]},{33:[1,129]},{37:130,40:$Vd,41:$Ve,42:$Vf},{33:[1,131]},{33:[1,132]},{33:[1,133]},{37:134,40:$Vd,41:$Ve,42:$Vf},{33:[1,135]},{37:136,40:$Vd,41:$Ve,42:$Vf},{33:[1,137]},{33:[1,138]},{33:[1,139]},{37:140,40:$Vd,41:$Ve,42:$Vf},{33:[1,141]},o($Vc,[2,40],{39:[1,142]}),o($Vc,[2,53],{38:[1,143]}),o($Vc,[2,41],{39:[1,144]}),o($Vc,[2,64],{36:[1,145]}),o($Vc,[2,54],{38:[1,146]}),o($Vc,[2,63],{36:[1,147]}),o($Vc,[2,39],{39:[1,148]}),o($Vc,[2,52],{38:[1,149]}),o($Vc,[2,38],{39:[1,150]}),o($Vc,[2,58],{32:[1,151]}),o($Vc,[2,51],{38:[1,152]}),o($Vc,[2,57],{32:[1,153]}),o($Vc,[2,37],{39:[1,154]}),o($Vc,[2,65],{36:[1,155]}),o($Vc,[2,36],{39:[1,156]}),o($Vc,[2,59],{32:[1,157]}),o($Vc,[2,60],{32:[1,158]}),o($Vc,[2,66],{36:[1,159]}),o($Vc,[2,50],{38:[1,160]}),o($Vc,[2,61],{36:[1,161]}),o($Vc,[2,49],{38:[1,162]}),o($Vc,[2,55],{32:[1,163]}),o($Vc,[2,56],{32:[1,164]}),o($Vc,[2,62],{36:[1,165]}),{33:[1,166]},{33:[1,167]},{33:[1,168]},{37:169,40:$Vd,41:$Ve,42:$Vf},{33:[1,170]},{37:171,40:$Vd,41:$Ve,42:$Vf},{33:[1,172]},{33:[1,173]},{33:[1,174]},{33:[1,175]},{33:[1,176]},{33:[1,177]},{33:[1,178]},{37:179,40:$Vd,41:$Ve,42:$Vf},{33:[1,180]},{33:[1,181]},{33:[1,182]},{37:183,40:$Vd,41:$Ve,42:$Vf},{33:[1,184]},{37:185,40:$Vd,41:$Ve,42:$Vf},{33:[1,186]},{33:[1,187]},{33:[1,188]},{37:189,40:$Vd,41:$Ve,42:$Vf},o($Vc,[2,81]),o($Vc,[2,82]),o($Vc,[2,79]),o($Vc,[2,80]),o($Vc,[2,84]),o($Vc,[2,83]),o($Vc,[2,88]),o($Vc,[2,87]),o($Vc,[2,86]),o($Vc,[2,85]),o($Vc,[2,90]),o($Vc,[2,89]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,76]),o($Vc,[2,75]),o($Vc,[2,73]),o($Vc,[2,74]),o($Vc,[2,72]),o($Vc,[2,71]),o($Vc,[2,70]),o($Vc,[2,69]),o($Vc,[2,67]),o($Vc,[2,68])],\ndefaultActions: {9:[2,98],10:[2,1],11:[2,2],19:[2,3],27:[2,4],44:[2,100],45:[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 47; \nbreak;\ncase 1: this.begin('type_directive'); return 48; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 9; \nbreak;\ncase 3: this.popState(); this.popState(); return 50; \nbreak;\ncase 4:return 49;\nbreak;\ncase 5: this.begin(\"acc_title\");return 19; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 21; \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 34;\nbreak;\ncase 18:return 38;\nbreak;\ncase 19:return 36;\nbreak;\ncase 20:return 39;\nbreak;\ncase 21:return 40;\nbreak;\ncase 22:return 41;\nbreak;\ncase 23:return 42;\nbreak;\ncase 24:return 32;\nbreak;\ncase 25:return 28;\nbreak;\ncase 26:return 29;\nbreak;\ncase 27:return 31;\nbreak;\ncase 28:return 26;\nbreak;\ncase 29:return 10;\nbreak;\ncase 30:return 10;\nbreak;\ncase 31:return 9;\nbreak;\ncase 32:return 'CARET'\nbreak;\ncase 33:this.begin(\"options\"); //\nbreak;\ncase 34:this.popState(); // not used anymore in the renderer, fixed for backward compatibility\nbreak;\ncase 35:return 13; //\nbreak;\ncase 36:this.begin(\"string\");\nbreak;\ncase 37:this.popState();\nbreak;\ncase 38:return 33;\nbreak;\ncase 39:return 30;\nbreak;\ncase 40:return 27;\nbreak;\ncase 41: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,/^(?: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\":[34,35],\"inclusive\":false},\"string\":{\"rules\":[37,38],\"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,36,39,40,41],\"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.setPieTitle(this.$); \nbreak;\ncase 11:\n this.$=$$[$0].trim();yy.setTitle(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.setTitle(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,41],$Vn=[1,42],$Vo=[1,43],$Vp=[1,44],$Vq=[1,45],$Vr=[1,46],$Vs=[1,49],$Vt=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,48,49,54,55,56,57,65,75],$Vu=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,49,54,55,56,57,65,75],$Vv=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,48,49,54,55,56,57,65,75],$Vw=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,54,55,56,57,65,75],$Vx=[63,64,65],$Vy=[1,114],$Vz=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,48,49,54,55,56,57,65,75];\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,\"and\":47,\"else\":48,\"note\":49,\"placement\":50,\"text2\":51,\"over\":52,\"actor_pair\":53,\"links\":54,\"link\":55,\"properties\":56,\"details\":57,\"spaceList\":58,\",\":59,\"left_of\":60,\"right_of\":61,\"signaltype\":62,\"+\":63,\"-\":64,\"ACTOR\":65,\"SOLID_OPEN_ARROW\":66,\"DOTTED_OPEN_ARROW\":67,\"SOLID_ARROW\":68,\"DOTTED_ARROW\":69,\"SOLID_CROSS\":70,\"DOTTED_CROSS\":71,\"SOLID_POINT\":72,\"DOTTED_POINT\":73,\"TXT\":74,\"open_directive\":75,\"type_directive\":76,\"arg_directive\":77,\"close_directive\":78,\"$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:\"and\",48:\"else\",49:\"note\",52:\"over\",54:\"links\",55:\"link\",56:\"properties\",57:\"details\",59:\",\",60:\"left_of\",61:\"right_of\",63:\"+\",64:\"-\",65:\"ACTOR\",66:\"SOLID_OPEN_ARROW\",67:\"DOTTED_OPEN_ARROW\",68:\"SOLID_ARROW\",69:\"DOTTED_ARROW\",70:\"SOLID_CROSS\",71:\"DOTTED_CROSS\",72:\"SOLID_POINT\",73:\"DOTTED_POINT\",74:\"TXT\",75:\"open_directive\",76:\"type_directive\",77:\"arg_directive\",78:\"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,1],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[58,2],[58,1],[53,3],[53,1],[50,1],[50,1],[21,5],[21,5],[21,4],[17,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[51,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.setTitle(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 40:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 42:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 43:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 44:\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 45:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 46:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 47:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 48:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 51:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 52:\n this.$ = $$[$0]; \nbreak;\ncase 53:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 54:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 55:\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 56:\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 57:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 58:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 59:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 60:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 61:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 62:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 63:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 64:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 65:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 66:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 67:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 68:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 69:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 70:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 71:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},o([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,49,54,55,56,57,65,75],$V4,{8:11}),{12:12,76:[1,13]},{76:[2,68]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{13:47,14:[1,48],78:$Vs},o([14,78],[2,69]),o($Vt,[2,6]),{6:39,10:50,11:6,16:$V7,17:40,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,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},o($Vt,[2,8]),o($Vt,[2,9]),{17:51,65:$Vr},{17:52,65:$Vr},{5:[1,53]},{5:[1,56],23:[1,54],24:[1,55]},{17:57,65:$Vr},{17:58,65:$Vr},{5:[1,59]},{5:[1,60]},{5:[1,61]},{5:[1,62]},{5:[1,63]},o($Vt,[2,28]),o($Vt,[2,29]),{35:[1,64]},{37:[1,65]},o($Vt,[2,32]),{19:[1,66]},{19:[1,67]},{19:[1,68]},{19:[1,69]},{19:[1,70]},o($Vt,[2,38]),{62:71,66:[1,72],67:[1,73],68:[1,74],69:[1,75],70:[1,76],71:[1,77],72:[1,78],73:[1,79]},{50:80,52:[1,81],60:[1,82],61:[1,83]},{17:84,65:$Vr},{17:85,65:$Vr},{17:86,65:$Vr},{17:87,65:$Vr},o([5,18,59,66,67,68,69,70,71,72,73,74],[2,58]),{5:[1,88]},{15:89,77:[1,90]},{5:[2,71]},o($Vt,[2,7]),{5:[1,92],18:[1,91]},{5:[1,94],18:[1,93]},o($Vt,[2,16]),{5:[1,96],23:[1,95]},{5:[1,97]},o($Vt,[2,20]),{5:[1,98]},{5:[1,99]},o($Vt,[2,23]),o($Vt,[2,24]),o($Vt,[2,25]),o($Vt,[2,26]),o($Vt,[2,27]),o($Vt,[2,30]),o($Vt,[2,31]),o($Vu,$V4,{8:100}),o($Vu,$V4,{8:101}),o($Vu,$V4,{8:102}),o($Vv,$V4,{44:103,8:104}),o($Vw,$V4,{46:105,8:106}),{17:109,63:[1,107],64:[1,108],65:$Vr},o($Vx,[2,59]),o($Vx,[2,60]),o($Vx,[2,61]),o($Vx,[2,62]),o($Vx,[2,63]),o($Vx,[2,64]),o($Vx,[2,65]),o($Vx,[2,66]),{17:110,65:$Vr},{17:112,53:111,65:$Vr},{65:[2,53]},{65:[2,54]},{51:113,74:$Vy},{51:115,74:$Vy},{51:116,74:$Vy},{51:117,74:$Vy},o($Vz,[2,10]),{13:118,78:$Vs},{78:[2,70]},{19:[1,119]},o($Vt,[2,13]),{19:[1,120]},o($Vt,[2,15]),{5:[1,121]},o($Vt,[2,18]),o($Vt,[2,19]),o($Vt,[2,21]),o($Vt,[2,22]),{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,122],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,123],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,124],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{40:[1,125]},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,48:[1,126],49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{40:[1,127]},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,39],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:[1,128],49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{17:129,65:$Vr},{17:130,65:$Vr},{51:131,74:$Vy},{51:132,74:$Vy},{51:133,74:$Vy},{59:[1,134],74:[2,52]},{5:[2,45]},{5:[2,67]},{5:[2,46]},{5:[2,47]},{5:[2,48]},{5:[1,135]},{5:[1,136]},{5:[1,137]},o($Vt,[2,17]),o($Vt,[2,33]),o($Vt,[2,34]),o($Vt,[2,35]),o($Vt,[2,36]),{19:[1,138]},o($Vt,[2,37]),{19:[1,139]},{51:140,74:$Vy},{51:141,74:$Vy},{5:[2,57]},{5:[2,43]},{5:[2,44]},{17:142,65:$Vr},o($Vz,[2,11]),o($Vt,[2,12]),o($Vt,[2,14]),o($Vv,$V4,{8:104,44:143}),o($Vw,$V4,{8:106,46:144}),{5:[2,55]},{5:[2,56]},{74:[2,51]},{40:[2,42]},{40:[2,40]}],\ndefaultActions: {7:[2,68],8:[2,1],9:[2,2],10:[2,3],49:[2,71],82:[2,53],83:[2,54],90:[2,70],113:[2,45],114:[2,67],115:[2,46],116:[2,47],117:[2,48],131:[2,57],132:[2,43],133:[2,44],140:[2,55],141:[2,56],142:[2,51],143:[2,42],144:[2,40]},\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 75; \nbreak;\ncase 1: this.begin('type_directive'); return 76; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 78; \nbreak;\ncase 4:return 77;\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 65; \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 48; \nbreak;\ncase 22: this.begin('LINE'); return 45; \nbreak;\ncase 23: this.begin('LINE'); return 47; \nbreak;\ncase 24: this.popState(); return 19; \nbreak;\ncase 25:return 40;\nbreak;\ncase 26:return 60;\nbreak;\ncase 27:return 61;\nbreak;\ncase 28:return 54;\nbreak;\ncase 29:return 55;\nbreak;\ncase 30:return 56;\nbreak;\ncase 31:return 57;\nbreak;\ncase 32:return 52;\nbreak;\ncase 33:return 49;\nbreak;\ncase 34: this.begin('ID'); return 25; \nbreak;\ncase 35: this.begin('ID'); return 26; \nbreak;\ncase 36:return 32;\nbreak;\ncase 37:return 33;\nbreak;\ncase 38: this.begin(\"acc_title\");return 34; \nbreak;\ncase 39: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 40: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 41: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 42: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 43: this.popState(); \nbreak;\ncase 44:return \"acc_descr_multiline_value\";\nbreak;\ncase 45:return 7;\nbreak;\ncase 46:return 22;\nbreak;\ncase 47:return 24;\nbreak;\ncase 48:return 59;\nbreak;\ncase 49:return 5;\nbreak;\ncase 50: yy_.yytext = yy_.yytext.trim(); return 65; \nbreak;\ncase 51:return 68;\nbreak;\ncase 52:return 69;\nbreak;\ncase 53:return 66;\nbreak;\ncase 54:return 67;\nbreak;\ncase 55:return 70;\nbreak;\ncase 56:return 71;\nbreak;\ncase 57:return 72;\nbreak;\ncase 58:return 73;\nbreak;\ncase 59:return 74;\nbreak;\ncase 60:return 63;\nbreak;\ncase 61:return 64;\nbreak;\ncase 62:return 5;\nbreak;\ncase 63: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,/^(?:(?:[:]?(?: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\":[43,44],\"inclusive\":false},\"acc_descr\":{\"rules\":[41],\"inclusive\":false},\"acc_title\":{\"rules\":[39],\"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,24],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,42,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],\"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.setTitle(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.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 12:\n this.$=$$[$0].trim();yy.setTitle(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 getTitle 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.getTitle();\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 description = '';\nconst sanitizeText = (txt) => _sanitizeText(txt, getConfig());\n\nexport const clear = function () {\n title = '';\n description = '';\n};\n\nexport const setTitle = function (txt) {\n title = sanitizeText(txt).replace(/^\\s+/g, '');\n};\n\nexport const getTitle = function () {\n return title;\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 default {\n setTitle,\n getTitle,\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 themeVaraibles\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 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 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 // 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 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 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 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 },\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 { 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 setTitle,\n getTitle,\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 console.log(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 setTitle,\n getTitle,\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, configureSvgSize } 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 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 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 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 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 demoand 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.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 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';\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};\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 ? '#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 /* 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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 '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 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":["addSVGAccessibilityFields","yy_parser","svg","id","insert","title_string","getTitle","description","getAccDescription","attr","text","sanitizeText","_sanitizeText","getConfig","title","txt","clear","setTitle","replace","setAccDescription","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","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","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","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","keyify","obj","prefix","reduce","configKeys","configApi","common","mermaidAPI","commonClear","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","console","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","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","replaceAll","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","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","accDescription","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","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","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","newCommit","nextCommit","prettyPrint","getCommitsArray","mainBranch","getBranchesAsObjArray","branchesArray","values","branchConfig","getBranches","getCommits","getCurrentBranch","getHead","REVERSE","HIGHLIGHT","db","gitGraphParser","allCommitsDict","branchNum","branchPos","commitPos","lanes","maxPos","drawText","drawCommits","modifyGraph","gitGraphConfig","gBullets","gLabels","sortedKeys","typeClass","circle2","labelBkg","hole","tagBbox","h2","ly","hasOverlappingCommits","commit1","commit2","allCommits","commit1Pos","commit2Pos","overlappingComits","findLane","y2","_depth","candidate","ok","drawArrow","overlappingCommits","arc","arc2","colorClassNum","lineDef","lineY","arrow","drawArrows","gArrows","drawBranches","bkg","branchLabel","commitLabelColor","commitLabelBackground","tagLabelColor","tagLabelBackground","tagLabelBorder","primaryColor","setMessage","getMessage","setInfo","inf","getInfo","infoParser","showData","setShowData","toggle","getShowData","cleanupValue","setPieTitle","sanitizedText","getPieTitle","scaleOrdinal","d3pie","pieData","pieParser","margin","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","diagramTitle","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","getMessages","getActors","getActor","getActorKeys","enableSequenceNumbers","disableSequenceNumbers","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","AUTONUMBER","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","addLinks","actorId","insertLinks","addALink","sep","addProperties","insertProperties","addDetails","innerHTML","details","getActorProperty","setDiagramTitle","getDiagramTitle","param","sequenceIndex","step","sequenceIndexStep","visible","sequenceVisible","signalType","loopText","optText","altText","parText","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","round","curr","boundMessage","lines","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","textConf","wrapLabel","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertComputerIcon","insertDatabaseIcon","insertClockIcon","calculateLoopBounds","insertArrowHead","insertArrowCrossHead","insertArrowFilledHead","insertSequenceNumber","activeEnd","activationData","drawActivation","messagesToDraw","drawLoop","drawBackgroundRect","messageModel","requiredBoxSize","box","actorLines","boxHeight","boxWidth","extraVertForTitle","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","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","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","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","bind","time","initThrowsErrors","arguments","parseError","mermaid","sequenceConfig","callback","Node","ganttConfig","idGeneratior","initIdGeneratior","next","entityDecode","detectInit","svgCode","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","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","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 diff --git a/dist/mermaid.js b/dist/mermaid.js index 1520bf9f9..79ec3b3c6 100644 --- a/dist/mermaid.js +++ b/dist/mermaid.js @@ -27072,7 +27072,7 @@ __webpack_require__.r(__webpack_exports__); var init = function init() { try { - initThrowsErrors(); + initThrowsErrors.apply(void 0, arguments); } catch (e) { _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn('Syntax Error rendering'); _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn(e); @@ -128981,7 +128981,7 @@ function combine (array, callback) { /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"name":"mermaid","version":"9.1.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":"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":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.6","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":"^16.0.0","@commitlint/config-conventional":"^16.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":"9.6.0","cypress-image-snapshot":"^4.0.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":"^39.1.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","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":"^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"]}'); +module.exports = JSON.parse('{"name":"mermaid","version":"9.1.1","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":"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":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.6","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":"^16.0.0","@commitlint/config-conventional":"^16.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":"9.6.0","cypress-image-snapshot":"^4.0.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":"^39.1.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","husky":"^7.0.1","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":"^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"]}'); /***/ }) diff --git a/dist/mermaid.js.map b/dist/mermaid.js.map index b867e71e4..bb511d7ef 100644 --- a/dist/mermaid.js.map +++ b/dist/mermaid.js.map @@ -1 +1 @@ -{"version":3,"file":"mermaid.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,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,2zBAA2zB;AACt0B,aAAa,ueAAue;AACpf;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,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,uEAAuE,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,iHAAiH,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;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,2GAA2G,mCAAmC,cAAc,uCAAuC,aAAa;AACzkB,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;;;;;;;;;;;ACxxBA;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;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AAoS,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,8BAA8B;AAC9B;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,osBAAosB,0BAA0B;AACzuB,aAAa,gcAAgc,EAAE;AAC/c;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,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,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,eAAe,gBAAgB,gBAAgB,sBAAsB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,gIAAgI,6BAA6B,gBAAgB,iBAAiB,QAAQ,EAAE,SAAS,gBAAgB,yBAAyB,4CAA4C,UAAU,EAAE,UAAU,4CAA4C,UAAU,eAAe,wDAAwD,GAAG,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,wEAAwE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,gBAAgB,UAAU,8BAA8B,8BAA8B,gBAAgB,8BAA8B,0DAA0D,8BAA8B,gBAAgB,8BAA8B,GAAG,UAAU,EAAE,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,oBAAoB,gBAAgB,oBAAoB,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;AAC9hH,iBAAiB,iEAAiE;AAClF;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,+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;;;;;;;;;;;ACv7BA;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,8nCAA8nC;AACzoC,aAAa,6uBAA6uB;AAC1vB;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;AACA,4BAA4B,gFAAgF;AAC5G;AACA;AACA,4BAA4B,kFAAkF;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,mDAAmD;AAC1E;AACA;AACA;;AAEA,uBAAuB,wDAAwD;AAC/E;AACA;AACA;;AAEA,uBAAuB,qDAAqD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;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,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,kFAAkF,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,6OAA6O,EAAE,uBAAuB,iCAAiC,oNAAoN,4BAA4B,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,6BAA6B,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,8BAA8B,UAAU,EAAE,UAAU,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,sFAAsF,EAAE,oCAAoC,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,iDAAiD,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,EAAE,mBAAmB,gBAAgB,mBAAmB,EAAE,SAAS,gBAAgB,SAAS,EAAE,SAAS,8GAA8G,MAAM,aAAa,MAAM,aAAa,MAAM,aAAa,aAAa,aAAa,aAAa,GAAG,oCAAoC,kHAAkH,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,gBAAgB,cAAc,EAAE,UAAU,EAAE,WAAW,gBAAgB,WAAW,gBAAgB,UAAU,0DAA0D,gPAAgP,EAAE,gPAAgP,EAAE,gPAAgP,EAAE,WAAW,EAAE,0PAA0P,EAAE,WAAW,EAAE,0PAA0P,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,wEAAwE,WAAW,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,sDAAsD,aAAa,aAAa,aAAa,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACv6H,iBAAiB,yNAAyN;AAC1O;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,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,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,sKAAsK,uNAAuN,yBAAyB,wHAAwH,eAAe,cAAc,mFAAmF,qBAAqB,yCAAyC,4IAA4I;AACtoC,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;;;;;;;;;;;AC55BA;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,8BAA8B;AAC9B;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;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AClrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;;;;;ACrCnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,yBAAT,CAAmCC,SAAnC,EAA8CC,GAA9C,EAAmDC,EAAnD,EAAuD;EACpE,IAAI,OAAOD,GAAG,CAACE,MAAX,KAAsB,WAA1B,EAAuC;IACrC;EACD;;EAED,IAAIC,YAAY,GAAGJ,SAAS,CAACK,QAAV,EAAnB;EACA,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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMlK,MAAM,GAAG;EACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACED,KAAK,EAAE,SAXM;EAYbmB,cAAc,EAAEnB,4EAAA,EAZH;EAabkc,QAAQ,EAAE7Y,SAbG;;EAcb;EACA8Y,WAAW,EAAE,KAfA;EAgBbC,QAAQ,EAAE,KAhBG;;EAkBb;AACF;AACA;AACA;AACA;AACA;AACA;EACEha,UAAU,EAAE,6CAzBC;;EA2Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEia,QAAQ,EAAE,CAxCG;;EA0Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEV,aAAa,EAAE,QAtDF;;EAwDb;AACF;AACA;AACA;AACA;AACA;AACA;EACEW,WAAW,EAAE,IA/DA;;EAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEnP,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;EACE0a,gBAAgB,EAAE,KAtGL;;EAwGb;AACF;AACA;AACA;AACA;EACEC,mBAAmB,EAAEnZ,SA7GR;;EA+Gb;EACAG,SAAS,EAAE;IACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiZ,cAAc,EAAE,CAbP;;IAeT;AACJ;AACA;AACA;AACA;AACA;AACA;IACIhZ,UAAU,EAAE,IAtBH;;IAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIiZ,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;IACIhQ,KAAK,EAAE,OA7DE;IA8DT;IACA;IACA3I,OAAO,EAAE,EAhEA;;IAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI4Y,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;IACIrZ,KAAK,EAAE,GA7CC;;IA+CR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EAtDA;;IAwDR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIqZ,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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;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClDwB;;AAExB,6BAAe,oCAAS;AACxB;AACA,uBAAuB,gDAAG,4CAA4C,QAAQ;AAC9E,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;ACd8B;;AAE9B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AChCoC;;AAEpC,6BAAe,sCAAW;AAC1B,SAAS,sDAAS;AAClB;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA,qCAAqC,0BAA0B;AAC/D;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJuC;AACF;AACA;AACE;AACI;AACE;;;;;;;;;;;;;;;;ACL7C,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJO;;AAEP;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,yEAAyE,8CAA8C;AACvH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gEAAgE,sBAAsB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;AC1EK;;AAExB,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAG;AACzB;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,YAAY,kCAAkC,IAAI;AACjG,yDAAyD,+BAA+B;AACxF;;AAEA;AACA,8BAA8B,kDAAkD;AAChF,2BAA2B,4CAA4C;AACvE,+BAA+B,wDAAwD;AACvF,uBAAuB,cAAc,cAAc;AACnD,gCAAgC,mCAAmC,cAAc;AACjF,kCAAkC,oBAAoB,cAAc;AACpE,0BAA0B,YAAY;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS,gDAAG;AACZ;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;ACxE6C;;AAE7C;;AAEA,YAAY,sDAAa;;AAEzB;AACA;AACA;AACA;AACA;AACA,SAAS,wCAAM;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D,iBAAiB;;AAE5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;ACtCnB,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACJ2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClX2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,uBAAuB,kDAAM,CAAC,4CAAK;AACzC;AACA,oBAAoB,+CAAQ,YAAY,+CAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,6CAAM,YAAY,6CAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,6CAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,0CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC5DD,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTsD;AACE;AACJ;;;;;;;;;;;;;;;;;;;;;;;;ACFT;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM,CAAC,4CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,6CAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,6CAAO;AACvB;AACA;;AAEA,sDAAM,WAAW,kDAAM,CAAC,4CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC1HM;AACA;;;;;;;;;;;;;;;;ACDP,YAAY;;AAEZ;AACA,8CAA8C,KAAK,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,mFAAmF,OAAO;AAC1F;AACA,gDAAgD,OAAO;AACvD,GAAG;AACH;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;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AAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnK8C;AACyE;AACA;AACrE;;;;;;;;;;;;;;;;;;;;;;;ACHvB;;AAE3B,UAAU,mDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVP;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;;;;;ACpCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACrBO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACVO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA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AAmB,6CAAQ;AAC9D;AACA;AACA,kBAAkB,qDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;;;;ACtDjD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,4BAA4B;AAC5B;AACA,MAAM,OAAO;AACb;AACA,cAAc,SAAS,sDAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA,SAAS;AACT;;;;;;;;;;;;;;;;;AC/DA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBkC;AACY;;AAE9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gCAAgC;AACjE,cAAc,sDAAsD,sDAAM,OAAO;AACjF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,sDAAM,OAAO;AAChF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,+CAAQ;AAC3D,mDAAmD,+CAAQ;;;;;;;;;;;;;;;;;;AC9Df;;AAEnD;AACA;AACA;AACA;;AAEO;AACP,+BAA+B,mDAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAS;AAClB;;AAEO;AACP,4BAA4B,mDAAQ;AACpC;AACA;AACA,iEAAiE,mDAAQ;AACzE;AACA,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;ACxB+B;AACJ;AACa;AACX;AACI;AACA;AACA;AACI;AACuB;;AAE5D,6BAAe,oCAAS;AACxB;AACA,wCAAwC,wDAAQ;AAChD,0BAA0B,kDAAM;AAChC,+BAA+B,oDAAK,eAAe,+CAAG,IAAI,kDAAM;AAChE,qBAAqB,gDAAK,GAAG,+CAAG;AAChC,4BAA4B,gDAAI;AAChC,QAAQ,8DAAa,MAAM,uDAAW;AACtC,2BAA2B,mDAAY;AACvC,0FAA0F,kDAAM;AAChG,QAAQ,kDAAM;AACd;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC/D0C;;;;;;;;;;;;;;;;ACA1C;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;ACjIpB,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD,IAAI;AACJ;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnFA,6BAAe,oCAAS;AACxB,mDAAmD;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1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AG;AACH;;;;;;;;;;;;;;;;;ACPqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,sDAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACZkC;AACA;AACC;;AAEnC,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,6CAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;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EA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;ACNkC;;AAElC,6BAAe,oCAAS;;AAExB,+JAA+J,OAAO;AACtK,yHAAyH,OAAO;AAChI;AACA;AACA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;;AAEA,aAAa,6CAAS;AACtB;;;;;;;;;;;;;;;;ACjBA,6BAAe,sCAAW;;AAE1B,4DAA4D,OAAO;AACnE,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACVA,6BAAe,sCAAW;AAC1B;AACA,yBAAyB,oBAAoB;AAC7C;AACA;;;;;;;;;;;;;;;;;;ACJA;;AAEO;;AAEP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;AC1GA,6BAAe,sCAAW;;AAE1B,6DAA6D,QAAQ;AACrE,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,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CA;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;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAc,SAAS,kDAAS;AACxE,iBAAiB,sDAAa;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA,wCAAwC,gDAAe,SAAS,+CAAU;AAC1E,iBAAiB,sDAAc;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAa,CAAC,mDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA,mCAAmC,iDAAY,MAAM,kDAAiB;AACtE;;AAEA;AACA;AACA,aAAa,mDAAkB,CAAC,mDAAQ,WAAW,mDAAQ;AAC3D;;AAEA;AAC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AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5B8B;;AAErC,WAAW,wDAAQ;AACnB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,wDAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,IAAI,EAAC;AACb;;;;;;;;;;;;;;;;;;;;;;;ACrBa;;AAIE;;AAIC;;;;;;;;;;;;;;;;;ACZe;;AAEtC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA,wCAAwC,8CAAG;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;ACZiC;;AAEjC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI;;AAE/H;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7GiD;AACE;;AAEnD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,mBAAmB,4DAAU;AAC7B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpB8B;AAC8B;AACd;AACM;;;;;;;;;;;;;;;;;ACHa;;AAEjE,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,mDAAmD,eAAe;AAClE,8BAA8B,6DAAQ,qBAAqB,2DAAM;AACjE,qBAAqB,0DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACvBuC;AACU;AACE;;AAEnD,wEAA6B,GAAG,qDAAmB;AACnD,yEAA8B,GAAG,sDAAoB;;;;;;;;;;;;;;;;;ACLb;;AAExC,6BAAe,oCAAS;AACxB;AACA,IAAI,yDAAS;AACb,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACNyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,+CAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,6CAAG;AACrC;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA,sBAAsB,4DAAU;AAChC;AACA,IAAI;AACJ,SAAS,2DAAK,oCAAoC,6CAAG;AACrD;;AAEA,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,QAAQ,mEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,4DAAU;AACvB;;;;;;;;;;;;;;;;;;;;ACzC+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,wDAAS,uCAAuC,mEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,qDAAU;AAChF;AACA;AACA;;;;;;;;;;;;;;;;;AC7EuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,iBAAiB,wDAAS;AAC1B;AACA;;;;;;;;;;;;;;;;;AC3CwC;;AAExC;AACA;AACA,IAAI,kDAAI;AACR;AACA;;AAEA;AACA;AACA,IAAI,kDAAI;AACR;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACtBuC;;AAEvC;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACtBuC;;AAEvC;AACA;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACfkC;;AAElC,6BAAe,sCAAW;AAC1B;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,oBAAoB;;AAEnC;AACA,qBAAqB,iDAAG;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;;;;;;;ACzBqC;AACC;;AAEtC,6BAAe,oCAAS;AACxB,2CAA2C,wDAAO;;AAElD,sFAAsF,OAAO;AAC7F,6FAA6F,OAAO;AACpG;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfuC;AACC;AACU;AACR;AACM;AACR;AACI;AACF;AACN;AACQ;AACA;AACM;AACA;AACR;AACU;AACZ;AACU;AACE;AACV;AACJ;;AAEtC;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEe;AACf,SAAS,yDAAS;AAClB;;AAEO;AACP;AACA;;AAEA,0BAA0B,+DAAmB;;AAE7C;AACA;AACA,UAAU,kDAAiB;AAC3B,aAAa,sDAAoB;AACjC,UAAU,kDAAiB;AAC3B,SAAS,iDAAgB;AACzB,aAAa,sDAAoB;AACjC,cAAc,uDAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8CAAa;AACnB,QAAQ,gDAAe;AACvB,aAAa,qDAAoB;AACjC,SAAS,kDAAgB;AACzB,cAAc,uDAAqB;AACnC,QAAQ,iDAAe;AACvB,aAAa,sDAAoB;AACjC,UAAU,kDAAiB;AAC3B,SAAS,kDAAgB;AACzB,SAAS,iDAAgB;AACzB,YAAY,oDAAmB;AAC/B,QAAQ,gDAAe;AACvB,OAAO,gDAAc;AACrB;;;;;;;;;;;;;;;;;;;;ACnE+B;AACqD;;AAEpF,6BAAe,oCAAS;AACxB;AACA,kCAAkC,sDAAiB;AACnD,qBAAqB,gDAAK,GAAG,sDAAc;AAC3C,aAAa,oDAAK,eAAe,sDAAc;AAC/C,QAAQ,sDAAiB;AACzB;;;;;;;;;;;;;;;;;ACTsC;;AAEtC,6BAAe,oCAAS;AACxB;;AAEA,gKAAgK,OAAO;AACvK,yHAAyH,OAAO;AAChI;AACA;AACA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;AClB6C;;AAE7C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,oCAAoC,8CAAI,GAAG,6CAAG;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA,QAAQ,iDAAG;AACX;AACA;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqC;AACG;;AAExC,cAAc,uDAAQ;AACtB;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEP,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,+CAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,sCAAsC,oDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;AACA,2DAA2D;AAC3D;AACA,IAAI,oDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxJsC;AACA;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA,QAAQ,wDAAQ,qCAAqC,iDAAG;AACxD;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;ACrByC;AACH;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAW;;AAExD,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA,yFAAyF,iDAAG,wCAAwC,OAAO;AAC3I;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;ACzBuC;;AAEvC,gBAAgB,0EAA+B;;AAE/C,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;ACN+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB,oDAAoD,wDAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA,6EAA6E,wDAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,yCAAyC,mEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,qBAAqB,qDAAU;AAC/B;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB6C;AACD;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA,YAAY,gDAAK;;AAEjB,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,sBAAsB,iDAAG;AACzB,QAAQ,wDAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;ACvBuC;;AAEvC;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,4BAA4B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;;AAEA;AACA,gBAAgB,iDAAG;AACnB,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA,mBAAmB,iDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,iDAAG;AACd;AACA;;;;;;;;;;;;;;;;;;;;;;AChF4C;AACV;AACkB;AACN;AACH;;AAE3C;;AAEA;AACA,EAAE,2DAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,qDAAY;AACd,EAAE,oDAAc;AAChB;AACA,EAAE,2DAAY;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC,6CAAO;AAC9C,wCAAwC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,qDAAY;;AAEd;AACA;AACA,uCAAuC,6CAAO;AAC9C,wCAAwC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,qDAAY;;AAEd;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA,IAAI,iDAAU;AACd;;AAEA;AACA;AACA,cAAc,iDAAU;;AAExB,EAAE,qDAAY;AACd,EAAE,qDAAY;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+CAAS;;AAEtB;AACA;AACA,cAAc,6CAAO,iBAAiB;AACtC;AACA,gBAAgB,6CAAO;AACvB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,mBAAmB,6CAAO;AAC1B;AACA;AACA,UAAU,gBAAgB,6CAAO;AACjC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,iDAAU;AACZ;AACA,EAAE,oDAAc;;AAEhB;;AAEA;AACA,IAAI,qDAAY;AAChB;AACA,IAAI,oDAAc;AAClB,8BAA8B,iDAAU;AACxC,IAAI,qDAAY;AAChB,IAAI,qDAAY;AAChB;AACA;;AAEA,eAAe;AACf,kBAAkB,iDAAU;AAC5B;AACA;;AAEA;AACA,EAAE,qDAAY;AACd,EAAE,qDAAY;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,iDAAU;AACZ,gBAAgB,iDAAU;AAC1B,cAAc,iDAAU;AACxB,EAAE,qDAAY;AACd,EAAE,qDAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AChMwC;AACQ;;AAEzC;AACP,SAAS,2CAAK;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,kDAAY,yBAAyB,OAAO;AAClE,gBAAgB,2CAAK;AACrB;AACA;AACA,kBAAkB,OAAO,sDAAsD,2CAAK;AACpF,kCAAkC,6BAA6B;AAC/D,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEO;AACP,eAAe,kDAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC,eAAe,2CAAK;AACpB;AACA;AACA;;AAEA;AACA;AACA,aAAa,2CAAK;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,2CAAK;AACzC,wCAAwC,2CAAK;AAC7C,sCAAsC,6CAAO,8BAA8B,6CAAO;AAClF,yCAAyC,gDAAU,CAAC,uDAAgB;AACpE,oCAAoC,6CAAO,gBAAgB,6CAAO,gCAAgC,6CAAO;AACzG,sCAAsC,6CAAO,gBAAgB,6CAAO,4BAA4B,6CAAO;AACvG,sCAAsC,6CAAO,gBAAgB,6CAAO,gCAAgC,6CAAO;AAC3G,sCAAsC,6CAAO,gBAAgB,6CAAO,4BAA4B,6CAAO;AACvG;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC,gBAAgB;AAClD,iBAAiB,2CAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gDAAU,CAAC,uDAAgB;AACnC,QAAQ,gDAAU,CAAC,uDAAgB;AACnC,QAAQ,gDAAU,CAAC,uDAAgB;AACnC,QAAQ,gDAAU,CAAC,uDAAgB;AACnC;AACA;AACA;;AAEA,4CAA4C;AAC5C,kBAAkB,gBAAgB;AAClC,eAAe,2CAAK;AACpB;AACA,eAAe,2CAAK;AACpB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC7H4C;AACA;;AAE5C;;AAEO;;AAEP;AACA,EAAE,2DAAY;AACd;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,8CAAQ;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8DAA8D;;AAE9D;;AAEA;AACA,aAAa,+CAAS;;AAEtB;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,MAAM;AACN;AACA,aAAa,eAAe;AAC5B;AACA;;AAEA,EAAE,oDAAc;AAChB;AACA;;AAEO;AACP;AACA;AACA;AACA,IAAI,oDAAc;AAClB;AACA,IAAI,2DAAY;AAChB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7E8C;AACyB;AAClC;AACJ;AACS;;AAEnC;AACA;AACA;AACA;AACA;AACA;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAY;AAC5B,gBAAgB,qDAAY;;AAE5B;AACA,aAAa,gDAAW;AACxB;AACA;AACA,QAAQ,gDAAQ;AAChB;AACA;AACA;AACA,MAAM;AACN,MAAM,mDAAW;AACjB,MAAM;AACN;AACA;AACA;;AAEA,EAAE,wDAAiB;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,gDAAS;AACb,IAAI,gDAAS;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qDAAqD,OAAO,wDAAiB,mBAAmB;AAChG;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;;AAEN;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC7IgD;;AAEzC;AACP;AACA,cAAc,gDAAU;AACxB;AACA;AACA;AACA;AACA,EAAE,2CAAK;AACP,EAAE,2CAAK;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,UAAU,kDAAY;AACtB;;AAEA;AACA,4BAA4B,2CAAK;AACjC;AACA,iDAAiD,6CAAO;AACxD,mDAAmD,6CAAO;AAC1D,aAAa,2CAAK;AAClB;AACA;AACA;;;;;;;;;;;;;;;;;ACvKA;AACA,iBAAiB;AACjB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,gBAAgB;;AAE1C;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;AC5O5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJ6C;;;;;;;;;;;;;;;;;ACAtC;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;ACNkC;AACe;AACN;;AAE3C,6BAAe,sCAAW;AAC1B,UAAU,qCAAM;AAChB,UAAU,qCAAM;AAChB;;AAEA;AACA,eAAe,gDAAO;AACtB,0CAA0C,6CAAO,IAAI,6CAAO,6BAA6B,6CAAO,IAAI,6CAAO;AAC3G;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iEAAiE,qDAAQ;AACzE;;AAEA;AACA,iEAAiE,qDAAQ;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,+DAAgB;AACpC,SAAS,mBAAO,CAAC,yDAAa;AAC9B,aAAa,mBAAO,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AACzC;AACA;AACA;AACA,OAAO,8BAA8B,GAAG,8BAA8B;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;ACxDA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;AC/BA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACpCA,mBAAmB,mBAAO,CAAC,6EAAkB;AAC7C,mBAAmB,mBAAO,CAAC,6EAAkB;AAC7C,mBAAmB,mBAAO,CAAC,2EAAiB;;AAE5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACrCA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;;;;;;;;;;ACZA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3CA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,kBAAkB,mBAAO,CAAC,8DAAmB;AAC7C,qBAAqB,mBAAO,CAAC,oEAAsB;AACnD,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1Ba;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;;AAEvB;;AAEA;AACA,8CAA8C,4CAA4C;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,yBAAyB;AAC1D,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AChCa;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;AACvB,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA,8CAA8C,4CAA4C;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACrBa;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;;AAEvB;;AAEA;AACA,8CAA8C,4CAA4C;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpBA,QAAQ,mBAAO,CAAC,uDAAU;AAC1B,SAAS,mBAAO,CAAC,+CAAM;AACvB,aAAa,mFAAyB;;AAEtC;;AAEA;AACA;AACA,oBAAoB,mBAAO,CAAC,mEAAgB;AAC5C,uBAAuB,mBAAO,CAAC,yEAAmB;AAClD,yBAAyB,mBAAO,CAAC,+EAAsB;AACvD,wBAAwB,mBAAO,CAAC,6EAAqB;AACrD,sBAAsB,mBAAO,CAAC,uEAAkB;AAChD,2BAA2B,mBAAO,CAAC,mFAAwB;AAC3D,yBAAyB,mBAAO,CAAC,6EAAqB;AACtD,eAAe,mBAAO,CAAC,uDAAU;AACjC,eAAe,mBAAO,CAAC,uDAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,gCAAgC;AAChC,iCAAiC;AACjC,GAAG;;AAEH;AACA;AACA,iCAAiC;AACjC;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvKa;;AAEb,oBAAoB,mBAAO,CAAC,2FAA4B;AACxD,uBAAuB,mBAAO,CAAC,iGAA+B;AAC9D,sBAAsB,mBAAO,CAAC,+FAA8B;AAC5D,uBAAuB,mBAAO,CAAC,iGAA+B;;AAE9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM;AACN;AACA;AACA,6CAA6C,yBAAyB;;AAEtE;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AChFA,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACrDA;;;;;;;;;;;;;;;;ACAO;;;;;;;;;;;;;;;;;;;;;ACAuB;AACI;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,iDAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,mFAAmF;;AAE9H;AACA;AACA,2CAA2C,gCAAgC,8DAA8D;AACzI;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,gCAAgC;;AAEzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,8CAAU;AACrC;;AAEA;AACA,gEAAgE,8CAAU;AAC1E;;AAEA;AACA,+DAA+D,8CAAU;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;AC7KA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;ACGgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLqB;AACW;AACL;AAC2B;AAC9B;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,wDAAK,SAAS,uDAAa;AACtC;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,iEAAiE;AAC3F,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,0BAA0B,iEAAiE;AAC3F,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA,UAAU,uDAAa,KAAK,sDAAY;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wDAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,gBAAgB;;AAEvD;;AAEA;AACA,qCAAqC,oCAAoC;AACzE,sCAAsC,yBAAyB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,iDAAiD;AAC3F,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,wDAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,wDAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,iHAAiH;AACpJ,mCAAmC,iGAAiG;AACpI,uCAAuC,wGAAwG;AAC/I,wCAAwC,wGAAwG;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,yDAAW,KAAK,iDAAU;AAChC;AACA;;AAEA;AACA,wBAAwB,uDAAa;AACrC;;AAEA;AACA,eAAe,oEAA0B;AACzC,wBAAwB,uDAAa,mEAAmE,sDAAY;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wDAAc;AAC3D;AACA;AACA,kBAAkB,uDAAa,WAAW,4EAAkC,IAAI,oDAAK;AACrF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,wDAAM;AACtB;;AAEA;AACA;;AAEA,QAAQ,uDAAa;AACrB;AACA;AACA,MAAM;AACN,iBAAiB,wDAAM,CAAC,oDAAU;AAClC;AACA;AACA;AACA;AACA;;AAEA,MAAM,qDAAW,CAAC,oDAAU;AAC5B;;AAEA,IAAI,0DAAa;AACjB,IAAI,wDAAS;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0DAAa;AACnB,UAAU,uDAAa;AACvB,YAAY,8DAAoB;AAChC;AACA,8CAA8C,qBAAqB,QAAQ;AAC3E,QAAQ;AACR,QAAQ,iDAAU,CAAC,oDAAU;AAC7B;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA,cAAc,uDAAa;AAC3B,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;;AAEA;AACA,cAAc,uDAAa;AAC3B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,gBAAgB,sDAAY;AAC5B;AACA;AACA;AACA,cAAc;AACd,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AA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CA;AACA;AACA;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC1BmE;AACrC;AACM;AACV;AACQ;AACA;AACR;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA,kBAAkB,sDAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,gDAAM;AACzB,WAAW,kDAAQ;AACnB,WAAW,+CAAK;AAChB,MAAM;AACN,2BAA2B,kDAAS;AACpC;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,iDAAI;AACd;AACA,KAAK;;AAEL;AACA,oDAAoD,OAAO;AAC3D,YAAY,qDAAQ;AACpB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,+DAA+D;AAC/D;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,+DAA+D;AAC/D;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAM;AACnC,6BAA6B,mDAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sEAAsE,qDAAQ;AAC9E;;AAEA;AACA;;;;;;;;;;;;;;;;ACjGA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJgD;AACE;AACN;AACQ;AACJ;AACQ;AAClB;AACA;;;;;;;;;;;;;;;;ACPtC,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;ACFkC;AACJ;AACI;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,iBAAiB,qDAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,gBAAgB;AACtD,wDAAwD,OAAO;AAC/D;AACA,2DAA2D,mDAAM;AACjE,2DAA2D,mDAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kDAAG;AACtB;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACnHkC;AACJ;AACO;AACH;;AAElC,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA,iBAAiB,qDAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,uDAAQ,QAAQ,0CAAC,EAAE,0CAAC;AACxD,2BAA2B,OAAO;AAClC;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA,yBAAyB,mDAAM;AAC/B,yBAAyB,mDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C;AAC1C;AACA,uBAAuB,mDAAM;AAC7B,uBAAuB,mDAAM;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACjHkC;;AAElC,6BAAe,oCAAS;AACxB;AACA,iBAAiB,qDAAQ;AACzB;AACA;;AAEA,6CAA6C,qDAAQ;AACrD;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA,sEAAsE,qDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;ACxDqC;AACH;AACH;;AAExB;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAG;AAClB,gBAAgB,+CAAK;AACrB,cAAc,uDAAQ;;AAEtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA,OAAO;;AAEP,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtJkC;;AAElC,6BAAe,oCAAS;AACxB,iBAAiB,qDAAQ;AACzB;AACA;AACA;;AAEA,mCAAmC,qDAAQ;;AAE3C;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA,iEAAiE,qDAAQ;AACzE;;AAEA;AACA;;;;;;;;;;;;;;;;;ACxCkC;;AAElC,6BAAe,oCAAS;AACxB,iBAAiB,qDAAQ;AACzB;AACA;AACA;;AAEA,mCAAmC,qDAAQ;;AAE3C;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA,iEAAiE,qDAAQ;AACzE;;AAEA;AACA;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACvC+B;AACoC;AACtC;AACI;;AAE1B,kBAAkB,qDAAK;;AAE9B,cAAc,qDAAK;AACnB;AACA;AACA;AACA;AACA;;AAEO;AACP,SAAS,gDAAI;AACb,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+BAA+B,yCAAG;AAClC,iDAAiD,gDAAI;AACrD,GAAG;AACH;AACA,gBAAgB,yCAAG;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,8BAA8B,6CAAG,iBAAiB,+CAAS,aAAa,6CAAG;AAC3E;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,kBAAkB,+CAAS,EAAE;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB,eAAe,6CAAG;AAClB;AACA,iCAAiC,6CAAG;AACpC,yBAAyB,6CAAG;AAC5B,kBAAkB,+CAAK;;AAEvB;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,EAAE,sDAAM;AACR;AACA;;;;;;;;;;;;;;;;;;;;;ACzE+B;AACmB;AAC6C;AACtC;AACxB;;AAEjC;AACA;AACA;AACA;AACA,eAAe,qDAAK;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAuB;AAC3B,GAAG;AACH;AACA,IAAI,2DAAqB;AACzB;AACA;AACA;AACA,QAAQ,iDAAW;AACnB,wBAAwB,6CAAO;AAC/B,yBAAyB,6CAAO;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,wDAAS,WAAW,6CAAO,QAAQ,6CAAO;AACpD;AACA,iBAAiB,6DAAc;AAC/B;AACA,qBAAqB,6DAAc;AACnC,IAAI,wEAAyB;AAC7B,iBAAiB,wDAAS;AAC1B;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA,uBAAuB,6CAAG;AAC1B;AACA,6BAA6B,6CAAO;AACpC;AACA,MAAM;AACN,8BAA8B,6CAAO;AACrC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,6CAAG;AACpB,IAAI;AACJ;AACA;AACA,EAAE,sDAAgB;AAClB;AACA;;AAEA;AACA,EAAE,0DAAoB;AACtB;;AAEA;AACA;AACA,EAAE,wDAAkB;AACpB,MAAM,6CAAG,aAAa,6CAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,EAAE,sDAAM;;AAER;AACA;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AClLsD;;AAE/C;AACP,UAAU,+CAAK,8BAA8B,8CAAI;AACjD;;AAEO;AACP,0DAA0D,6CAAG;AAC7D,mBAAmB,6CAAG,mBAAmB,6CAAG,UAAU,6CAAG;AACzD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP,UAAU,8CAAI;AACd;AACA;;;;;;;;;;;;;;;;;;;AChC2F;AAC9D;AACI;;AAEjC;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,UAAU,gDAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,kCAAkC,6CAAG,mBAAmB,6CAAG,UAAU,6CAAG;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,gBAAgB,6CAAG;AACnB,gBAAgB,6CAAG;AACnB,OAAO,6CAAG;AACV;AACA;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,mBAAmB,6CAAG;AACtB,mBAAmB,6CAAG;AACtB,UAAU,6CAAG;AACb,UAAU,+CAAK,CAAC,8CAAI;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC;AACA,eAAe,6CAAG;AAClB,gBAAgB,6CAAG;AACnB,gBAAgB,6CAAG;AACnB,OAAO,6CAAG;AACV;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,mBAAmB,6CAAG;AACtB,mBAAmB,6CAAG;AACtB,UAAU,6CAAG;AACb;AACA;AACA;AACA,UAAU,8CAAI;AACd,UAAU,8CAAI;AACd,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,EAAE,sDAAM;;AAER;AACA;AACA;AACA;;AAEA;AACA,UAAU,8CAAQ;AAClB;AACA;AACA,aAAa,6CAAO;AACpB;AACA;AACA,YAAY,8CAAQ;AACp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L;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnBqC;AACA;AACM;AACS;AACrB;;AAE/B,6BAAe,oCAAS;AACxB;AACA;AACA,qBAAqB,sDAAU;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB,+CAAK;AACxB,0BAA0B,+DAAe;AACzC;AACA;AACA,UAAU,sDAAU;AACpB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,4CAAM,GAAG,6CAAO,GAAG,4CAAM;AAC7D,oCAAoC,4CAAM,GAAG,6CAAO,GAAG,4CAAM;AAC7D;;;;;;;;;;;;;;;;AClIA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1DwC;AACH;AACJ;AACI;AACN;;AAE/B;;AAEA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,WAAW,6CAAG,cAAc,6CAAO;AACnC,UAAU,6CAAG,cAAc,6CAAO;AAClC,UAAU,6CAAG,cAAc,6CAAO;AAClC,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,sDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,OAAO;AACjD,mHAAmH,OAAO;AAC1H;AACA,0BAA0B;AAC1B,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,+CAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvK0C;AACP;;AAEnC;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,0DAAU;AAClB;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,6CAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA,+BAA+B,OAAO;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,sCAAsC,QAAQ;AAC9C,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtGA,6BAAe,oCAAS;;AAExB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACJgE;AACd;AACN;;AAE5C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,wDAAQ;AACjB;;AAEA;AACA;AACA,0CAA0C,OAAO;AACjD,SAAS,wDAAQ;AACjB;AACA;AACA,WAAW,wDAAQ;AACnB;AACA;AACA;AACA;AACA,6DAA6D,8CAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,+DAAe;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,6CAAO,aAAa,6CAAO;AAChD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChGiC;;AAEjC;AACA,cAAc;;AAEd,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,sDAAM;AACf;;;;;;;;;;;;;;;;;;;ACT+B;AACc;;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;;;;;;;;ACAiB;AACD;AACD;;AAE9B,cAAc,qDAAK;AACnB,kBAAkB,qDAAK;AACvB;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,mEAAmE,gDAAI;AACvE,gBAAgB,6CAAG;AACnB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;ACjDI;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf,gBAAgB,gDAAI;AACpB,cAAc,gDAAI;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC3BI;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,8CAAI;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,8CAAI;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;ACnGC;AACD;;AAEf;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAG;AACpD;AACA;AACA;AACA,GAAG;AACH,UAAU,gDAAI;AACd;;;;;;;;;;;;;;;;;;;;;;;;AC5CsC;AACJ;AACD;AACI;AACI;AACF;AACA;AACF;;AAErC,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,sDAAM;AACZ;AACA;AACA;;AAEA;AACA,IAAI,sDAAM,0BAA0B,gDAAQ;AAC5C,WAAW,uDAAe;AAC1B;;AAEA;AACA,IAAI,sDAAM,0BAA0B,mDAAW;AAC/C,WAAW,0DAAkB;AAC7B;;AAEA;AACA,IAAI,sDAAM,0BAA0B,kDAAU;AAC9C,WAAW,yDAAiB;AAC5B;;AAEA;AACA,IAAI,sDAAM,0BAA0B,oDAAY;AAChD,WAAW,2DAAmB;AAC9B;;AAEA;AACA,kFAAkF,oDAAQ;AAC1F;;AAEA;AACA;AACA,qDAAqD,kDAAU,QAAQ,mDAAW;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC5DgC;AACA;AACF;;AAE9B,gBAAgB,qDAAK;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb;AACA;AACA,GAAG;AACH;AACA;AACA,yBAAyB,gDAAI;AAC7B,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,8CAAI;AACpB;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;AC5Cb;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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ACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;AC9C0C;AACK;AACX;;AAE7B;AACP,WAAW,6CAAG,SAAS,6CAAG;AAC1B,eAAe,6CAAG,SAAS,6CAAG;AAC9B;;AAEA,qBAAqB,8DAAe,CAAC,0CAAI;;AAEzC,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACfiD;AACX;AACM;AACqB;AACX;;AAEtD,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,0DAAW;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,oDAAQ;AACzB;AACA;;AAEA;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,iFAAiF,oDAAQ,IAAI,8DAAa;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6CAAO,OAAO,6CAAG,cAAc,6CAAG,4BAA4B,6CAAO;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kDAAS;AACpB;AACA;AACA,WAAW,gDAAO;AAClB;AACA;AACA,WAAW,iDAAQ;AACnB;AACA;AACA,WAAW,kDAAS;AACpB;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFuD;AACZ;AACM;AACb;AACE;AACsB;AACf;AACD;AACqB;AAC5B;;AAErC,uBAAuB,0DAAW;AAClC;AACA,0BAA0B,6CAAO,MAAM,6CAAO;AAC9C;AACA,CAAC;;AAED;AACA,SAAS,0DAAW;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;A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CA;;AAEA;AACA;;AAEA,6BAAe,oCAAS;AACxB,qCAAqC,6CAAO,cAAc,6CAAO,kCAAkC,6CAAO;;AAE1G;AACA,0CAA0C,6CAAO,mBAAmB,6CAAO;AAC3E,6BAA6B,6CAAO,oBAAoB,6CAAO;AAC/D;;AAEA;AACA,iDAAiD,6CAAO,mBAAmB,6CAAO;AAClF,6BAA6B,6CAAO,oBAAoB,6CAAO;AAC/D;;AAEA;AACA;;;;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;;ACpEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0BAA0B,0BAA0B;AACpD,uBAAuB,uBAAuB;AAC9C,0BAA0B,0BAA0B;AACpD,wBAAwB,wBAAwB;AAChD,6BAA6B,6BAA6B;AAC1D,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;ACzBO;AACP;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;ACPO;;AAEA;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACnFO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;;;;;;ACZA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACZA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACToC;AACF;AACY;AACF;AACZ;AACE;AACA;AACU;AACI;AACV;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,kDAAW;AACrB,SAAS,kDAAU;AACnB;AACA;;;;;;;;;;;;;;;;AC9EA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA,yBAAyB;AACzB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;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;;;;;;;;;;;;;;;;AC7BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRgD;AACU;AACV;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;;;;;ACd1B;;AAE3C,6BAAe,oCAAS;AACxB,4BAA4B,kDAAO,CAAC,iDAAU;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAkB;AAChC,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;;;;;;;;;;;;;;;;;;ACrH0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA,gBAAgB,sDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kCAAkC,sDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,uDAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,wDAAQ;AAC/E;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC,UAAU,yDAAW;AACrB,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC9EmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,wCAAwC,IAAI,uDAAO;;AAEvE;AACA,cAAc,OAAO;;AAErB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACrH2C;AACC;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,4DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACnDwC;AACiB;;AAEzD;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB,yCAAyC,qDAAI;AAC7C;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,oCAAoC,MAAM,aAAa,8DAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,uDAAQ;AAC5C;;AAEA;AACA,0CAA0C,uDAAQ;AAClD;;AAEA;AACA;;;;;;;;;;;;;;;;;ACxE0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,iBAAiB;AACjB,cAAc;AACd;;AAEA,mCAAmC,+DAAc;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC5OA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7CA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACXmC;AACE;AACI;AACa;;AAEtD,6BAAe,sCAAW;AAC1B,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,sDAAY;AACjC,mBAAmB,sDAAY;AAC/B,qBAAqB,sDAAY;AACjC,sBAAsB,sDAAY;AAClC,oBAAoB,sDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;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;AACA;AACA;;AAEA;AACA,sCAAsC,uDAAQ;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,4EAA4E,wDAAQ;AACpF;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,wDAAQ;AAClF;;AAEA;AACA,4EAA4E,wDAAQ;AACpF;;AAEA;AACA,6EAA6E,wDAAQ;AACrF;;AAEA;AACA,2EAA2E,wDAAQ;AACnF;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC7FoC;AACE;AACW;;AAEjD,iEAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,OAAO;AACzD,sBAAsB,oDAAW;AACjC,aAAa,qDAAY;AACzB;AACA;AACA,MAAM;AACN,gCAAgC,2DAAa;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,EAAE,6CAAG,CAAC,EAAC;;;;;;;;;;;;;;;;ACnCR,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACX6B;AACE;;AAE/B,6BAAe,oCAAS;AACxB,sBAAsB,iDAAK,GAAG,gDAAI;AAClC;;;;;;;;;;;;;;;;;;;;ACLoC;AACE;;AAE/B;;AAEA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;;AAEA;AACA,qBAAqB,8DAA8D;AACnF,kBAAkB,oDAAW;AAC7B,SAAS,qDAAY;AACrB;AACA;;AAEA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;ACjER,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACdA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACN+B;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB,uBAAuB,qDAAK;AAC5B;AACA;;AAEA,iCAAiC;AACjC;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,QAAQ;AAC5C,sBAAsB,qCAAqC;;AAE3D;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AChDiD;AACQ;AACR;AACQ;AACJ;;;;;;;;;;;;;;;;ACJrD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAe;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACnGA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACJgC;AACoE;AACjE;AACD;AACJ;;AAE9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,QAAQ,qDAAQ;AAChB;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,gDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,sDAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,sDAAiB;AACzG;;AAEA;AACA,wCAAwC,4CAAQ,IAAI,+CAAM;AAC1D;;AAEA;AACA,uCAAuC,8CAAU;AACjD;;AAEA;AACA,mBAAmB,8CAAU,mBAAmB,sDAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HsC;AACE;AACL;AACL;AACI;AACC;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iDAAQ;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AA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kDAAG;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,kDAAG;AAC5B;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,8CAAU;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,kDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;;;;;;AC5CmC;AACsB;AACxB;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wBAAwB,iDAAQ,EAAE,iDAAQ;AAC1C;;AAEA;AACA,sCAAsC,iDAAQ,EAAE,iDAAQ;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,kDAAS;AAClB;;AAEe;AACf,qBAAqB,wDAAW;;AAEhC;AACA,WAAW,iDAAI;AACf;;AAEA,EAAE,kDAAe;;AAEjB;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;ACjDkE;AACpC;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,kDAAS;AACjD;AACA;;AAEA;AACA,2CAA2C,gDAAM;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C,gBAAgB,+CAAS;AACzB;AACA;;AAEA;AACA,uCAAuC,8CAAU;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAe;AACxB;;;;;;;;;;;;;;;;;;;;ACzDgC;AACF;AACK;AACF;;AAElB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gDAAM;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,8CAAU;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAe,CAAC,kDAAS;AAClC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A;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+CAA+C;AAC/C,wDAAwD;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B,oFAAoF;AACnH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;AClD8B;AACG;;AAEjC;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,4BAA4B;AAC3D,+BAA+B,4BAA4B,4FAA4F;AACvJ,eAAe,gDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACnDiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,oFAAoF,0EAA0E;AAC7L,+BAA+B;AAC/B,eAAe,gDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACtCiC;;AAEjC;AACA,oBAAoB,4CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,4BAA4B,4CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACvDF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,+CAA+C;AAC/C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B,4BAA4B;AAC3D,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AC5DwB;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,kDAAkD;AACjF,+BAA+B,4BAA4B;AAC3D,eAAe,mDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;AC5D8B;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,kGAAkG;AACjI,+BAA+B;AAC/B,eAAe,mDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AChD6B;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,6CAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,6CAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B;AAC/B,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,wDAAwD,kDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;;ACvF2C;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,kDAAkD;AACjF,+BAA+B,4BAA4B;AAC3D,eAAe,qDAAK,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,8DAA8D,8DAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACzEuC;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,kGAAkG;AACjI,+BAA+B;AAC/B,eAAe,qDAAK,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,4DAA4D,0DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;AC7DR;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,2CAA2C;AAC3C;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;AC9B8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,6DAA6D;AAC7D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B,wDAAwD;AACvF,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,6BAA6B;AACxD,0BAA0B,4BAA4B;AACtD,2BAA2B,6BAA6B;AACxD,kDAAkD;AAClD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACvGA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,cAAc,OAAO;AACrB;AACA,kBAAkB,QAAQ;AAC1B;AACA,cAAc,WAAW;AACzB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;AChEsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACpDA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACF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A;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACvBF;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACVF;AACA;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACzBF,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACJ0C;AACwC;;;;;;;;;;;;;;;;;;ACD/C;;AAE5B;AACP,EAAE,wEAA8B;AAChC;;AAEA,6BAAe,sCAAW;AAC1B,EAAE,8DAAoB;AACtB,EAAE,wEAA8B;AAChC;;;;;;;;;;;;;;;;;;ACTO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;;AAEP;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDqC;AACW;AACD;AACuB;AAC9B;AACH;AACF;AACgB;AACC;;AAEpD;AACA;AACA,UAAU,uDAAa,KAAK,sDAAY;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mDAAQ;AAChC;;AAEA;AACA,UAAU,sDAAY,IAAI,yDAAe,gBAAgB,yDAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAe;AACnC,kBAAkB,uDAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAkB;AACzC;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,+CAA+C,oDAAS;AACxD;;AAEA;AACA;AACA,oEAAoE,oDAAS;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,mCAAmC;AAC1E,oDAAoD,iCAAiC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,mBAAmB,4BAA4B,QAAQ,oDAAS;AAChE;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,yDAAW,KAAK,iDAAS;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAK;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,wDAAS;AACf;AACA;;AAEA,IAAI,uDAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,wDAAM,CAAC,oDAAU;AAC7B,YAAY,wDAAK;AACjB,aAAa,uDAAa;AAC1B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Eb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,gBAAgB,mBAAO,CAAC,4DAAc;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AClEA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,gCAAgC;AACrE,qCAAqC,gCAAgC;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,yBAAyB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,uBAAuB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA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;;AAEH;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kCAAkC;AACxD;;AAEA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B;AAC5B,4BAA4B;AAC5B,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,6DAA6D;AAC7D;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU,yBAAyB;AACnC,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;ACvYA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,kDAAa;AACjC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,aAAa,mBAAO,CAAC,oDAAc;AACnC,YAAY,mBAAO,CAAC,gDAAY;AAChC,mBAAmB,mBAAO,CAAC,gEAAoB;AAC/C,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,YAAY,mBAAO,CAAC,kDAAa;AACjC,aAAa,mBAAO,CAAC,oDAAc;AACnC,cAAc,mBAAO,CAAC,sDAAe;AACrC,cAAc,mBAAO,CAAC,sDAAe;AACrC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,cAAc,mBAAO,CAAC,sDAAe;AACrC,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC3CA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;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,4CAA4C;AAC5C;AACA,4CAA4C;AAC5C;;AAEA;;AAEA;AACA,qCAAqC,8BAA8B;;AAEnE;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,2BAA2B,uCAAuC;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACnIa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,0BAA0B;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACzFA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpDA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI,mBAAmB;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,sFAA4B;;AAExC;;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;AACA;AACA;AACA,yBAAyB,gBAAgB,aAAa,YAAY;AAClE,yCAAyC,mBAAmB;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA,eAAe;AACf,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;AClEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,gBAAgB,mBAAO,CAAC,kEAAc;AACtC,iBAAiB,mBAAO,CAAC,oEAAe;AACxC,mBAAmB,mBAAO,CAAC,wEAAiB;AAC5C,sBAAsB,mBAAO,CAAC,gFAAqB;AACnD,6BAA6B,mBAAO,CAAC,8FAA4B;AACjE,YAAY,sFAA4B;AACxC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,gCAAgC,cAAc;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;AC9Ea;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uDAAuD,wBAAwB;AAC/E,wDAAwD,YAAY;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,wBAAwB;AAC9E;;AAEA;AACA;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,8BAA8B,EAAE;AAChC;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD,uBAAuB;AAC1E;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzHA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,iBAAiB,mBAAO,CAAC,kEAAc;AACvC,uBAAuB,mBAAO,CAAC,gFAAqB;AACpD,WAAW,mBAAO,CAAC,sDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;AC3EA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACxDA,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;;;;;;;;;;;ACrFa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,sFAA4B;AACxC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uDAAuD,mBAAmB;AAC1E;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClaa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;AAC5B,gBAAgB,sFAAyB;;AAEzC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;AC5Ba;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,sFAA4B;AACxC,YAAY,kFAAuB;;AAEnC;;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,sBAAsB,iBAAiB;;AAEvC;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACxFa;;AAEb,eAAe,mBAAO,CAAC,qDAAQ;AAC/B;AACA,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,qBAAqB,mBAAO,CAAC,2EAAmB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,yCAAyC;AACzC,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC/Ca;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,YAAY,kFAAuB;AACnC,eAAe,wFAA6B;AAC5C,eAAe,6FAAmC;AAClD,gBAAgB,8FAAoC;AACpD,eAAe,iFAA2B;;AAE1C;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,8CAA8C,wBAAwB;AACtE;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzOa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9DA;;AAEa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,YAAY,qFAA2B;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mCAAmC;AACxE;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA,0CAA0C,KAAK;AAC/C,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,oDAAoD,wBAAwB;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC,0BAA0B;AAC5D;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC7OA;;;;;;;;;;;ACAA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACuD;AACzD,CAAC,qBAAqB;;AAEtB,qCAAqC,0BAA0B,0CAA0C,gBAAgB,OAAO,oBAAoB,eAAe,OAAO;;AAE1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,yFAAyF,aAAa;AACtG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yEAAyE,eAAe;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,8BAA8B,EAAE,iBAAiB,EAAE,MAAM;AACzD;AACA,sDAAsD;AACtD,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,uGAAuG,qBAAqB,mBAAmB;;AAE/I,uCAAuC,0BAA0B,0CAA0C,gBAAgB,OAAO,oBAAoB,eAAe,OAAO;;AAE5K;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,UAAU;AACvB,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C;;AAE1C;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA,kBAAkB,sBAAsB;AACxC,kBAAkB,sBAAsB;AACxC,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wDAAwD;AACxD,wDAAwD;AACxD;AACA;AACA,8DAA8D;AAC9D,sDAAsD;AACtD,sDAAsD;AACtD;AACA,uDAAuD;AACvD,uDAAuD;AACvD,sEAAsE;AACtE,4DAA4D;AAC5D,oDAAoD;AACpD,4CAA4C;AAC5C,8DAA8D;AAC9D,8DAA8D;AAC9D,4CAA4C;AAC5C,iDAAiD;AACjD,iDAAiD;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oDAAoD;;AAEpD,6CAA6C;;AAE7C;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kCAAkC;AAC3E;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,yFAAyF,gEAAgE;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uTAAuT;AACvT;AACA;AACA;AACA,QAAQ,wCAAwC,wFAAwF,oKAAoK,uHAAuH,mBAAmB;AACtb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC;AACD;;;;;;;;;;;ACl7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+BAA+B;AAC5C;AACA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,mDAAO;;AAEzB;AACA;AACA,QAAQ,mBAAO,CAAC,uDAAY;AAC5B,OAAO,mBAAO,CAAC,2DAAW;AAC1B;AACA;;;;;;;;;;;ACrCA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA,KAAK;AACL,qBAAqB;AACrB;AACA;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,+DAAY;AACnC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA,GAAG,IAAI;AACP;;;;;;;;;;;ACTA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,oBAAoB,mBAAO,CAAC,kFAAwB;;AAEpD;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;ACrDA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACTA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB;AACxB,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;;;;;;;;;;;ACjDA;AACA,cAAc,mBAAO,CAAC,mEAAc;AACpC,YAAY,mBAAO,CAAC,+DAAY;AAChC,eAAe,mBAAO,CAAC,uEAAgB;AACvC,cAAc,mBAAO,CAAC,qEAAe;AACrC,iBAAiB,mBAAO,CAAC,2EAAkB;AAC3C,aAAa,mBAAO,CAAC,mEAAc;AACnC,aAAa,mBAAO,CAAC,iEAAa;AAClC,YAAY,mBAAO,CAAC,+DAAY;AAChC,QAAQ,mBAAO,CAAC,uDAAQ;AACxB,UAAU,mBAAO,CAAC,2DAAU;AAC5B,WAAW,mBAAO,CAAC,6DAAW;AAC9B;;;;;;;;;;;ACZA,cAAc,mBAAO,CAAC,6DAAW;;AAEjC;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,qDAAO;;AAEzB;;AAEA;AACA;AACA;;;;;;;;;;;ACNA,UAAU,mBAAO,CAAC,qDAAO;;AAEzB;;AAEA;AACA;AACA;;;;;;;;;;;ACNA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,YAAY,mBAAO,CAAC,sDAAU;AAC9B,oBAAoB,mBAAO,CAAC,kFAAwB;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;ACnDA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;AC9CA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC;;;;;;;;;;AClCxC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvJa;;AAEb,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE,WAAW;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACnhBA;AACA;AACA,SAAS,mBAAO,CAAC,qDAAS;AAC1B,WAAW,mBAAO,CAAC,yDAAW;AAC9B;;;;;;;;;;;ACJA,QAAQ,mBAAO,CAAC,uDAAU;AAC1B,YAAY,mBAAO,CAAC,qDAAS;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,0CAA0C;AAC1D,GAAG;AACH;AACA;;;;;;;;;;;ACjEA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,aAAa,mBAAO,CAAC,oDAAc;AACnC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,gDAAY;AAChC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,kB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;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;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;;AAEA;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;;AAEA;;;;;;;;;;;ACXA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,+CAAS;AAC7B,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,+CAAS;AAC7B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACrKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;;AAEA;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;;AAEA;;;;;;;;;;;ACfA,cAAc,mBAAO,CAAC,qDAAY;AAClC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,uDAAa;AACpC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;A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A;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvEA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,mDAAW;AACjC,YAAY,mBAAO,CAAC,iDAAU;AAC9B,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;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;;AAEA;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;;;;ACVA,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;;;;;;;;;;;ACzFA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;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ACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3CA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,SAAS,mBAAO,CAAC,yCAAM;AACvB,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,gBAAgB,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChD,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;;;;;;;;;;AC/DA,yFAAqC;;;;;;;;;;;ACArC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,OAAO,6CAA6C;AACpD,OAAO;AACP;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnDA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO,+CAA+C;AACtD,OAAO;AACP;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtDA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,OAAO;AACzB,0BAA0B,gBAAgB,QAAQ,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,gBAAgB,QAAQ,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;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;;AAEA;;;;;;;;;;;AC5EA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,OAAO,kBAAkB;AACzB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD,kBAAkB;AAClB;AACA;AACA,oCAAoC,eAAe;AACnD,WAAW,2BAA2B;AACtC;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;AC1CA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACxEA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,aAAa;AAC/C,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA,6BAA6B;AAC7B,CAAC;;AAED;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,YAAY,mBAAO,CAAC,iDAAU;AAC9B,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,UAAU;AACxB,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;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;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,IAAI,IAAI;AACR,WAAW,8BAA8B;AACzC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClDA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,0BAA0B;AACrC;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;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;;AAEA;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACnCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;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;;AAEA;;;;;;;;;;;AC/DA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA,IAAI,IAAI;AACR,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;AChEA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;AACpC,wBAAwB,mBAAO,CAAC,uEAAqB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA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A;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;;;;;;;;;;;;;;;;;;;ACAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,oDAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,4FAA4F;;AAEvI;AACA;AACA,2CAA2C,gCAAgC,yEAAyE;AACpJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,yCAAyC;;AAElF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;AC7KA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;ACGmB;;;;;;;;;;;;;;;;;;;;;;;;;ACLwB;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClXA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTA,YAAY;;AAEZ;AACA,8CAA8C,KAAK,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;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EA,6BAAe,oCAAS;AACxB,iBAAiB,yDAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;AACA;AACC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,2CAA2C,wDAAQ;;AAEnD,uGAAuG,OAAO;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,gDAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,wBAAwB;AACxB;;;;;;;;;;;;;;;;AC/HA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJuC;;AAEvC;AACA,eAAe,sDAAW;AAC1B;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjCA,6BAAe,oCAAS;;AAExB,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACTA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;ACFiC;AACI;;AAErC,6BAAe,sCAAW;AAC1B,aAAa,gDAAS,iCAAiC,kDAAM;AAC7D;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,sDAAsD;AACvF,wCAAwC,gDAAgD;AACxF,sCAAsC,8CAA8C;AACpF,yCAAyC;AACzC;;;;;;;;;;;;;;;;;;ACrBiC;AACI;;AAErC,6BAAe,sCAAW;AAC1B,aAAa,gDAAS,gCAAgC,kDAAM;AAC5D;;;;;;;;;;;;;;;;;;ACLqC;AACD;;AAEpC,6BAAe,oCAAS;AACxB,2CAA2C,uDAAO;;AAElD,sFAAsF,OAAO;AAC7F,6FAA6F,OAAO;AACpG;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB2C;AACM;AACI;AACM;AAChB;AACJ;AACE;AACF;AACA;AACE;AACA;AACF;AACA;AACE;AACF;AACA;AACE;AACF;AACA;AACE;AACM;AACF;AACN;AACA;AACE;AACA;AACE;AACA;AACA;AACF;AACA;AACN;AACY;AACA;;AAExC;;AAEA;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,kDAAgB;AAC1B,aAAa,qDAAmB;AAChC,eAAe,uDAAqB;AACpC,kBAAkB,0DAAwB;AAC1C,UAAU,kDAAgB;AAC1B,QAAQ,gDAAc;AACtB,SAAS,iDAAe;AACxB,QAAQ,gDAAc;AACtB,QAAQ,gDAAc;AACtB,SAAS,iDAAe;AACxB;AACA,SAAS,kDAAe;AACxB,QAAQ,iDAAc;AACtB,QAAQ,iDAAc;AACtB,SAAS,kDAAe;AACxB,QAAQ,iDAAc;AACtB,QAAQ,iDAAc;AACtB,SAAS,kDAAe;AACxB,QAAQ,iDAAc;AACtB,QAAQ,iDAAc;AACtB,SAAS,kDAAe;AACxB,YAAY,qDAAkB;AAC9B,WAAW,oDAAiB;AAC5B,QAAQ,iDAAc;AACtB,QAAQ,iDAAc;AACtB,SAAS,kDAAe;AACxB,SAAS,kDAAe;AACxB,UAAU,mDAAgB;AAC1B,UAAU,mDAAgB;AAC1B,UAAU,mDAAgB;AAC1B,SAAS,kDAAe;AACxB,SAAS,kDAAe;AACxB,MAAM,+CAAY;AAClB,YAAY,qDAAkB;AAC9B,qBAAqB,qDAAkB;AACvC;;AAEA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;ACzFW;AACE;;AAEtC;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,mDAAmD,uDAAO;AAC1D,uFAAuF,wDAAQ;AAC/F;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACbA,6BAAe,uCAAY;AAC3B,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;ACNqC;;AAErC,6BAAe,oCAAS;AACxB;;AAEA,+JAA+J,OAAO;AACtK,yHAAyH,OAAO;AAChI;AACA;AACA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;AClBA,6BAAe,sCAAW;;AAE1B,4DAA4D,OAAO;AACnE,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACVA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;;;;;;;;;;;;;;;AClEA,6BAAe,sCAAW;;AAE1B,6DAA6D,QAAQ;AACrE,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;ACPqC;AACC;;AAEtC,6BAAe,oCAAS;AACxB,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;;;AChBqC;AACL;AACY;;AAE5C;AACA;AACA,WAAW,qDAAK;AAChB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,gBAAgB,2DAAW;;AAE3B,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;ACxB2C;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,wDAAwD,yDAAY;AACpE;;;;;;;;;;;;;;;;;ACjB2C;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,6DAA6D,yDAAY;AACzE;;;;;;;;;;;;;;;;ACjBA,6BAAe,sCAAW;AAC1B;AACA,mCAAmC;AACnC;AACA;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,uFAAuF,OAAO;AAC9F,yGAAyG,OAAO;AAChH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACvBA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;ACFuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,sDAAW;AACpB;;;;;;;;;;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxBA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;ACJiC;;AAEjC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI;;AAE/H;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7GiD;AACE;;AAEnD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,mBAAmB,4DAAU;AAC7B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpB8B;AAC8B;AACd;AACM;;;;;;;;;;;;;;;;;ACHa;;AAEjE,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,mDAAmD,eAAe;AAClE,8BAA8B,6DAAQ,qBAAqB,2DAAM;AACjE,qBAAqB,0DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACvBuC;AACU;AACE;;AAEnD,wEAA6B,GAAG,qDAAmB;AACnD,yEAA8B,GAAG,sDAAoB;;;;;;;;;;;;;;;;;ACLb;;AAExC,6BAAe,oCAAS;AACxB;AACA,IAAI,yDAAS;AACb,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACNyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,+CAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA,sBAAsB,4DAAU;AAChC;AACA,IAAI;AACJ,SAAS,2DAAK,oCAAoC,6CAAG;AACrD;;AAEA,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,QAAQ,mEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,4DAAU;AACvB;;;;;;;;;;;;;;;;;;;;ACzC+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,wDAAS,uCAAuC,mEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,qDAAU;AAChF;AACA;AACA;;;;;;;;;;;;;;;;;AC7EuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;A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BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,+CAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,sCAAsC,oDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;AACA,2DAA2D;AAC3D;AACA,IAAI,oDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxJsC;AACA;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA,QAAQ,wDAAQ,qCAAqC,iDAAG;AACxD;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;ACrByC;AACH;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAW;;AAExD,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA,yFAAyF,iDAAG,wCAAwC,OAAO;AAC3I;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;ACzBuC;;AAEvC,gBAAgB,0EAA+B;;AAE/C,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;ACN+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB,oDAAoD,wDAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA,6EAA6E,wDAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,yCAAyC,mEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,qBAAqB,qDAAU;AAC/B;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB6C;AACD;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA,YAAY,gDAAK;;AAEjB,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,sBAAsB,iDAAG;AACzB,QAAQ,wDAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;ACvBuC;;AAEvC;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,4BAA4B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;;AAEA;AACA,gBAAgB,iDAAG;AACnB,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA,mBAAmB,iDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,iDAAG;AACd;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFqC;AACW;AACL;AACE;AACL;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB,OAAO,eAAe;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,iEAAiE;AAC3F,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,0BAA0B,iEAAiE;AAC3F,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wDAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,gBAAgB;;AAEvD;;AAEA;AACA,qCAAqC,oCAAoC;AACzE,sCAAsC,yBAAyB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,sDAAsD;AACrG,6DAA6D,sCAAsC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,wDAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,wDAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,iHAAiH;AACpJ,mCAAmC,iGAAiG;AACpI,uCAAuC,wGAAwG;AAC/I,wCAAwC,wGAAwG;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,wDAAM;AACpB;AACA;AACA;AACA,YAAY,iDAAU;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wDAAO;AACrB;AACA;AACA;AACA,SAAS;;AAET,IAAI,wDAAS;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,wDAAM;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,wDAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA,MAAM,oDAAW;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD,wDAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0DAAa;AACnB;AACA;AACA;AACA,8CAA8C,qBAAqB,QAAQ;AAC3E,QAAQ;AACR,QAAQ,gDAAU;AAClB;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,yEAAyE,wDAAQ;AACjF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC5mBA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACAb;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,kDAAkD;AAC7D,kBAAkB,yDAAyD;AAC3E,aAAa,oDAAoD;AACjE,gBAAgB,uDAAuD;AACvE,WAAW,kDAAkD;AAC7D,QAAQ;AACR,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACVoB;;;;;;;;;;;;;;;;;ACLb;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;ACjIb;;;;;;;;;;;;;;;;;;;ACA4B;;AAEnC;AACA,qBAAqB,cAAc;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,cAAc;AAC9C;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA,QAAQ,6CAAG,IAAI,yCAAG;AAClB,wBAAwB,yCAAG;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,2BAA2B;AACpG,8BAA8B;AAC9B,cAAc;AACd,uEAAuE,2BAA2B;AAClG,8BAA8B;AAC9B;AACA;AACA,uBAAuB;AACvB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,iEAAiE,2BAA2B;AAC5F,8BAA8B;AAC9B,cAAc;AACd,iEAAiE,2BAA2B;AAC5F,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,6CAAG;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACzHA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACJ2E;AAChB;;;;;;;;;;;;;;;;;;;;;;;ACDpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACPsB;AACI;AACI;AACoB;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,iDAAU;AACzB;AACA,6CAA6C,4CAAM;AACnD,2CAA2C,4CAAM;AACjD;AACA,6CAA6C,4CAAM;AACnD,2CAA2C,4CAAM;;AAEjD,qCAAqC,mDAAI;;AAEzC,aAAa,6CAAO;AACpB,UAAU,6CAAG,uBAAuB,6CAAO;AAC3C;AACA,UAAU,6CAAG,uBAAuB,6CAAO;AAC3C;AACA;;AAEA,wBAAwB,6CAAG,YAAY,6CAAG;AAC1C;AACA;AACA;AACA;AACA,6CAA6C,6CAAG,aAAa,6CAAG;AAChE,4BAA4B,6CAAG,YAAY,6CAAG;AAC9C,6BAA6B,6CAAG,aAAa,6CAAG;AAChD,QAAQ;AACR,4CAA4C,6CAAG,YAAY,6CAAG;AAC9D;AACA;AACA;AACA,wCAAwC,6CAAG,YAAY,6CAAG;AAC1D;;AAEA;AACA;;AAEA;AACA,0EAA0E,wDAAQ;AAClF;;AAEA;AACA,2FAA2F,wDAAQ;AACnG;;AAEA;AACA,4EAA4E,wDAAQ;AACpF;;AAEA;AACA,4EAA4E,wDAAQ;AACpF;;AAEA;AACA,0EAA0E,wDAAQ;AAClF;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACrIe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5Be;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACZgC;;AAEjB;AACf,4BAA4B,qDAAK;AACjC;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrDA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA;;AAEO;;;;;;;;;;;;;;;;ACFP,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1CA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACA5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC1BmE;AAClC;AACM;AACV;AACQ;AACA;AACR;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA,kBAAkB,gDAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,oDAAM,eAAe,kDAAQ;AAC7C,WAAW,oDAAK;AAChB,MAAM;AACN,2BAA2B,qDAAS;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oDAAI;AACd;AACA,KAAK;;AAEL;AACA,oDAAoD,OAAO;AAC3D,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,+DAA+D;AAC/D;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,+DAA+D;AAC/D;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,wDAAQ,CAAC,iDAAU,OAAO,wDAAQ;AAC9H;;AAEA;AACA,2DAA2D,gDAAI;AAC/D;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACvM8C;AACb;AACM;AACF;AACA;;AAErC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAQ;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;;AAEpF;;AAEA;AACA;AACA,iBAAiB,oDAAG;AACpB,WAAW,kDAAQ;AACnB,WAAW,oDAAK;AAChB;AACA;;AAEA,WAAW,wDAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,wDAAQ,CAAC,iDAAU,OAAO,wDAAQ;AAC9H;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC5IkD;AACK;;;;;;;;;;;;;;;;ACDvD,6BAAe,sCAAW;;;;;;;;;;;;;;;;;;;;ACAU;AACP;AACM;AACA;;AAEnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS,mBAAmB;AAC5B,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kDAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,wBAAwB;AAChE,iGAAiG;AACjG;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA,6BAA6B,kDAAU;AACvC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAO;AACtB;AACA;AACA,WAAW,4DAA4D;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yDAAyD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,8BAA8B;AACzC,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,QAAQ;AACnB,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,cAAc;AACzB;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAO;AAC/B;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA,wBAAwB,mDAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvPkD;AACF;;;;;;;;;;;;;;;;ACDhD;;AAEe;AACf;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,kBAAkB,yBAAyB,GAAG,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc,GAAG,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,GAAG,GAAG,GAAG;AAClD;AACA;AACA,kBAAkB,EAAE,GAAG,EAAE,SAAS,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,cAAc,GAAG,cAAc;AAC/F;AACA;AACA,kBAAkB,yBAAyB,GAAG,yBAAyB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACzF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpCe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChB6B;AACM;;AAEpB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW,wBAAwB,WAAW;;AAEzD;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,WAAW,yBAAyB,0BAA0B;AACzE;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW,SAAS;AAC/B,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAO;AAC/B;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,qDAAqD,SAAS;AAC9D,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B,gCAAgC;AACrE;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA;AACA,iFAAiF,OAAO;AACxF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,MAAM,mBAAmB;AACzB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,MAAM,mBAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACtU2B;;AAE3B,UAAU,mDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVP,YAAY;AACZ,YAAY;AACZ;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA,GAAG,gBAAgB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACnK2B;;AAE3B,UAAU,mDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;ACPqD;AACxB;;AAE7B;AACA;AACA;AACA,WAAW,oDAAI;AACf;AACA,KAAK;AACL;AACA;;AAEe;AACf;AACA,eAAe,kDAAS;AACxB,SAAS,oDAAI;AACb;AACA,GAAG;AACH;;AAEO,mBAAmB,4CAAQ;AAC3B,mBAAmB,4CAAQ;;;;;;;;;;;;;;;;ACrBlC,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR0C;AACI;AACI;AACN;AACF;AACA;AACS;;;;;;;;;;;;;;;;ACNnD;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACP6B;;AAE7B;AACA,0BAA0B,oDAAI;AAC9B;AACA;;AAEA,iEAAe,yBAAyB,EAAC;;AAElC;;AAEA;;;;;;;;;;;;;;;;ACXP,YAAY;;AAEZ;AACA,8CAA8C,KAAK,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,mFAAmF,OAAO;AAC1F;AACA,gDAAgD,OAAO;AACvD,GAAG;AACH;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACnFxB,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD,IAAI;AACJ;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnFA,6BAAe,oCAAS;AACxB,mDAAmD;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1CA,6BAAe,sCAAW;AAC1B;AACA;AACA,+CAA+C;AAC/C,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJ6B;;AAE7B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,gDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACrEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNyD;AACrB;AACF;AACI;AACJ;AACmC;AACnC;AACA;AACE;AACU;AACN;AACA;;AAEzB;AACf,sCAAsC,2CAAQ,kBAAkB,2CAAQ;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B,+CAA+C;AAC/C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,YAAY,gDAAgD;AAC5D;AACA,oBAAoB,OAAO;AAC3B;AACA,sCAAsC,qDAAqD;AAC3F;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,+CAAQ;AACxB,mBAAmB,2CAAW;AAC9B,kBAAkB,iDAAU;AAC5B,iBAAiB,gDAAS;AAC1B,mBAAmB,kDAAW;AAC9B,iBAAiB,gDAAS;AAC1B,mBAAmB,kDAAW;AAC9B,sBAAsB,iDAAc;AACpC,iBAAiB,gDAAS;AAC1B,iBAAiB,gDAAS;AAC1B,kBAAkB,kDAAU;AAC5B,uBAAuB,uDAAe;AACtC,cAAc,6CAAM;AACpB,cAAc,6CAAM;;;;;;;;;;;;;;;;;ACxEpB,6BAAe,oCAAS;AACxB,2FAA2F;;AAE3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP,mCAAmC,OAAO;AAC1C;AACA;;;;;;;;;;;;;;;;AC7DA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,sCAAW;AAC1B;AACA;AACA,iCAAiC;AACjC,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;ACN6B;;AAE7B,6BAAe,oCAAS;AACxB;AACA,2BAA2B,gDAAI;AAC/B;AACA;AACA;AACA,0CAA0C,gDAAI;AAC9C,0CAA0C,gDAAI;AAC9C,0CAA0C,gDAAI;AAC9C,0CAA0C,gDAAI;AAC9C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACf6B;;AAE7B,6BAAe,oCAAS;AACxB;AACA,iCAAiC,gDAAI;AACrC;AACA;AACA;AACA;AACA,0CAA0C,gDAAI;AAC9C,0CAA0C,gDAAI;AAC9C,0CAA0C,gDAAI;AAC9C,0CAA0C,gDAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpBO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACNO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI;;AAE/H;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7GA,6BAAe,oCAAS;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;;AAEA,4EAA4E,OAAO;AACnF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACvCqC;AACA;AACJ;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,wDAAQ;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC,aAAa,uDAAQ;AACrB,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAM;AACnC,6BAA6B,sDAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;;;;;;;;;;;;;;;;ACnGA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJmD;AACE;AACN;AACQ;AACJ;AACQ;AAClB;AACA;;;;;;;;;;;;;;;;ACPzC,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA,sBAAsB;;AAEtB,6BAAe,sCAAW;AAC1B;AACA;AACA;;;;;;;;;;;;;;;;;;ACRqC;AACJ;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,iBAAiB,wDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,gBAAgB;AACtD,wDAAwD,OAAO;AAC/D;AACA,2DAA2D,sDAAM;AACjE,2DAA2D,sDAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACpHqC;AACA;AACJ;AACI;;AAErC,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,wDAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,uDAAQ,QAAQ,6CAAC,EAAE,6CAAC;AACxD,2BAA2B,OAAO;AAClC;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA,yBAAyB,sDAAM;AAC/B,yBAAyB,sDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C;AAC1C;AACA,uBAAuB,sDAAM;AAC7B,uBAAuB,sDAAM;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACnHqC;;AAErC,6BAAe,oCAAS;AACxB;AACA,iBAAiB,wDAAQ;AACzB;AACA;;AAEA,6CAA6C,wDAAQ;AACrD;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;ACxDqC;AACN;AACJ;;AAEpB;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+CAAK;AACrB,cAAc,uDAAQ;AACtB,eAAe,mDAAG;;AAElB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA,OAAO;;AAEP,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3JqC;;AAErC,6BAAe,oCAAS;AACxB,iBAAiB,wDAAQ;AACzB;AACA;AACA;;AAEA,mCAAmC,wDAAQ;;AAE3C;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA;;;;;;;;;;;;;;;;;ACxCqC;;AAErC,6BAAe,oCAAS;AACxB,iBAAiB,wDAAQ;AACzB;AACA;AACA;;AAEA,mCAAmC,wDAAQ;;AAE3C;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACxCA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;ACRe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACZ+B;AACoC;AACtC;AACI;;AAE1B,sBAAsB,2CAAK;;AAElC;;AAEA,kBAAkB,2CAAK;AACvB;AACA;AACA;AACA;AACA;;AAEO;AACP,SAAS,gDAAI;AACb,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA,sBAAsB,2CAAK;AAC3B;AACA;AACA,GAAG;AACH;AACA;AACA,+BAA+B,yCAAG;AAClC,iDAAiD,gDAAI;AACrD,GAAG;AACH;AACA,gBAAgB,yCAAG;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,8BAA8B,6CAAG,iBAAiB,+CAAS,aAAa,6CAAG;AAC3E;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,kBAAkB,+CAAS,EAAE;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB,eAAe,6CAAG;AAClB;AACA,iCAAiC,6CAAG;AACpC,yBAAyB,6CAAG;AAC5B,kBAAkB,+CAAK;;AAEvB;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,gBAAgB,2CAAK;AACrB,EAAE,sDAAM;AACR;AACA;;;;;;;;;;;;;;;;;;;;;AC3E+B;AACmB;AAC6C;AACtC;AACxB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAK;AACxB,IAAI,6DAAuB;AAC3B,GAAG;AACH;AACA,IAAI,2DAAqB;AACzB;AACA;AACA;AACA,QAAQ,iDAAW;AACnB,wBAAwB,6CAAO;AAC/B,yBAAyB,6CAAO;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,wDAAS,WAAW,6CAAO,QAAQ,6CAAO;AACpD;AACA,iBAAiB,6DAAc;AAC/B;AACA,qBAAqB,6DAAc;AACnC,IAAI,wEAAyB;AAC7B,iBAAiB,wDAAS;AAC1B;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA,uBAAuB,6CAAG;AAC1B;AACA,6BAA6B,6CAAO;AACpC;AACA,MAAM;AACN,8BAA8B,6CAAO;AACrC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,6CAAG;AACpB,IAAI;AACJ;AACA;AACA,EAAE,sDAAgB;AAClB;AACA;;AAEA;AACA,EAAE,0DAAoB;AACtB;;AAEA;AACA;AACA,EAAE,wDAAkB;AACpB,MAAM,6CAAG,aAAa,6CAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,EAAE,sDAAM;;AAER;AACA;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AClLsD;;AAE/C;AACP,UAAU,+CAAK,8BAA8B,8CAAI;AACjD;;AAEO;AAC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CA,WAAW,6CAAG,WAAW,6CAAG;AAC5B;;AAEA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wCAAE,IAAI,wCAAE;AACxD;AACA;AACA;AACA,yBAAyB,0DAAU,oBAAoB,0DAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAU;AACxC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,wDAAS;AACtB,aAAa,wDAAS;;AAEtB;AACA;AACA;AACA,aAAa,6DAAc;AAC3B,eAAe,2DAAY;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,6DAAc;AAC9B,YAAY,6DAAc;AAC1B,YAAY,6DAAc;AAC1B,IAAI,kEAAmB;;AAEvB;AACA;AACA,YAAY,2DAAY;AACxB,aAAa,2DAAY;AACzB,2BAA2B,2DAAY;;AAEvC;;AAEA,YAAY,8CAAI;AAChB,YAAY,6DAAc;AAC1B,IAAI,kEAAmB;AACvB,QAAQ,wDAAS;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,6CAAG,SAAS,wCAAE,IAAI,6CAAO;AACzC,oCAAoC,6CAAO;;AAE3C;;AAEA;AACA;AACA;AACA,sCAAsC,6CAAG,mBAAmB,6CAAO;AACnE;AACA,kBAAkB,wCAAE;AACpB,eAAe,6DAAc;AAC7B,MAAM,kEAAmB;AACzB,iBAAiB,wDAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,wCAAE;AACrC;AACA,gCAAgC;AAChC,oCAAoC;AACpC,6BAA6B;AAC7B,iCAAiC;AACjC;AACA;;AAEA,SAAS,qDAAI,gEAAgE,wCAAE,WAAW,wCAAE;AAC5F;;;;;;;;;;;;;;;;;AChL2C;;AAE3C,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,yDAAa;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnBqC;AACA;AACM;AACS;AACrB;;AAE/B,6BAAe,oCAAS;AACxB;AACA;AACA,qBAAqB,sDAAU;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB,oDAAK;AACxB,0BAA0B,+DAAe;AACzC;AACA;AACA,UAAU,sDAAU;AACpB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,4CAAM,GAAG,6CAAO,GAAG,4CAAM;AAC7D,oCAAoC,4CAAM,GAAG,6CAAO,GAAG,4CAAM;AAC7D;;;;;;;;;;;;;;;;AClIA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1DwC;AACH;AACJ;AACI;AACN;;AAE/B;;AAEA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,WAAW,6CAAG,cAAc,6CAAO;AACnC,UAAU,6CAAG,cAAc,6CAAO;AAClC,UAAU,6CAAG,cAAc,6CAAO;AAClC,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,sDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,OAAO;AACjD,mHAAmH,OAAO;AAC1H;AACA,0BAA0B;AAC1B,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,oDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvK0C;AACP;;AAEnC;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,0DAAU;AAClB;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,6CAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA,+BAA+B,OAAO;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,sCAAsC,QAAQ;AAC9C,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtGA,6BAAe,oCAAS;;AAExB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACJgE;AACd;AACN;;AAE5C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,wDAAQ;AACjB;;AAEA;AACA;AACA,0CAA0C,OAAO;AACjD,SAAS,wDAAQ;AACjB;AACA;AACA,WAAW,wDAAQ;AACnB;AACA;AACA;AACA;AACA,6DAA6D,8CAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,+DAAe;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,6CAAO,aAAa,6CAAO;AAChD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChGiC;;AAEjC;AACA,cAAc;;AAEd,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,sDAAM;AACf;;;;;;;;;;;;;;;;;;;ACT+B;AACc;;AAE7C;AACA,UAAU,oDAAK,UAAU,6CAAO;AAChC,uBAAuB,2BAA2B,gBAAgB;AAClE;;AAEA;AACA,UAAU,oDAAK,UAAU,6CAAO;AAChC,uBAAuB,2BAA2B,gBAAgB;AAClE;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,WAAW,oDAAK,CAAC,8CAAI;AACrB,gBAAgB,oDAAK,CAAC,8CAAI;AAC1B,gBAAgB,oDAAK,CAAC,8CAAI,6CAA6C,OAAO,6CAAG,WAAW,6CAAO,GAAG;AACtG,gBAAgB,oDAAK,CAAC,8CAAI,6CAA6C,OAAO,6CAAG,WAAW,6CAAO,GAAG;AACtG;;AAEA;AACA,+CAA+C,QAAQ,gDAAgD;AACvG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,6CAAO,cAAc,6CAAO;AAC7D,iCAAiC,6CAAO,cAAc,6CAAO;AAC7D;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACxGA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAuB;AACI;AACI;AACJ;AACqB;AACZ;AACA,CAAC;AACK;AACX;AACA;AACiC;AAC3B;AACV;AACE;AACS;AACM;AACqE;AACQ;AACxB;AACA;AACQ;AACxB;AACoB;AAC5B;AAC/B;AAC0C;AACX;AACoB;AACJ;AACI;AACoB;AAClF;AACJ;AACM;;;;;;;;;;;;;;;;;ACjC2B;;AAElF,6BAAe,oCAAS;AACxB,kBAAkB,6CAAO;AACzB,kBAAkB,6CAAO;AACzB,kBAAkB,6CAAO;AACzB,kBAAkB,6CAAO;AACzB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,kBAAkB,6CAAG;AACrB,kBAAkB,6CAAG;AACrB,kBAAkB,6CAAG;AACrB,kBAAkB,6CAAG;AACrB,cAAc,8CAAI,CAAC,8CAAI,CAAC,kDAAQ,wBAAwB,kDAAQ;AAChE,UAAU,6CAAG;;AAEb;AACA,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf;AACA;AACA;AACA;AACA,MAAM,+CAAK,SAAS,6CAAO;AAC3B,MAAM,+CAAK,IAAI,8CAAI,mBAAmB,6CAAO;AAC7C;AACA,IAAI;AACJ,iBAAiB,6CAAO,OAAO,6CAAO;AACtC;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACnC+B;AAC+B;AACjC;AACI;;AAEjC;AACA;AACA;AACA;;AAEA;AACA,UAAU,gDAAI;AACd,SAAS,gDAAI;AACb;AACA,WAAW,gDAAI;AACf,gBAAgB,gDAAI;AACpB,cAAc,gDAAI;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,gDAAI;AAClD;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,8BAA8B,6CAAG,iBAAiB,6CAAG;AACrD;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,eAAe,6CAAG;AAClB,cAAc,6CAAG;AACjB,iBAAiB,6CAAG;AACpB,iBAAiB,6CAAG;AACpB;AACA;AACA;AACA,gBAAgB,+CAAK,CAAC,8CAAI;AAC1B;AACA;;AAEA,6BAAe,oCAAS;AACxB,kBAAkB,2CAAK;AACvB,EAAE,sDAAM;AACR;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDO;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACnCe;;;;;;;;;;;;;;;;;;;ACAgB;AACA;AACD;;AAE9B,kBAAkB,2CAAK;AACvB,sBAAsB,2CAAK;AAC3B;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,mEAAmE,gDAAI;AACvE,gBAAgB,6CAAG;AACnB,sBAAsB,2CAAK;AAC3B,GAAG;AACH;AACA;AACA,kBAAkB,2CAAK;AACvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;ACjDI;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf,gBAAgB,gDAAI;AACpB,cAAc,gDAAI;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC3BI;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,8CAAI;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU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;;;;;;;;;;;ACnCoC;;AAE7B;AACP;AACA;;AAEA;;AAEA,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA;;;;;;;;;;;;;;;;;;;;;ACXkD;AACL;;AAE7C;AACA;AACA;AACA;AACA,EAAE,sDAAS,2BAA2B,uDAAY;AAClD,YAAY,8DAAmB;AAC/B;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;AC9C0C;AACK;AACX;;AAE7B;AACP,WAAW,6CAAG,SAAS,6CAAG;AAC1B,eAAe,6CAAG,SAAS,6CAAG;AAC9B;;AAEA,qBAAqB,8DAAe,CAAC,0CAAI;;AAEzC,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACfiD;AACX;AACM;AACqB;AACX;;AAEtD,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,0DAAW;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,oDAAQ;AACzB;AACA;;AAEA;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,iFAAiF,oDAAQ,IAAI,8DAAa;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6CAAO,OAAO,6CAAG,cAAc,6CAAG,4BAA4B,6CAAO;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kDAAS;AACpB;AACA;AACA,WAAW,gDAAO;AAClB;AACA;AACA,WAAW,iDAAQ;AACnB;AACA;AACA,WAAW,kDAAS;AACpB;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFuD;AACZ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B;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACnFO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACdA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPoC;AACF;AACY;AACF;AACV;AACF;AACE;AACA;AACU;AACI;AACV;AACF;AACM;;AAE3B;AACf;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,QAAQ,gDAAS;AACjB,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,mDAAW;AACrB,SAAS,kDAAU;AACnB;AACA,qBAAqB,qDAAa;AAClC;;;;;;;;;;;;;;;;AC1FA,6BAAe,uCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;;;;;;ACbA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA,yBAAyB;AACzB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;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;;;;;;;;;;;;;;;;AC7BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRgD;AACgB;AAChB;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;;;;;ACdjC;;AAEpC,6BAAe,oCAAS;AACxB,4BAA4B,kDAAO;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAkB;AAChC,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;;;;;;;;;;;;;;;;;;ACrH0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA,gBAAgB,sDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kCAAkC,sDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,uDAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,wDAAQ;AAC/E;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC,UAAU,yDAAW;AACrB,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9EgC;AACG;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP,uBAAuB,qDAAK;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,wCAAwC,IAAI,uDAAO;;AAEvE;AACA,cAAc,OAAO;;AAErB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACtH2C;AACC;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,4DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACnDwC;AACiB;;AAEzD,eAAe,UAAU;AACzB,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;;AAEA;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;;AAEA,kCAAkC,OAAO;AACzC,0CAA0C,qDAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,oCAAoC,MAAM,aAAa,8DAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,uDAAQ;AAC5C;;AAEA;AACA,0CAA0C,uDAAQ;AAClD;;AAEA;AACA,sCAAsC,uDAAQ;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA,sCAAsC,KAAK;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChJ0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,iBAAiB;AACjB,cAAc;AACd;;AAEA,mCAAmC,+DAAc;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC5OA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7CA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACXmC;AACE;AACI;AACa;;AAEtD,6BAAe,sCAAW;AAC1B,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,sDAAY;AACjC,mBAAmB,sDAAY;AAC/B,qBAAqB,sDAAY;AACjC,sBAAsB,sDAAY;AAClC,oBAAoB,sDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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EAAe;AACf,UAAU,wDAAY;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;;;AClB6B;AAClB;AACU;;AAEvC,iEAAe;AACf,UAAU,4DAAgB;AAC1B,UAAU,uDAAW;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;ACrC6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;ACdlB,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;ACAoB;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACZ6B;AACd;;AAEjC,iEAAe;AACf,qBAAqB,yDAAa;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;ACjC6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBoC;AACR;AACM;AACM;AACR;AACQ;AACI;AACV;AACM;AACA;AACF;AACN;AACF;AACM;AACF;AACI;AACF;AACR;;;;;;;;;;;;;;;;;ACjBC;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;ACf6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;ACdlB;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;;ACR+C;AACd;;AAEjC,iEAAe;AACf,UAAU,yDAAa;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;AChB6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;ACf6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;AC3B6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACd6B;AACV;AACN;;AAE/B,iEAAe;AACf,UAAU,wDAAY;AACtB,UAAU,2DAAe;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;AC1B6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;AChB6B;;AAE/C,iEAAe;AACf;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,EAAE,yDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACrByB;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClX2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,uBAAuB,kDAAM,CAAC,4CAAK;AACzC;AACA,oBAAoB,+CAAQ,YAAY,+CAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,6CAAM,YAAY,6CAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,6CAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,0CAAG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;;AAEvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kDAAM;;AAEZ,iEAAe,oDAAI,QAAQ,EAAC;;;;;;;;;;;;;;;;ACbb;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;ACFuC;AACF;AACJ;;AAEjC,wBAAwB,wDAAQ,CAAC,qDAAS;AACnC;AACA;AACA,qBAAqB,wDAAQ,CAAC,kDAAM;AAC3C,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;ACRY;;AAExB;AACf;AACA;AACA;;AAEA;AACA;AACA,eAAe,qDAAS;AACxB,yBAAyB,yDAAS;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;;;;;;AC3Ce;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;ACF2B;AACA;AACgB;AACC;;AAE7B;AACf,6BAA6B,mDAAO;AACpC;AACA,qCAAqC,mDAAG;AACxC,qBAAqB,mDAAG;AACxB;AACA;AACA;AACA,eAAe,mDAAG,CAAC,2DAAW;AAC9B,eAAe,mDAAG;AAClB;AACA;;AAEO,6CAA6C,kDAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5B2D;;AAE3D;AACA;AACe;AACf,oCAAoC,sDAAgB,GAAG,wDAAc;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7Ce;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACZuC;AACJ;;AAEpB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,WAAW,uDAAO;AAClB;AACA;AACA;;AAEO,kCAAkC,qDAAS;AAClD,kBAAkB,qDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACrD2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClXA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACTuC;;AAEvC;AACO;AACA;;AAEP;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,sDAAY;AACvB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBsD;;AAEtD,6BAAe,oCAAS;AACxB,aAAa,qEAAkB;AAC/B;;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,gGAAgG;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACjBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACNsD;;AAE/C;;AAEP,6BAAe,oCAAS;AACxB,UAAU,qEAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qEAAkB,gCAAgC;AAC9F;;;;;;;;;;;;;;;;;ACfsD;;AAEtD,6BAAe,oCAAS;AACxB,UAAU,qEAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,uDAAuD;;AAEhD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9CA;AACA,6BAAe,oCAAS;AACxB,kDAAkD,OAAO;AACzD;AACA,6BAA6B;AAC7B,sCAAsC,QAAQ;AAC9C,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACV+C;AACM;AACN;;AAE/C,iEAAe;AACf;AACA;AACA;AACA,OAAO,yDAAa;AACpB;AACA;AACA;AACA;AACA,iBAAiB,6DAAa;AAC9B,OAAO,yDAAa;AACpB,OAAO,4DAAgB;AACvB;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AClBF,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACFqC;AACM;AACM;AACE;AACV;AACE;AACU;AAChB;;AAErC;AACA;;AAEA,6BAAe,oCAAS;AACxB,gFAAgF,oDAAQ,GAAG,2DAAW;AACtG;AACA;AACA;AACA,iDAAiD,oDAAQ,GAAG,8DAAc;AAC1E;AACA;AACA;;AAEA;AACA,gBAAgB,+DAAe;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,uDAAW;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uDAAW;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,0DAAU;;AAEpC;AACA;;AAEA;AACA;AACA,mDAAmD,gEAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;AACvE,uEAAuE;AACvE,sIAAsI;AACtI,sEAAsE;AACtE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,+DAAe;AAClD,gDAAgD,wDAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnJqC;;AAErC,6BAAe,oCAAS;AACxB,sBAAsB,wDAAQ;AAC9B;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB,yDAAyD,wDAAQ,qBAAqB,wDAAQ;AAC9F;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB;AACA,qBAAqB,wDAAQ,QAAQ,wDAAQ;AAC7C;;;;;;;;;;;;;;;;;;;ACL+B;AAC6B;;AAE5D,6BAAe,oCAAS;AACxB,UAAU,8DAAa,MAAM,uDAAW;AACxC;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,cAAc,QAAQ,YAAY,qDAAK;AACvC,SAAS,QAAQ;;AAEjB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;ACrBO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClBiC;;AAEjC,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gDAAK;AAChB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kFAAkF,wDAAQ;AAC1F;;AAEO;AACP;AACA,0CAA0C,wDAAQ;AAClD;AACA;;AAEe;AACf;AACA,4BAA4B,wDAAQ;AACpC;;;;;;;;;;;;;;;;AC5BA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACA5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;ACb+B;;AAE/B,6BAAe,oCAAS;AACxB,YAAY;AACZ,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,qDAAK;AAClB,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtB4C;;AAE7B;AACf,gEAAgE,iDAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACVyC;AACV;AACY;AACD;;AAE1C,iEAAe;AACf,cAAc,gDAAK;;AAEnB;AACA,2BAA2B,6CAAQ,mBAAmB,6CAAQ;AAC9D;AACA;AACA,kBAAkB,qDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;;;;ACtDjD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,4BAA4B;AAC5B;AACA,MAAM,OAAO;AACb;AACA,cAAc,SAAS,sDAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA,SAAS;AACT;;;;;;;;;;;;;;;;;;;;;;;;;AC/D+B;AACJ;AACa;AACX;AACI;AACA;AACA;AACI;AACuB;;AAE5D,6BAAe,oCAAS;AACxB;AACA,wCAAwC,wDAAQ;AAChD,0BAA0B,kDAAM;AAChC,+BAA+B,oDAAK,eAAe,+CAAG,IAAI,kDAAM;AAChE,qBAAqB,gDAAK,GAAG,+CAAG;AAChC,4BAA4B,gDAAI;AAChC,QAAQ,8DAAa,MAAM,uDAAW;AACtC,2BAA2B,mDAAY;AACvC,0FAA0F,kDAAM;AAChG,QAAQ,kDAAM;AACd;;;;;;;;;;;;;;;;;;;;;ACrBuC;;AAEvC;AACO;AACA;AACA;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,sDAAY;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACfiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAc,SAAS,kDAAS;AACxE,iBAAiB,sDAAa;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA,wCAAwC,gDAAe,SAAS,+CAAU;AAC1E,iBAAiB,sDAAc;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAa,CAAC,mDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA,mCAAmC,iDAAY,MAAM,kDAAiB;AACtE;;AAEA;AACA;AACA,aAAa,mDAAkB,CAAC,mDAAQ,WAAW,mDAAQ;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,iDAAY,MAAM,kDAAiB;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAY,CAAC,mDAAO;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,oDAAe,CAAC,mDAAO;AACpC;;AAE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A,GAAG;AACH;;AAEA,iEAAe,OAAO,EAAC;AAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB8B;AACsB;;AAE3D;AACA,SAAS,wDAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,kFAAkF,wDAAc,IAAI,sDAAY;AAChH,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5B8B;;AAErC,WAAW,wDAAQ;AACnB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,wDAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,IAAI,EAAC;AACb;;;;;;;;;;;;;;;;;;;;ACzBoC;AACP;AACD;;AAEpB;AACf,cAAc,uDAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAQ,sBAAsB,0BAA0B;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACpGe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACJgC;AACoE;AAC/D;AACJ;;AAEjC;;AAEO;AACP;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,QAAQ,wDAAQ;AAChB;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,oDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,sDAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,sDAAiB;AACzG;;AAEA;AACA,sDAAsD,kDAAM;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,sDAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5HwE;AAC/B;AACE;AACL;AACL;AACI;AACC;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,0DAAS;AAC3E;AACA;;AAEA,sBAAsB,sDAAW;;AAEjC,2BAA2B,sDAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,qDAAS,eAAe,oDAAQ;;AAE9C;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,gDAAO;;AAErB;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,qDAAS;;AAEvB;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,+CAAM;;AAEpB;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACvGsC;AACL;;AAElB;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sDAAsD,kDAAM;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAiD,kDAAM;;AAEvD,SAAS,qDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBmB;;AAII;;AAIF;;AAIH;;AAIG;;AAKC;;AAKJ;;AAIG;;AAIE;;AAIA;;AAIC;;AAIL;;AAIG;;AAQG;;AAIQ;;AAQT;;AAIC;;;;;;;;;;;;;;;;;AC7ElB;AACP;AACA;AACA,gCAAgC;AAChC,+CAA+C;AAC/C;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzB8C;AACG;AACb;AACK;;AAElC;AACP;;AAEA;AACA;AACA,WAAW,oDAAK;AAChB;;AAEA;AACA;AACA,WAAW,0DAAU;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uDAAa;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,cAAc,0DAAU;;AAExB;AACA,WAAW,oDAAI;AACf;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrE+B;AACmB;AACrB;AACqB;AACd;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,QAAQ;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,QAAQ;AAC5B,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oDAAK;AACrC,MAAM;AACN,UAAU,oDAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC,qDAAe;AACrD,kBAAkB,iDAAM;AACxB;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAI;AACtB;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,wBAAwB,2DAAW;AACnC,qBAAqB,oDAAI;AACzB,EAAE,qDAAe;AACjB;AACA;;;;;;;;;;;;;;;;AC3Ie;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;;;;;;;;;;;;;;;;;;ACFmC;AACC;;AAE7B;;AAEQ;AACf,kBAAkB,+CAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,+CAAS;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;;;;;;AC7CsC;AACsB;AACxB;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wBAAwB,oDAAQ,EAAE,oDAAQ;AAC1C;;AAEA;AACA,sCAAsC,oDAAQ,EAAE,oDAAQ;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,qDAAS;AAClB;;AAEe;AACf,qBAAqB,2DAAW;;AAEhC;AACA,WAAW,oDAAI;AACf;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;ACjDwE;AACpC;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,wDAAS;AACjD;AACA;;AAEA;AACA,wDAAwD,oDAAM;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,gDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;;ACxDgC;AACM;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,oDAAM;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe,CAAC,qDAAS;AAClC;;;;;;;;;;;;;;;;;;;;ACvDyC;AACL;AACE;AACL;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,gBAAgB,0DAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE,kDAAM;AAC1E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,qDAAe;;AAEjB,SAAS,qDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9D6D;AACpB;AACE;AACL;AACL;AACK;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,sDAAW;;AAEjC,2BAA2B,sDAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,qDAAS,eAAe,oDAAQ;;AAE9C;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,gDAAO;;AAErB;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,qDAAS;;AAEvB;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,+CAAM;;AAEpB;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;AC1GqD;AACZ;AACE;;AAE5B;AACf;AACA,qBAAqB,oDAAQ;;AAE7B;AACA,0DAA0D,oDAAM;AAChE;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,gDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,cAAc,YAAY,oDAAQ;AACzD;;AAEA;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;;;;;;;;;;;;;;;;;;;ACrCsC;AACY;AACd;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA,SAAS,qDAAS;AAClB;;AAEe;AACf,wBAAwB,2DAAW;;AAEnC;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;AClCgC;AACI;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,oDAAM;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;;;;;ACtCkC;AAC+E;;AAElG;AACf,aAAa,kDAAQ;AACrB;AACA,cAAc,qDAAe;AAC7B;AACA;AACA;AACA,4DAA4D,qDAAe;AAC3E,aAAa,uDAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qDAAc;AAC1E;AACA;AACA;AACA;AACA,4DAA4D,qDAAc;AAC1E;AACA;AACA;AACA,SAAS,iDAAM;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5B8H;AACpF;AACO;AACb;AACP;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,cAAc,0DAAU;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,oDAAI;AACjC;;AAEA;AACA,WAAW,oDAAI;AACf;;AAEA;AACA;;AAEe;AACf,SAAS,qDAAe,UAAU,8CAAS,EAAE,qDAAgB,EAAE,+CAAQ,EAAE,+CAAS,EAAE,2CAAQ,EAAE,+CAAO,EAAE,+CAAQ,EAAE,+CAAU,EAAE,gDAAU,EAAE,uDAAU;AACnJ;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEqH;AAC5E;AACN;AACC;;AAErB;AACf,SAAS,qDAAe,CAAC,kDAAQ,CAAC,6CAAQ,EAAE,oDAAe,EAAE,+CAAO,EAAE,+CAAQ,EAAE,8CAAO,EAAE,+CAAM,EAAE,+CAAO,EAAE,+CAAS,EAAE,+CAAS,EAAE,sDAAS;AACzI;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;ACjIS;AACQ;AACgE;;AAErG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA,cAAc,6CAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8CAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8CAAI,CAAC,6CAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA,qBAAqB,wDAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAAM;AACvD,+CAA+C,4CAAM;AACrD,aAAa,6CAAG;AAChB;;AAEA,qCAAqC,mDAAI;;AAEzC;AACA;;AAEA;AACA,eAAe,6CAAO;;AAEtB;AACA,kBAAkB,yCAAG,GAAG,6CAAO;AAC/B,0BAA0B,6CAAG,WAAW,6CAAG;AAC3C;AACA,eAAe,6CAAO;AACtB,4BAA4B,6CAAG,WAAW,6CAAG;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAO,sDAAsD,8CAAI;AACtF,eAAe,6CAAG,CAAC,6CAAG;AACtB;AACA;AACA;AACA;;AAEA;AACA,eAAe,6CAAO;AACtB,iBAAiB,8CAAI,WAAW,6CA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;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACJO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+CAA+C;AAC/C,wDAAwD;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B,oFAAoF;AACnH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;AClD8B;AACG;;AAEjC;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,4BAA4B;AAC3D,+BAA+B,4BAA4B,4FAA4F;AACvJ,eAAe,gDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACnDiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,oFAAoF,0EAA0E;AAC7L,+BAA+B;AAC/B,eAAe,gDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;AC5CiC;;AAEjC;AACA,oBAAoB,4CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,4BAA4B,4CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACvDF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,+CAA+C;AAC/C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B,4BAA4B;AAC3D,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AC5DwB;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,kDAAkD;AACjF,+BAA+B,4BAA4B;AAC3D,eAAe,mDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;AC5D8B;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,kGAAkG;AACjI,+BAA+B;AAC/B,eAAe,mDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AChD6B;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,6CAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,6CAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B;AAC/B,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,wDAAwD,kDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;;ACvF2C;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,kDAAkD;AACjF,+BAA+B,4BAA4B;AAC3D,eAAe,qDAAK,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,8DAA8D,8DAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACzEuC;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,kGAAkG;AACjI,+BAA+B;AAC/B,eAAe,qDAAK,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,4DAA4D,0DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;AC7DR;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,2CAA2C;AAC3C;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;AC9B8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,6DAA6D;AAC7D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B,wDAAwD;AACvF,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,6BAA6B;AACxD,0BAA0B,4BAA4B;AACtD,2BAA2B,6BAA6B;AACxD,kDAAkD;AAClD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACvGA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,cAAc,OAAO;AACrB;AACA,kBAAkB,QAAQ;AAC1B;AACA,cAAc,WAAW;AACzB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;AChEsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAA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AC;;;;;;;;;;;;;;;;ACRF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACjBF;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACbF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACNiC;;AAEnC;AACA,kBAAkB,wCAAE,sBAAsB,wCAAE;AAC5C,kBAAkB,yCAAG;AACrB,mBAAmB,yCAAG;;AAEtB,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,cAAc,yCAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACvBF;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACVF;AACA;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACzByC;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClXA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTA,YAAY;;AAEZ;AACA,8CAA8C,KAAK,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,mFAAmF,OAAO;AAC1F;AACA,gDAAgD,OAAO;AACvD,GAAG;AACH;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;ACnFY;AACoB;;AAExD,6BAAe,oCAAS;AACxB;AACA,kBAAkB,wDAAM,4BAA4B,mDAAO,EAAE,0DAAiB;AAC9E;AACA,qCAAqC,mDAAO,EAAE,0DAAiB;AAC/D,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,wDAAM;AACxB;AACA,+BAA+B,mDAAO,EAAE,0DAAiB;AACzD,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACO,oBAAoB;AACpB,2BAA2B;;AAE3B;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACZO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;ACVO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClBiC;;AAEjC,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gDAAK;AAChB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kFAAkF,wDAAQ;AAC1F;;AAEO;AACP;AACA,0CAA0C,wDAAQ;AAClD;AACA;;AAEe;AACf;AACA,4BAA4B,wDAAQ;AACpC;;;;;;;;;;;;;;;;AC5BA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACA5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACJyC;AACV;AACY;AACD;;AAE1C,iEAAe;AACf,cAAc,gDAAK;;AAEnB;AACA,2BAA2B,6CAAQ,mBAAmB,6CAAQ;AAC9D;AACA;AACA,kBAAkB,qDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;;;;;ACtDhB;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,4BAA4B;AAC5B;AACA,MAAM,OAAO;AACb;AACA,cAAc,SAAS,sDAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA,SAAS;AACT;;;;;;;;;;;;;;;;;AC/DA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBkC;AACY;;AAE9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gCAAgC;AACjE,cAAc,sDAAsD,sDAAM,OAAO;AACjF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,sDAAM,OAAO;AAChF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,+CAAQ;AAC3D,mDAAmD,+CAAQ;;;;;;;;;;;;;;;;;;AC9Df;;AAEnD;;AAEA;AACO;AACP;AACA,wBAAwB,mDAAQ,GAAG,yDAAS;AAC5C;;AAEO;AACP,4BAA4B,mDAAQ;AACpC;AACA;AACA,iEAAiE,mDAAQ;AACzE;AACA,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,mBAAmB,EAAC;;;;;;;;;;;;;;;;ACtErB;AACA;AACA;AACA,cAAc;AACd;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACJuC;AACD;;AAEtC;AACA;AACA;AACA;AACA,mBAAmB,iDAAK,8CAA8C,iDAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,yDAAS;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVyC;;AAEzC,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,qEAAyB,YAAY,OAAO,sDAAU,uBAAuB,QAAQ;AAC9F;;;;;;;;;;;;;;;;;ACNO;;AAEP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACRyC;;AAE3C,6BAAe,oCAAS;AACxB,UAAU,2DAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBqD;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC;;;;;;;;;;;;;;;;;ACNoC;;AAEpC,6BAAe,oCAAS;AACxB,mDAAmD,uDAAO;AAC1D;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACPwC;;AAExC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,yDAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;AACA;AACC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,cAAc,iBAAiB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AAC3B,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;ACNqC;;AAErC,6BAAe,oCAAS;AACxB;;AAEA,+JAA+J,OAAO;AACtK,yHAAyH,OAAO;AAChI;AACA;AACA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;AClBA,6BAAe,sCAAW;;AAE1B,4DAA4D,OAAO;AACnE,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACVA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;;;;;;;;;;;;;;;AClEA,6BAAe,sCAAW;;AAE1B,6DAA6D,QAAQ;AACrE,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;ACPqC;AACC;;AAEtC,6BAAe,oCAAS;AACxB,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;;;AChBqC;AACL;AACY;;AAE5C;AACA;AACA,WAAW,qDAAK;AAChB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,gBAAgB,2DAAW;;AAE3B,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;ACxB2C;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,wDAAwD,yDAAY;AACpE;;;;;;;;;;;;;;;;;ACjB2C;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,6DAA6D,yDAAY;AACzE;;;;;;;;;;;;;;;;ACjBA,6BAAe,sCAAW;AAC1B;AACA,mCAAmC;AACnC;AACA;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,uFAAuF,OAAO;AAC9F,yGAAyG,OAAO;AAChH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACvBA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;ACFuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,sDAAW;AACpB;;;;;;;;;;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxBA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;ACJiC;;AAEjC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI;;AAE/H;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7GiD;AACE;;AAEnD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,8DAAS;AA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;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqC;AACG;;AAExC,cAAc,uDAAQ;AACtB;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEP,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,+CAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,sCAAsC,oDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;AACA,2DAA2D;AAC3D;AACA,IAAI,oDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxJsC;AACA;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA,QAAQ,wDAAQ,qCAAqC,iDAAG;AACxD;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;ACrByC;AACH;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAW;;AAExD,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA,yFAAyF,iDAAG,wCAAwC,OAAO;AAC3I;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;ACzBuC;;AAEvC,gBAAgB,0EAA+B;;AAE/C,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;ACN+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB,oDAAoD,wDAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA,6EAA6E,wDAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,yCAAyC,mEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,qBAAqB,qDAAU;AAC/B;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB6C;AACD;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA,YAAY,gDAAK;;AAEjB,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,sBAAsB,iDAAG;AACzB,QAAQ,wDAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;ACvBuC;;AAEvC;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,4BAA4B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;;AAEA;AACA,gBAAgB,iDAAG;AACnB,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA,mBAAmB,iDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,iDAAG;AACd;AACA;;;;;;;;;;;;;;;;AChFA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACAb;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,kDAAkD;AAC7D,kBAAkB,yDAAyD;AAC3E,aAAa,oDAAoD;AACjE,gBAAgB,uDAAuD;AACvE,QAAQ;AACR,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;ACb0C;AACoE;;;;;;;;;;;;;;;;;ACDvG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACPO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;;AAEP;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AClDqC;AACW;AACD;AACF;AACL;AACH;AACF;AACgB;AACC;;AAEpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mDAAQ;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAe;AACnC,kBAAkB,uDAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAkB;AACzC;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,+CAA+C,oDAAS;AACxD;;AAEA;AACA;AACA,oEAAoE,oDAAS;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,gDAAgD;AACvF,oDAAoD,8CAA8C;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,mBAAmB,4BAA4B,QAAQ,oDAAS;AAChE;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,wDAAM;AACpB;AACA;AACA;AACA,YAAY,iDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,wDAAS;AACf;AACA;;AAEA,IAAI,uDAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,wDAAM;AAClB,YAAY,wDAAO;AACnB;AACA;;AAEA,IAAI,mDAAW;AACf,IAAI,0DAAa;AACjB;AACA,IAAI,wDAAS;AACb;;AAEA;AACA,MAAM,uDAAO;AACb;AACA;AACA;AACA;AACA;AACA,sEAAsE,wDAAO;AAC7E;;AAEA;AACA;AACA,MAAM,gDAAU;AAChB,MAAM,uDAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wDAAO;AACpB;AACA;AACA;;AAEA,IAAI,uDAAO;AACX,sBAAsB,wDAAM;AAC5B,SAAS,wDAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,0DAAa;AACjB,gBAAgB,OAAO;AACvB,0BAA0B,wDAAO;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iFAAiF,uBAAuB;AACxG,MAAM,wDAAS;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,uDAAO;AACX,gBAAgB,OAAO;AACvB,0BAA0B,wDAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,0DAAa;AACjB;AACA,0CAA0C,qBAAqB;AAC/D,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAO;AACnB;AACA,kBAAkB,wDAAM;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,wDAAQ;AAClF;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,yEAAyE,wDAAQ;AACjF;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC9bA;;AAEO;AACA;;;;;;;;;;;;;;;;ACHQ;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACFiC;AACA;AACI;AACJ;AACI;AACR;AACmB;AACH;;AAE9B;AACf,cAAc,oDAAQ;AACtB,eAAe,kDAAM;AACrB,kBAAkB,6DAAO;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,kDAAM,aAAa,oDAAI;AAC5C,WAAW,qDAAK;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAM;AAC1C,uBAAuB,wDAAa;AACpC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,aAAa,sDAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,wDAAQ;AAC7E;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,4FAA4F,wDAAQ,CAAC,iDAAU,OAAO,wDAAQ;AAC9H;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpGuC;AACF;AACJ;;AAEjC,wBAAwB,wDAAQ,CAAC,qDAAS;AACnC;AACA;AACA,qBAAqB,wDAAQ,CAAC,kDAAM;AAC3C,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;ACRY;;AAExB;AACf;AACA;AACA;;AAEA;AACA;AACA,eAAe,qDAAS;AACxB,yBAAyB,yDAAS;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;;;;;;AC3Ce;AACf;AACA;;;;;;;;;;;;;;;;ACFe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChCe;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACNqC;;AAEtB;AACf,YAAY,wDAAQ;AACpB;AACA;;;;;;;;;;;;;;;;;ACLoC;;AAErB;AACf,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVoC;;AAErB;AACf,uDAAuD,gDAAS;AAChE;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACde;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5Be;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpEuC;;AAExB,oCAAoC,qDAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5BuC;AACF;;AAEtB,yCAAyC,qDAAS;AACjE,mCAAmC,wDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AClBoC;AACC;;AAEtB;AACf,sBAAsB,oDAAQ,EAAE,oDAAQ;AACxC;;AAEO;AACP,kCAAkC,oDAAQ;AAC1C;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,oDAAQ;AAC9B;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,oDAAQ;AAC9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,gDAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;AChEuC;AACE;AACZ;;AAEd;AACf;AACA,MAAM,oDAAI,CAAC,iDAAM,gDAAgD,yDAAS,YAAY,yDAAS;AAC/F,MAAM,oDAAI,CAAC,qDAAK,0DAA0D,yDAAS;AACnF;AACA;;;;;;;;;;;;;;;;ACTe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFqF;AACjC;AACF;AACN;AACA;AACE;AACQ;AACF;AACN;AACC;AAC6D;AACxD;AACU,CAAC,eAAe;AACO;AACtB;AACI;AAC3B;AACU;AACR;AACI;AACF;AACJ;AACU;AACR;AACA;AACE;AACI;AACkB;AACV;AACZ;AACF;AACE;AACU;AACJ;AACU;AAClB,CAAC,eAAe;AACA;AAClB;AAC6B;AACjB;AACF;AACV;AACI;AACF;AACI;AACN;AACM;AACE;AACN;AACY;AACJ;AACQ;AACZ;AACI;AACN;AACG;;;;;;;;;;;;;;;;;ACvDX;;AAErB;AACf,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,gDAAS,gBAAgB,gDAAS;AAC7D;;;;;;;;;;;;;;;;;AClBuC;;AAExB,iCAAiC,qDAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5BuC;AACF;;AAEtB,sCAAsC,qDAAS;AAC9D,mCAAmC,wDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClBe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClBqC;;AAEtB;AACf,SAAS,wDAAQ;AACjB;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;ACRe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrBoC;;AAErB;AACf,qBAAqB,gDAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3ByC;;AAE1B;AACf;AACA;AACA,iBAAiB,wDAAa;AAC9B;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACde;AACf;AACA;;;;;;;;;;;;;;;;;;;;;ACF2B;AACA;AACgB;AACC;;AAE7B;AACf,6BAA6B,mDAAO;AACpC;AACA,qCAAqC,mDAAG;AACxC,qBAAqB,mDAAG;AACxB;AACA;AACA;AACA,eAAe,mDAAG,CAAC,2DAAW;AAC9B,eAAe,mDAAG;AAClB;AACA;;AAEO,6CAA6C,kDAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5B2D;;AAE3D;AACA;AACe;AACf,oCAAoC,sDAAgB,GAAG,wDAAc;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7Ce;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACZuC;AACoB;;AAE5C,gCAAgC,qDAAS;AACxD;AACA;AACA;AACA,0DAA0D,qDAAS;AACnE;AACA;AACA;AACA;AACA,sBAAsB,qDAAS,aAAa,0DAAgB,eAAe,wDAAc;AACzF;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACvBe;AACf;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;ACHyC;;AAE1B;AACf,gBAAgB,0DAAU;AAC1B;AACA;;;;;;;;;;;;;;;;;ACLA,iEAAe,qBAAqB,EAAC;;AAE9B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACZe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACTuC;AACJ;;AAEpB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,WAAW,uDAAO;AAClB;AACA;AACA;;AAEO,kCAAkC,qDAAS;AAClD,kBAAkB,qDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;ACtCqC;;AAEtB;AACf,SAAS,wDAAQ;AACjB;;;;;;;;;;;;;;;;ACJe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AClBgC;AACM;;AAEvB;AACf,uCAAuC,wDAAQ,iBAAiB,wDAAQ,2BAA2B,qDAAK;AACxG;;;;;;;;;;;;;;;;;;ACLgC;AACQ;;AAEzB;AACf,wCAAwC,yDAAS,oBAAoB,qDAAK;AAC1E;;;;;;;;;;;;;;;;;ACLgC;;AAEjB;AACf,4BAA4B,qDAAK;AACjC;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrD2B;;AAEZ;AACf;AACA,uBAAuB,mDAAG,4CAA4C,QAAQ;AAC9E,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;ACdoC;;AAErB;AACf,kBAAkB,gDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxBuC;;AAExB;AACf,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;ACJ2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClX2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,uBAAuB,kDAAM,CAAC,4CAAK;AACzC;AACA,oBAAoB,+CAAQ,YAAY,+CAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,6CAAM,YAAY,6CAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,6CAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,0CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC5DD,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTsD;AACE;AACJ;;;;;;;;;;;;;;;;;;;;;;;;ACFT;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM,CAAC,4CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,6CAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,6CAAO;AACvB;AACA;;AAEA,sDAAM,WAAW,kDAAM,CAAC,4CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC1HM;AACA;;;;;;;;;;;;;;;;ACDP,YAAY;;AAEZ;AACA,8CAA8C,KAAK,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,mFAAmF,OAAO;AAC1F;AACA,gDAAgD,OAAO;AACvD,GAAG;AACH;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACnF0B;;;;;;;;;;;;;;;;ACAlD,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;ACAS;AACQ;AACD;AACuC;AAC9C;AACF;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB,wBAAwB;AAC9C;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA,mBAAmB;AACnB,kBAAkB,uDAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAU;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,wDAAM;AACV,wCAAwC,0DAAiB;AACzD,sCAAsC,0DAAiB;AACvD,IAAI,sDAAM;AACV,IAAI,0DAAa;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,uDAAO;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,wDAAM;AACV,IAAI,mDAAO;AACX,IAAI,uDAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA,QAAQ,0DAAa;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA,QAAQ,uDAAO;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,qBAAqB,QAAQ;AACvE,gBAAgB,OAAO;AACvB;AACA,QAAQ,0DAAa;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,wDAAO;AACnB;;AAEA,oCAAoC,iDAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,oEAAoE;AACpE,2DAA2D;AAC3D,yBAAyB,wDAAO,yCAAyC;AACzE;AACA;AACA;AACA;AACA,YAAY,iDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,yEAAyE,wDAAQ;AACjF;;AAEA;AACA,uEAAuE,wDAAQ;AAC/E;;AAEA;AACA,yEAAyE,wDAAQ;AACjF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACjMe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,kDAAkD;AAC7D,kBAAkB,yDAAyD;AAC3E,cAAc,qDAAqD;AACnE,aAAa,oDAAoD;AACjE,iBAAiB,wDAAwD;AACzE,aAAa,oDAAoD;AACjE,QAAQ,+CAA+C;AACvD,QAAQ,+CAA+C;AACvD,SAAS,gDAAgD;AACzD,SAAS,gDAAgD;AACzD,QAAQ;AACR,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC3B0C;AACgC;;;;;;;;;;;;;;;;;;;ACDtC;AACoB;;AAExD,6BAAe,oCAAS;AACxB;AACA,kBAAkB,wDAAM,4BAA4B,mDAAO,EAAE,0DAAiB;AAC9E;AACA,qCAAqC,mDAAO,EAAE,0DAAiB;AAC/D,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,wDAAM;AACxB;AACA,+BAA+B,mDAAO,EAAE,0DAAiB;AACzD,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACO,oBAAoB;AACpB,2BAA2B;;AAE3B;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;ACZe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnB2B;;AAE3B,UAAU,mDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVP,YAAY;AACZ,YAAY;AACZ;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA,GAAG,gBAAgB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAC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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9CA;AACA,6BAAe,oCAAS;AACxB,kDAAkD,OAAO;AACzD;AACA,6BAA6B;AAC7B,sCAAsC,QAAQ;AAC9C,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACV+C;AACM;AACN;;AAE/C,iEAAe;AACf;AACA;AACA;AACA,OAAO,yDAAa;AACpB;AACA;AACA;AACA;AACA,iBAAiB,6DAAa;AAC9B,OAAO,yDAAa;AACpB,OAAO,4DAAgB;AACvB;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AClBF,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFwF;AACpC;AAC6B;AACnB;AACE;AACF;;;;;;;;;;;;;;;;;;;;;;;;ACLzB;AACM;AACM;AACE;AACV;AACE;AACU;AAChB;;AAErC;AACA;;AAEA,6BAAe,oCAAS;AACxB,gFAAgF,oDAAQ,GAAG,2DAAW;AACtG;AACA;AACA;AACA,iDAAiD,oDAAQ,GAAG,8DAAc;AAC1E;AACA;AACA;;AAEA;AACA,gBAAgB,+DAAe;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,uDAAW;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uDAAW;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,0DAAU;;AAEpC;AACA;;AAEA;AACA;AACA,mDAAmD,gEAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;A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AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;ACb+B;;AAE/B,6BAAe,oCAAS;AACxB,YAAY;AACZ,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,qDAAK;AAClB,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtB4C;;AAE7B;AACf,gEAAgE,iDAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVA,6BAAe,oCAAS;AACxB;AACA,kBAAkB,OAAO;AACzB;AACA;;;;;;;;;;;;;;;;;;;;;;ACJyC;AACV;AACY;AACD;;AAE1C,iEAAe;AACf,cAAc,gDAAK;;AAEnB;AACA,2BAA2B,6CAAQ,mBAAmB,6CAAQ;AAC9D;AACA;AACA,kBAAkB,qDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;;;;ACtDjD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,4BAA4B;AAC5B;AACA,MAAM,OAAO;AACb;AACA,cAAc,SAAS,sDAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA,SAAS;AACT;;;;;;;;;;;;;;;;;AC/DA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBkC;AACY;;AAE9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gCAAgC;AACjE,cAAc,sDAAsD,sDAAM,OAAO;AACjF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,sDAAM,OAAO;AAChF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,+CAAQ;AAC3D,mDAAmD,+CAAQ;;;;;;;;;;;;;;;;;;AC9Df;;AAEnD;;AAEA;AACO;AACP;AACA,wBAAwB,mDAAQ,GAAG,yDAAS;AAC5C;;AAEO;AACP,4BAA4B,mDAAQ;AACpC;AACA;AACA,iEAAiE,mDAAQ;AACzE;AACA,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;ACjB+B;AACJ;AACa;AACX;AACI;AACA;AACA;AACI;AACuB;;AAE5D,6BAAe,oCAAS;AACxB;AACA,wCAAwC,wDAAQ;AAChD,0BAA0B,kDAAM;AAChC,+BAA+B,oDAAK,eAAe,+CAAG,IAAI,kDAAM;AAChE,qBAAqB,gDAAK,GAAG,+CAAG;AAChC,4BAA4B,gDAAI;AAChC,QAAQ,8DAAa,MAAM,uDAAW;AACtC,2BAA2B,mDAAY;AACvC,0FAA0F,kDAAM;AAChG,QAAQ,kDAAM;AACd;;;;;;;;;;;;;;;;ACrBA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,mBAAmB,EAAC;;;;;;;;;;;;;;;;;ACtEqB;;;;;;;;;;;;;;;;ACA1C;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;ACjIpB,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD,IAAI;AACJ;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnFA,6BAAe,oCAAS;AACxB,mDAAmD;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1CA,6BAAe,sCAAW;AAC1B;AACA;AACA,+CAA+C;AAC/C,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJ6B;;AAE7B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,gDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrEkD;;;;;;;;;;;;;;;;ACAlD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;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uBAAuB,QAAQ;AAC9F;;;;;;;;;;;;;;;;;ACNO;;AAEP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACRyC;;AAE3C,6BAAe,oCAAS;AACxB,UAAU,2DAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnBmC;AACQ;;AAE3C,6BAAe,oCAAS;AACxB,uBAAuB;AACvB,aAAa,2DAAW;AACxB;AACA;AACA;AACA,qCAAqC,uDAAO;AAC5C;;;;;;;;;;;;;;;;;ACVqD;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC;;;;;;;;;;;;;;;;;;ACN+B;AACsB;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,EAAE,qDAAK,aAAa,qDAAI;AAC7C;;;;;;;;;;;;;;;;;ACPoC;;AAEpC,6BAAe,oCAAS;AACxB,mDAAmD,uDAAO;AAC1D;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACPwC;;AAExC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,yDAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;AACA;AACC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,2CAA2C,wDAAQ;;AAEnD,uGAAuG,OAAO;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,gDAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,wBAAwB;AACxB;;;;;;;;;;;;;;;;AC/HA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJuC;;AAEvC;AACA,eAAe,sDAAW;AAC1B;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA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ACVA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;;;;;;;;;;;;;;;AClEA,6BAAe,sCAAW;;AAE1B,6DAA6D,QAAQ;AACrE,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;ACPqC;AACC;;AAEtC,6BAAe,oCAAS;AACxB,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;;;AChBqC;AACL;AACY;;AAE5C;AACA;AACA,WAAW,qDAAK;AAChB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,gBAAgB,2DAAW;;AAE3B,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;ACxB2C;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,wDAAwD,yDAAY;AACpE;;;;;;;;;;;;;;;;;ACjB2C;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,6DAA6D,yDAAY;AACzE;;;;;;;;;;;;;;;;ACjBA,6BAAe,sCAAW;AAC1B;AACA,mCAAmC;AACnC;AACA;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,uFAAuF,OAAO;AAC9F,yGAAyG,OAAO;AAChH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACvBA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;ACFuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,sDAAW;AACpB;;;;;;;;;;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxBA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;;;;;ACJuC;;AAEvC;AACO;AACA;AACA;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,sDAAY;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BkH;AAC1D;AACJ;AACF;;;;;;;;;;;;;;;;;;ACHL;;AAEtC;;AAEP;AACA;AACA;;AAEA;AACA;AACA,MAAM,4DAAS;;AAEf,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;ACZmB;AACA;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,2DAAQ,CAAC,uDAAY;;AAE3B,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;;;ACDP;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAc,SAAS,kDAAS;AACxE,iBAAiB,sDAAa;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA,wCAAwC,gDAAe,SAAS,+CAAU;AAC1E,iBAAiB,sDAAc;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAa,CAAC,mDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA,mCAAmC,iDAAY,MAAM,kDAAiB;AACtE;;AAEA;AACA;AACA,aAAa,mDAAkB,CAAC,mDAAQ,WAAW,mDAAQ;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,iDAAY,MAAM,kDAAiB;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAY,CAAC,mDAAO;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,oDAAe,CAAC,mDAAO;AACpC;;AAEA;AACA;AACA,mCAAmC,oDAAW,MAAM,qDAAgB;AACpE;;AAEA;AACA;AACA,aAAa,sDAAiB,CAAC,mDAAO,WAAW,mDAAO;AACxD;;AAEA;AACA;AACA;;AA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ACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,wDAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,OAAO,EAAC;AAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB8B;AACsB;;AAE3D;AACA,SAAS,wDAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,kFAAkF,wDAAc,IAAI,sDAAY;AAChH,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5B8B;;AAErC,WAAW,wDAAQ;AACnB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,wDAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,IAAI,EAAC;AACb;;;;;;;;;;;;;;;;;;;;;;;ACrBa;;AAIE;;AAIC;;;;;;;;;;;;;;;;;ACZe;;AAEtC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA;AACA;AACA,0CAA0C,8CAAG;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChBiC;;AAEjC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI;;AAE/H;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7GiD;AACE;;AAEnD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,mBAAmB,4DAAU;AAC7B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpB8B;AAC8B;AACd;AACM;;;;;;;;;;;;;;;;;ACHa;;AAEjE,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,mDAAmD,eAAe;AAClE,8BAA8B,6DAAQ,qBAAqB,2DAAM;AACjE,qBAAqB,0DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACvBuC;AACU;AACE;;AAEnD,wEAA6B,GAAG,qDAAmB;AACnD,yEAA8B,GAAG,sDAAoB;;;;;;;;;;;;;;;;;ACLb;;AAExC,6BAAe,oCAAS;AACxB;AACA,IAAI,yDAAS;AACb,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACNyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,+CAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA,sBAAsB,4DAAU;AAChC;AACA,IAAI;AACJ,SAAS,2DAAK,oCAAoC,6CAAG;AACrD;;AAEA,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,QAAQ,mEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,4DAAU;AACvB;;;;;;;;;;;;;;;;;;;;ACzC+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,wDAAS,uCAAuC,mEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,qDAAU;AAChF;AACA;AACA;;;;;;;;;;;;;;;;;AC7EuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,iBAAiB,wDAAS;AAC1B;AACA;;;;;;;;;;;;;;;;;AC3CwC;;AAExC;AACA;AACA,IAAI,kDAAI;AACR;AACA;;AAEA;AACA;AACA,IAAI,kDAAI;AACR;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACtBuC;;AAEvC;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACtBuC;;AAEvC;AACA;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACfkC;;AAElC;AACA;AACA;AACA;AACA,IAAI,iDAAG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;ACbkC;;AAElC,6BAAe,sCAAW;AAC1B;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,oBAAoB;;AAEnC;AACA,qBAAqB,iDAAG;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;AC5BqC;AACC;;AAEtC,6BAAe,oCAAS;AACxB,2CAA2C,wDAAO;;AAElD,sFAAsF,OAAO;AAC7F,6FAA6F,OAAO;AACpG;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfuC;AACC;AACU;AACR;AACM;AACR;AACc;AACV;AACF;AACN;AACQ;AACA;AACM;AACA;AACR;AACU;AACZ;AACU;AACE;AACV;AACJ;;AAEtC;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEe;AACf,SAAS,wDAAS;AAClB;;AAEO;AACP;AACA;;AAEA,0BAA0B,8DAAmB;;AAE7C;AACA;AACA,UAAU,kDAAiB;AAC3B,aAAa,qDAAoB;AACjC;AACA;AACA,UAAU,kDAAiB;AAC3B,SAAS,iDAAgB;AACzB,aAAa,qDAAoB;AACjC,cAAc,sDAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8CAAa;AACnB,QAAQ,gDAAe;AACvB,aAAa,qDAAoB;AACjC,SAAS,kDAAgB;AACzB,cAAc,uDAAqB;AACnC,QAAQ,iDAAe;AACvB,aAAa,sDAAoB;AACjC,UAAU,mDAAiB;AAC3B,SAAS,kDAAgB;AACzB,SAAS,kDAAgB;AACzB,YAAY,qDAAmB;AAC/B,QAAQ,iDAAe;AACvB,eAAe,wDAAsB;AACrC,OAAO,gDAAc;AACrB;AACA;;;;;;;;;;;;;;;;;;;;ACxE+B;AACqD;;AAEpF,6BAAe,oCAAS;AACxB;AACA,kCAAkC,sDAAiB;AACnD,qBAAqB,gDAAK,GAAG,sDAAc;AAC3C,aAAa,oDAAK,eAAe,sDAAc;AAC/C,QAAQ,sDAAiB;AACzB;;;;;;;;;;;;;;;;;ACTsC;;AAEtC,6BAAe,oCAAS;AACxB;;AAEA,gKAAgK,OAAO;AACvK,yHAAyH,OAAO;AAChI;AACA;AACA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;AClB6C;;AAE7C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,oCAAoC,8CAAI,GAAG,6CAAG;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA,QAAQ,iDAAG;AACX;AACA;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqC;AACG;;AAExC,cAAc,uDAAQ;AACtB;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEP,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA,2DAA2D;AAC3D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,+CAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,sCAAsC,oDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;AACA,2DAA2D;AAC3D;AACA,IAAI,oDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxJsC;AACA;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA,QAAQ,wDAAQ,qCAAqC,iDAAG;AACxD;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;ACrByC;AACH;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAW;;AAExD,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA,yFAAyF,iDAAG,wCAAwC,OAAO;AAC3I;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;ACzBuC;;AAEvC,gBAAgB,0EAA+B;;AAE/C,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;ACN+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB,oDAAoD,wDAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA,6EAA6E,wDAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,yCAAyC,mEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;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nC;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,2DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,sBAAsB;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,2DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC;;AAEtE;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA,oCAAoC,2DAAQ;AAC5C;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,2DAAQ;AAChD;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,sDAAsD;;AAErE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjeO;AACP;AACA;AACA,mCAAmC,UAAU,iBAAiB,SAAS,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,mCAAmC,UAAU,iBAAiB,SAAS,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5DA;AACkC;AACL;AACU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,wBAAwB,gDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,yBAAyB,mDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACnIxB;AACmC;AACnC;AACA,qBAAqB,iDAAQ,GAAG,wBAAwB;AACxD;AACA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACLxB;AACuC;AACvC;AACA;AACA;AACA;AACA,oBAAoB,mDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;ACzBpB;AACkC;AACqB;AACb;AAC1C;AACA;AACA;AACA,wBAAwB,EAAE,EAAE,IAAI,UAAU,EAAE;AAC5C;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iEAAoB;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,aAAa;AAC7B,qBAAqB;AACrB,uBAAuB,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB,EAAE,kDAAO,sBAAsB;AAC/H;AACA,eAAe;AACf,uBAAuB,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB;AAChG;AACA;AACA;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;AC1CnB;AACkC;AACqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uEAAiB;AACrD,mCAAmC,uEAAiB;AACpD,oCAAoC,uEAAiB;AACrD;AACA;AACA,eAAe,uEAAiB;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,eAAe,iEAAoB;AACnC;AACA,eAAe,uEAAiB;AAChC,eAAe,uEAAiB;AAChC,mBAAmB,uEAAiB;AACpC,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,aAAa;AAC7B,qBAAqB;AACrB,2BAA2B,kEAAY,IAAI,IAAI,kEAAY,IAAI,KAAK,kEAAY,IAAI,KAAK,EAAE;AAC3F;AACA,eAAe;AACf,0BAA0B,kEAAY,IAAI,IAAI,kEAAY,IAAI,KAAK,kEAAY,IAAI;AACnF;AACA;AACA;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;;AChDnB;AACkC;AACP;AACA;AACQ;AACR;AACY;AACvC;AACA;AACA;AACA;AACA,iBAAiB,mDAAO;AACxB,aAAa,+CAAG;AAChB,aAAa,+CAAG;AAChB,cAAc,+CAAG;AACjB,aAAa,+CAAG;AAChB,cAAc,+CAAG;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB,qDAAS,WAAW,qDAAS,WAAW,qDAAS,WAAW,yDAAa,SAAS;AAC3G;AACA;AACA,sDAAsD,MAAM;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B,mDAAQ;AACrC,mBAAmB,yDAAa;AAChC;AACA;AACA,mBAAmB,yDAAa;AAChC;AACA;AACA,mBAAmB,yDAAa;AAChC;AACA;AACA;AACA;AACA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;AC3CrB;AAC2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAS;AACxB,KAAK;AACL;AACA,oBAAoB,yDAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;AC5KvB;AACkC;AACqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,eAAe,iEAAoB;AACnC,eAAe,uEAAiB;AAChC,eAAe,uEAAiB;AAChC,eAAe,uEAAiB;AAChC,mBAAmB,uEAAiB;AACpC,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,aAAa;AAC7B,qBAAqB;AACrB,2BAA2B,kEAAY,IAAI,IAAI,kEAAY,IAAI,IAAI,kEAAY,IAAI,IAAI,kEAAY,IAAI;AACvG;AACA,eAAe;AACf,0BAA0B,kEAAY,IAAI,IAAI,kEAAY,IAAI,IAAI,kEAAY,IAAI;AAClF;AACA;AACA;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;AClCnB;AACiC;AACjC;AACA;AACA,gBAAgB,UAAU;AAC1B,iBAAiB,oEAAc,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACyB;;;;;;;;;;;;;;;;;;ACZzB;AACsC;AACL;AACjC;AACA;AACA,eAAe,6DAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAM;AACjB;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACftB;AACkC;AACI;AACtC;AACA;AACA,qBAAqB,6DAAW;AAChC;AACA,uBAAuB,qEAAe;AACtC;AACA;AACA,WAAW,iEAAe;AAC1B;AACA;AACA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;ACb7B;AACkC;AACI;AACtC;AACA;AACA,eAAe,6DAAW;AAC1B;AACA,gBAAgB,qEAAe;AAC/B;AACA,WAAW,iEAAe;AAC1B;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;ACZtB;AACgD;AAChD;AACA;AACA,WAAW,8DAAa;AACxB;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACPtB;AACsC;AACX;AAC3B;AACA;AACA,oBAAoB,6DAAW;AAC/B;AACA;AACA;AACA,WAAW,mDAAG;AACd;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;ACZtB;AACgD;AAChD;AACA;AACA,WAAW,8DAAa;AACxB;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACPvB;AACsC;AACT;AAC7B;AACA;AACA;AACA,YAAY,6BAA6B,EAAE,6DAAW;AACtD,YAAY,6BAA6B,EAAE,6DAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oDAAI;AACf;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;ACrBnB;AACkC;AACqB;AACjB;AACL;AACjC;AACA;AACA;AACA,eAAe,sDAAM,MAAM,MAAM;AACjC,qBAAqB,iEAAoB;AACzC,WAAW,uEAAiB;AAC5B,WAAW,uEAAiB;AAC5B,WAAW,uEAAiB;AAC5B,WAAW,uEAAiB;AAC5B,KAAK;AACL,WAAW,iEAAe;AAC1B;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;AClBpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,SAAS;AACzB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;ACxFvB;AACmC;AACN;AACA;AAC7B;AACA;AACA,WAAW;AACX,QAAQ;AACR,QAAQ;AACR;AACA;AACA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;ACXrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;ACbpB;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;ACT8E;;AAElG,gCAAgC,6CAAO,IAAI,6CAAO;AAClD,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,iCAAiC,6CAAO,IAAI,6CAAO,GAAG,6CAAO;;AAE7D,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,UAAU,6CAAG;AACb,UAAU,6CAAG;AACb,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;;AAEhB,WAAW,6CAAG;AACd,YAAY,6CAAG;AACf,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,YAAY,6CAAG;AACf,aAAa,6CAAG;AAChB,YAAY,6CAAG;AACf,YAAY,6CAAG;;AAEf,UAAU,6CAAG;AACb,WAAW,6CAAG;;AAEd;AACA,aAAa,6CAAG;AAChB,qBAAqB,YAAY;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,6CAAG;AAChB,QAAQ,6CAAG;AACX,YAAY,6CAAG;AACf,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,YAAY,6CAAG;AACf,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,QAAQ,6CAAG;AACX,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;;AAEvB,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,oDAAc;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;;AAEA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAG;AACxB;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAG;AACxB;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAG;AACxB;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CA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AAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;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;;AAEA,qBAAqB,mDAAS;AAC9B;AACA;AACA,QAAQ,mDAAS;AACjB;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,YAAY,6CAAG;;AAEf;AACA;AACA,WAAW,mDAAS;AACpB,QAAQ,+CAAK,CAAC,+CAAK;AACnB,QAAQ,+CAAK,CAAC,+CAAK;AACnB,QAAQ,+CAAK,CAAC,+CAAK;AACnB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,6CAAG;AACtB,QAAQ,6CAAG;AACX,YAAY,gDAAM;AAClB;AACA,QAAQ,6CAAG;AACX,YAAY,gDAAM;AAClB;;AAEA,cAAc,kDAAQ;AACtB;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;;AAEA,0CAA0C,oDAAc;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACtwBgF;;AAEhF,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,+BAA+B,6CAAO,IAAI,6CAAO,GAAG,6CAAO;;AAE3D,UAAU,6CAAG;AACb,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,UAAU,6CAAG;AACb,UAAU,6CAAG;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,oDAAc;AACrD;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6CAAG;;AAErB;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6CAAG;;AAErB;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6CAAG;;AAEpB;AACA;;AAEO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACzLuF;;AAEvF,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,iCAAiC,6CAAO,IAAI,6CAAO,GAAG,6CAAO;;AAE7D,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,UAAU,6CAAG;;AAEb,WAAW,6CAAG;AACd,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;;AAEf,UAAU,6CAAG;AACb,WAAW,6CAAG;;AAEd;AACA,aAAa,6CAAG;AAChB,qBAAqB,YAAY;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,6CAAG;AAChB,QAAQ,6CAAG;AACX,YAAY,+CAAK;AACjB,YAAY,+CAAK;AACjB,QAAQ,+CAAK;;AAEb,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,oDAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,6CAAG;AACtB,4BAA4B,+CAAK;;AAEjC,mBAAmB,6CAAG;AACtB,4BAA4B,+CAAK;;AAEjC,mBAAmB,6CAAG;AACtB,4BAA4B,+CAAK;;AAEjC;AACA,gCAAgC,+CAAK;AACrC,gCAAgC,+CAAK;AACrC;AACA;AACA,gCAAgC,+CAAK;AACrC,gCAAgC,+CAAK;AACrC;AACA;AACA,gCAAgC,+CAAK;AACrC,gCAAgC,+CAAK;AACrC;;AAEA;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;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC7cO;AACA;AACA;;AAEP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,oBAAoB,UAAU;AAC9B;AACA;;AAEO;AACP;AACA,oBAAoB,UAAU;AAC9B;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxIyD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJlD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACnBgD;AACuC;AAC0C;;AAExI;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,sDAAO,2CAA2C,oDAAK;AAC/D;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WA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D,qBAAqB;AACpF;;AAEA;AACA,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,4BAA4B,mDAAM;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,iCAAiC,mDAAM;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM;AACd;;AAEA;AACA,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM;AACd;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,oCAAoC,mDAAM;AAC1C;;AAEA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,iDAAI;AACZ;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;AACA,WAAW,mDAAM;AACjB;AACA,WAAW,oDAAM;AACjB;AACA,YAAY,oDAAM,CAAC,iDAAI;AACvB;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,iDAAI;AACtD;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrPA;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;UClHA;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;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;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/./node_modules/@braintree/sanitize-url/dist/index.js","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/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/d3-array/src/array.js","webpack://mermaid/./node_modules/d3-array/src/ascending.js","webpack://mermaid/./node_modules/d3-array/src/bisect.js","webpack://mermaid/./node_modules/d3-array/src/bisector.js","webpack://mermaid/./node_modules/d3-array/src/constant.js","webpack://mermaid/./node_modules/d3-array/src/cross.js","webpack://mermaid/./node_modules/d3-array/src/descending.js","webpack://mermaid/./node_modules/d3-array/src/deviation.js","webpack://mermaid/./node_modules/d3-array/src/extent.js","webpack://mermaid/./node_modules/d3-array/src/histogram.js","webpack://mermaid/./node_modules/d3-array/src/identity.js","webpack://mermaid/./node_modules/d3-array/src/index.js","webpack://mermaid/./node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3-array/src/mean.js","webpack://mermaid/./node_modules/d3-array/src/median.js","webpack://mermaid/./node_modules/d3-array/src/merge.js","webpack://mermaid/./node_modules/d3-array/src/min.js","webpack://mermaid/./node_modules/d3-array/src/number.js","webpack://mermaid/./node_modules/d3-array/src/pairs.js","webpack://mermaid/./node_modules/d3-array/src/permute.js","webpack://mermaid/./node_modules/d3-array/src/quantile.js","webpack://mermaid/./node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-array/src/scan.js","webpack://mermaid/./node_modules/d3-array/src/shuffle.js","webpack://mermaid/./node_modules/d3-array/src/sum.js","webpack://mermaid/./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://mermaid/./node_modules/d3-array/src/threshold/scott.js","webpack://mermaid/./node_modules/d3-array/src/threshold/sturges.js","webpack://mermaid/./node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3-array/src/transpose.js","webpack://mermaid/./node_modules/d3-array/src/variance.js","webpack://mermaid/./node_modules/d3-array/src/zip.js","webpack://mermaid/./node_modules/d3-collection/src/entries.js","webpack://mermaid/./node_modules/d3-collection/src/index.js","webpack://mermaid/./node_modules/d3-collection/src/keys.js","webpack://mermaid/./node_modules/d3-collection/src/map.js","webpack://mermaid/./node_modules/d3-collection/src/nest.js","webpack://mermaid/./node_modules/d3-collection/src/set.js","webpack://mermaid/./node_modules/d3-collection/src/values.js","webpack://mermaid/./node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-color/src/cubehelix.js","webpack://mermaid/./node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-color/src/index.js","webpack://mermaid/./node_modules/d3-color/src/lab.js","webpack://mermaid/./node_modules/d3-color/src/math.js","webpack://mermaid/./node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-dispatch/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/constant.js","webpack://mermaid/./node_modules/d3-drag/src/drag.js","webpack://mermaid/./node_modules/d3-drag/src/event.js","webpack://mermaid/./node_modules/d3-drag/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3-dsv/src/autoType.js","webpack://mermaid/./node_modules/d3-dsv/src/csv.js","webpack://mermaid/./node_modules/d3-dsv/src/dsv.js","webpack://mermaid/./node_modules/d3-dsv/src/index.js","webpack://mermaid/./node_modules/d3-dsv/src/tsv.js","webpack://mermaid/./node_modules/d3-ease/src/back.js","webpack://mermaid/./node_modules/d3-ease/src/bounce.js","webpack://mermaid/./node_modules/d3-ease/src/circle.js","webpack://mermaid/./node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3-ease/src/elastic.js","webpack://mermaid/./node_modules/d3-ease/src/exp.js","webpack://mermaid/./node_modules/d3-ease/src/index.js","webpack://mermaid/./node_modules/d3-ease/src/linear.js","webpack://mermaid/./node_modules/d3-ease/src/math.js","webpack://mermaid/./node_modules/d3-ease/src/poly.js","webpack://mermaid/./node_modules/d3-ease/src/quad.js","webpack://mermaid/./node_modules/d3-ease/src/sin.js","webpack://mermaid/./node_modules/d3-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-format/src/exponent.js","webpack://mermaid/./node_modules/d3-format/src/formatDecimal.js","webpack://mermaid/./node_modules/d3-format/src/formatGroup.js","webpack://mermaid/./node_modules/d3-format/src/formatNumerals.js","webpack://mermaid/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://mermaid/./node_modules/d3-format/src/formatRounded.js","webpack://mermaid/./node_modules/d3-format/src/formatSpecifier.js","webpack://mermaid/./node_modules/d3-format/src/formatTrim.js","webpack://mermaid/./node_modules/d3-format/src/formatTypes.js","webpack://mermaid/./node_modules/d3-format/src/identity.js","webpack://mermaid/./node_modules/d3-format/src/index.js","webpack://mermaid/./node_modules/d3-format/src/locale.js","webpack://mermaid/./node_modules/d3-format/src/precisionFixed.js","webpack://mermaid/./node_modules/d3-format/src/precisionPrefix.js","webpack://mermaid/./node_modules/d3-format/src/precisionRound.js","webpack://mermaid/./node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-interpolate/src/cubehelix.js","webpack://mermaid/./node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3-interpolate/src/discrete.js","webpack://mermaid/./node_modules/d3-interpolate/src/hcl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hsl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hue.js","webpack://mermaid/./node_modules/d3-interpolate/src/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/lab.js","webpack://mermaid/./node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3-interpolate/src/piecewise.js","webpack://mermaid/./node_modules/d3-interpolate/src/quantize.js","webpack://mermaid/./node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-interpolate/src/round.js","webpack://mermaid/./node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3-interpolate/src/zoom.js","webpack://mermaid/./node_modules/d3-path/src/index.js","webpack://mermaid/./node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3-quadtree/src/add.js","webpack://mermaid/./node_modules/d3-quadtree/src/cover.js","webpack://mermaid/./node_modules/d3-quadtree/src/data.js","webpack://mermaid/./node_modules/d3-quadtree/src/extent.js","webpack://mermaid/./node_modules/d3-quadtree/src/find.js","webpack://mermaid/./node_modules/d3-quadtree/src/index.js","webpack://mermaid/./node_modules/d3-quadtree/src/quad.js","webpack://mermaid/./node_modules/d3-quadtree/src/quadtree.js","webpack://mermaid/./node_modules/d3-quadtree/src/remove.js","webpack://mermaid/./node_modules/d3-quadtree/src/root.js","webpack://mermaid/./node_modules/d3-quadtree/src/size.js","webpack://mermaid/./node_modules/d3-quadtree/src/visit.js","webpack://mermaid/./node_modules/d3-quadtree/src/visitAfter.js","webpack://mermaid/./node_modules/d3-quadtree/src/x.js","webpack://mermaid/./node_modules/d3-quadtree/src/y.js","webpack://mermaid/./node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3-selection/src/create.js","webpack://mermaid/./node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3-selection/src/index.js","webpack://mermaid/./node_modules/d3-selection/src/local.js","webpack://mermaid/./node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3-selection/src/mouse.js","webpack://mermaid/./node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3-selection/src/point.js","webpack://mermaid/./node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3-selection/src/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3-selection/src/touch.js","webpack://mermaid/./node_modules/d3-selection/src/touches.js","webpack://mermaid/./node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3-time-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-time-format/src/index.js","webpack://mermaid/./node_modules/d3-time-format/src/isoFormat.js","webpack://mermaid/./node_modules/d3-time-format/src/isoParse.js","webpack://mermaid/./node_modules/d3-time-format/src/locale.js","webpack://mermaid/./node_modules/d3-time/src/day.js","webpack://mermaid/./node_modules/d3-time/src/duration.js","webpack://mermaid/./node_modules/d3-time/src/hour.js","webpack://mermaid/./node_modules/d3-time/src/index.js","webpack://mermaid/./node_modules/d3-time/src/interval.js","webpack://mermaid/./node_modules/d3-time/src/millisecond.js","webpack://mermaid/./node_modules/d3-time/src/minute.js","webpack://mermaid/./node_modules/d3-time/src/month.js","webpack://mermaid/./node_modules/d3-time/src/second.js","webpack://mermaid/./node_modules/d3-time/src/utcDay.js","webpack://mermaid/./node_modules/d3-time/src/utcHour.js","webpack://mermaid/./node_modules/d3-time/src/utcMinute.js","webpack://mermaid/./node_modules/d3-time/src/utcMonth.js","webpack://mermaid/./node_modules/d3-time/src/utcWeek.js","webpack://mermaid/./node_modules/d3-time/src/utcYear.js","webpack://mermaid/./node_modules/d3-time/src/week.js","webpack://mermaid/./node_modules/d3-time/src/year.js","webpack://mermaid/./node_modules/d3-timer/src/index.js","webpack://mermaid/./node_modules/d3-timer/src/interval.js","webpack://mermaid/./node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3-voronoi/src/Beach.js","webpack://mermaid/./node_modules/d3-voronoi/src/Cell.js","webpack://mermaid/./node_modules/d3-voronoi/src/Circle.js","webpack://mermaid/./node_modules/d3-voronoi/src/Diagram.js","webpack://mermaid/./node_modules/d3-voronoi/src/Edge.js","webpack://mermaid/./node_modules/d3-voronoi/src/RedBlackTree.js","webpack://mermaid/./node_modules/d3-voronoi/src/constant.js","webpack://mermaid/./node_modules/d3-voronoi/src/index.js","webpack://mermaid/./node_modules/d3-voronoi/src/point.js","webpack://mermaid/./node_modules/d3-voronoi/src/voronoi.js","webpack://mermaid/./node_modules/dagre-d3/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/arrows.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-paths.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/d3.js","webpack://mermaid/./node_modules/dagre-d3/lib/dagre.js","webpack://mermaid/./node_modules/dagre-d3/lib/graphlib.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-circle.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-line.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-node.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-polygon.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-rect.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-html-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-svg-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-text-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/lodash.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/render.js","webpack://mermaid/./node_modules/dagre-d3/lib/shapes.js","webpack://mermaid/./node_modules/dagre-d3/lib/util.js","webpack://mermaid/./node_modules/dagre-d3/lib/version.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-axis/src/array.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-axis/src/axis.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-axis/src/identity.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-axis/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-brush/src/brush.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-brush/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-brush/src/event.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-brush/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-brush/src/noevent.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-chord/src/array.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-chord/src/chord.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-chord/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-chord/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-chord/src/math.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-chord/src/ribbon.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/area.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/array.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/ascending.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/blur.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/contains.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/contours.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/density.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-contour/src/noop.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/blob.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/buffer.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/dsv.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/image.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/json.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/text.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-fetch/src/xml.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/center.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/collide.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/jiggle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/link.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/manyBody.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/radial.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/simulation.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/x.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-force/src/y.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/adder.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/area.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/bounds.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/cartesian.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/centroid.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/circle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/antimeridian.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/buffer.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/circle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/extent.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/line.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rectangle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/clip/rejoin.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/compose.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/contains.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/distance.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/graticule.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/identity.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/interpolate.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/length.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/math.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/noop.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/area.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/bounds.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/centroid.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/context.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/measure.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/path/string.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/pointEqual.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/polygonContains.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/albers.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/albersUsa.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthal.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conic.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicConformal.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEqualArea.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/conicEquidistant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/equalEarth.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/equirectangular.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/fit.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/gnomonic.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/identity.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/mercator.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/orthographic.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/resample.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/stereographic.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/projection/transverseMercator.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/rotation.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/stream.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-geo/src/transform.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/accessors.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/array.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/cluster.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/enclose.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/pack/siblings.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/partition.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/stratify.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/tree.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/binary.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/dice.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/round.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/slice.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/area.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/centroid.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/contains.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/cross.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/hull.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-polygon/src/length.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/bates.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/defaultSource.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/exponential.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/irwinHall.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/logNormal.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/normal.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-random/src/uniform.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/colors.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/ramp.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/array.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/band.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/continuous.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/diverging.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/identity.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/init.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/linear.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/log.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/nice.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/number.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/ordinal.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/pow.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/quantile.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/quantize.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/sequential.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/sequentialQuantile.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/symlog.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/threshold.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/tickFormat.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/time.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-scale/src/utcTime.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/arc.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/area.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/areaRadial.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/array.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basis.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basisClosed.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/basisOpen.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/bundle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinal.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRom.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linear.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/linearClosed.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/monotone.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/natural.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/radial.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/curve/step.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/descending.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/identity.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/line.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/lineRadial.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/link/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/math.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/noop.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/offset/diverging.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/offset/expand.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/offset/none.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/offset/silhouette.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/offset/wiggle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/order/appearance.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/order/ascending.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/order/descending.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/order/insideOut.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/order/none.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/order/reverse.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/pie.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/point.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/pointRadial.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/stack.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/circle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/cross.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/diamond.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/square.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/star.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/triangle.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-shape/src/symbol/wye.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-zoom/src/constant.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-zoom/src/event.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-zoom/src/index.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-zoom/src/noevent.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-zoom/src/transform.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3-zoom/src/zoom.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3/dist/package.js","webpack://mermaid/./node_modules/dagre-d3/node_modules/d3/index.js","webpack://mermaid/./node_modules/dagre/index.js","webpack://mermaid/./node_modules/dagre/lib/acyclic.js","webpack://mermaid/./node_modules/dagre/lib/add-border-segments.js","webpack://mermaid/./node_modules/dagre/lib/coordinate-system.js","webpack://mermaid/./node_modules/dagre/lib/data/list.js","webpack://mermaid/./node_modules/dagre/lib/debug.js","webpack://mermaid/./node_modules/dagre/lib/graphlib.js","webpack://mermaid/./node_modules/dagre/lib/greedy-fas.js","webpack://mermaid/./node_modules/dagre/lib/layout.js","webpack://mermaid/./node_modules/dagre/lib/lodash.js","webpack://mermaid/./node_modules/dagre/lib/nesting-graph.js","webpack://mermaid/./node_modules/dagre/lib/normalize.js","webpack://mermaid/./node_modules/dagre/lib/order/add-subgraph-constraints.js","webpack://mermaid/./node_modules/dagre/lib/order/barycenter.js","webpack://mermaid/./node_modules/dagre/lib/order/build-layer-graph.js","webpack://mermaid/./node_modules/dagre/lib/order/cross-count.js","webpack://mermaid/./node_modules/dagre/lib/order/index.js","webpack://mermaid/./node_modules/dagre/lib/order/init-order.js","webpack://mermaid/./node_modules/dagre/lib/order/resolve-conflicts.js","webpack://mermaid/./node_modules/dagre/lib/order/sort-subgraph.js","webpack://mermaid/./node_modules/dagre/lib/order/sort.js","webpack://mermaid/./node_modules/dagre/lib/parent-dummy-chains.js","webpack://mermaid/./node_modules/dagre/lib/position/bk.js","webpack://mermaid/./node_modules/dagre/lib/position/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/feasible-tree.js","webpack://mermaid/./node_modules/dagre/lib/rank/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/network-simplex.js","webpack://mermaid/./node_modules/dagre/lib/rank/util.js","webpack://mermaid/./node_modules/dagre/lib/util.js","webpack://mermaid/./node_modules/dagre/lib/version.js","webpack://mermaid/./node_modules/dompurify/dist/purify.js","webpack://mermaid/./node_modules/graphlib/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/components.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dfs.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra-all.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra.js","webpack://mermaid/./node_modules/graphlib/lib/alg/find-cycles.js","webpack://mermaid/./node_modules/graphlib/lib/alg/floyd-warshall.js","webpack://mermaid/./node_modules/graphlib/lib/alg/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/is-acyclic.js","webpack://mermaid/./node_modules/graphlib/lib/alg/postorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/preorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/prim.js","webpack://mermaid/./node_modules/graphlib/lib/alg/tarjan.js","webpack://mermaid/./node_modules/graphlib/lib/alg/topsort.js","webpack://mermaid/./node_modules/graphlib/lib/data/priority-queue.js","webpack://mermaid/./node_modules/graphlib/lib/graph.js","webpack://mermaid/./node_modules/graphlib/lib/index.js","webpack://mermaid/./node_modules/graphlib/lib/json.js","webpack://mermaid/./node_modules/graphlib/lib/lodash.js","webpack://mermaid/./node_modules/graphlib/lib/version.js","webpack://mermaid/./node_modules/lodash/_DataView.js","webpack://mermaid/./node_modules/lodash/_Hash.js","webpack://mermaid/./node_modules/lodash/_ListCache.js","webpack://mermaid/./node_modules/lodash/_Map.js","webpack://mermaid/./node_modules/lodash/_MapCache.js","webpack://mermaid/./node_modules/lodash/_Promise.js","webpack://mermaid/./node_modules/lodash/_Set.js","webpack://mermaid/./node_modules/lodash/_SetCache.js","webpack://mermaid/./node_modules/lodash/_Stack.js","webpack://mermaid/./node_modules/lodash/_Symbol.js","webpack://mermaid/./node_modules/lodash/_Uint8Array.js","webpack://mermaid/./node_modules/lodash/_WeakMap.js","webpack://mermaid/./node_modules/lodash/_apply.js","webpack://mermaid/./node_modules/lodash/_arrayEach.js","webpack://mermaid/./node_modules/lodash/_arrayFilter.js","webpack://mermaid/./node_modules/lodash/_arrayIncludes.js","webpack://mermaid/./node_modules/lodash/_arrayIncludesWith.js","webpack://mermaid/./node_modules/lodash/_arrayLikeKeys.js","webpack://mermaid/./node_modules/lodash/_arrayMap.js","webpack://mermaid/./node_modules/lodash/_arrayPush.js","webpack://mermaid/./node_modules/lodash/_arrayReduce.js","webpack://mermaid/./node_modules/lodash/_arraySome.js","webpack://mermaid/./node_modules/lodash/_asciiSize.js","webpack://mermaid/./node_modules/lodash/_assignMergeValue.js","webpack://mermaid/./node_modules/lodash/_assignValue.js","webpack://mermaid/./node_modules/lodash/_assocIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseAssign.js","webpack://mermaid/./node_modules/lodash/_baseAssignIn.js","webpack://mermaid/./node_modules/lodash/_baseAssignValue.js","webpack://mermaid/./node_modules/lodash/_baseClone.js","webpack://mermaid/./node_modules/lodash/_baseCreate.js","webpack://mermaid/./node_modules/lodash/_baseEach.js","webpack://mermaid/./node_modules/lodash/_baseExtremum.js","webpack://mermaid/./node_modules/lodash/_baseFilter.js","webpack://mermaid/./node_modules/lodash/_baseFindIndex.js","webpack://mermaid/./node_modules/lodash/_baseFlatten.js","webpack://mermaid/./node_modules/lodash/_baseFor.js","webpack://mermaid/./node_modules/lodash/_baseForOwn.js","webpack://mermaid/./node_modules/lodash/_baseGet.js","webpack://mermaid/./node_modules/lodash/_baseGetAllKeys.js","webpack://mermaid/./node_modules/lodash/_baseGetTag.js","webpack://mermaid/./node_modules/lodash/_baseGt.js","webpack://mermaid/./node_modules/lodash/_baseHas.js","webpack://mermaid/./node_modules/lodash/_baseHasIn.js","webpack://mermaid/./node_modules/lodash/_baseIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseIsArguments.js","webpack://mermaid/./node_modules/lodash/_baseIsEqual.js","webpack://mermaid/./node_modules/lodash/_baseIsEqualDeep.js","webpack://mermaid/./node_modules/lodash/_baseIsMap.js","webpack://mermaid/./node_modules/lodash/_baseIsMatch.js","webpack://mermaid/./node_modules/lodash/_baseIsNaN.js","webpack://mermaid/./node_modules/lodash/_baseIsNative.js","webpack://mermaid/./node_modules/lodash/_baseIsSet.js","webpack://mermaid/./node_modules/lodash/_baseIsTypedArray.js","webpack://mermaid/./node_modules/lodash/_baseIteratee.js","webpack://mermaid/./node_modules/lodash/_baseKeys.js","webpack://mermaid/./node_modules/lodash/_baseKeysIn.js","webpack://mermaid/./node_modules/lodash/_baseLt.js","webpack://mermaid/./node_modules/lodash/_baseMap.js","webpack://mermaid/./node_modules/lodash/_baseMatches.js","webpack://mermaid/./node_modules/lodash/_baseMatchesProperty.js","webpack://mermaid/./node_modules/lodash/_baseMerge.js","webpack://mermaid/./node_modules/lodash/_baseMergeDeep.js","webpack://mermaid/./node_modules/lodash/_baseOrderBy.js","webpack://mermaid/./node_modules/lodash/_basePick.js","webpack://mermaid/./node_modules/lodash/_basePickBy.js","webpack://mermaid/./node_modules/lodash/_baseProperty.js","webpack://mermaid/./node_modules/lodash/_basePropertyDeep.js","webpack://mermaid/./node_modules/lodash/_baseRange.js","webpack://mermaid/./node_modules/lodash/_baseReduce.js","webpack://mermaid/./node_modules/lodash/_baseRest.js","webpack://mermaid/./node_modules/lodash/_baseSet.js","webpack://mermaid/./node_modules/lodash/_baseSetToString.js","webpack://mermaid/./node_modules/lodash/_baseSortBy.js","webpack://mermaid/./node_modules/lodash/_baseTimes.js","webpack://mermaid/./node_modules/lodash/_baseToString.js","webpack://mermaid/./node_modules/lodash/_baseTrim.js","webpack://mermaid/./node_modules/lodash/_baseUnary.js","webpack://mermaid/./node_modules/lodash/_baseUniq.js","webpack://mermaid/./node_modules/lodash/_baseValues.js","webpack://mermaid/./node_modules/lodash/_baseZipObject.js","webpack://mermaid/./node_modules/lodash/_cacheHas.js","webpack://mermaid/./node_modules/lodash/_castFunction.js","webpack://mermaid/./node_modules/lodash/_castPath.js","webpack://mermaid/./node_modules/lodash/_cloneArrayBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneDataView.js","webpack://mermaid/./node_modules/lodash/_cloneRegExp.js","webpack://mermaid/./node_modules/lodash/_cloneSymbol.js","webpack://mermaid/./node_modules/lodash/_cloneTypedArray.js","webpack://mermaid/./node_modules/lodash/_compareAscending.js","webpack://mermaid/./node_modules/lodash/_compareMultiple.js","webpack://mermaid/./node_modules/lodash/_copyArray.js","webpack://mermaid/./node_modules/lodash/_copyObject.js","webpack://mermaid/./node_modules/lodash/_copySymbols.js","webpack://mermaid/./node_modules/lodash/_copySymbolsIn.js","webpack://mermaid/./node_modules/lodash/_coreJsData.js","webpack://mermaid/./node_modules/lodash/_createAssigner.js","webpack://mermaid/./node_modules/lodash/_createBaseEach.js","webpack://mermaid/./node_modules/lodash/_createBaseFor.js","webpack://mermaid/./node_modules/lodash/_createFind.js","webpack://mermaid/./node_modules/lodash/_createRange.js","webpack://mermaid/./node_modules/lodash/_createSet.js","webpack://mermaid/./node_modules/lodash/_defineProperty.js","webpack://mermaid/./node_modules/lodash/_equalArrays.js","webpack://mermaid/./node_modules/lodash/_equalByTag.js","webpack://mermaid/./node_modules/lodash/_equalObjects.js","webpack://mermaid/./node_modules/lodash/_flatRest.js","webpack://mermaid/./node_modules/lodash/_freeGlobal.js","webpack://mermaid/./node_modules/lodash/_getAllKeys.js","webpack://mermaid/./node_modules/lodash/_getAllKeysIn.js","webpack://mermaid/./node_modules/lodash/_getMapData.js","webpack://mermaid/./node_modules/lodash/_getMatchData.js","webpack://mermaid/./node_modules/lodash/_getNative.js","webpack://mermaid/./node_modules/lodash/_getPrototype.js","webpack://mermaid/./node_modules/lodash/_getRawTag.js","webpack://mermaid/./node_modules/lodash/_getSymbols.js","webpack://mermaid/./node_modules/lodash/_getSymbolsIn.js","webpack://mermaid/./node_modules/lodash/_getTag.js","webpack://mermaid/./node_modules/lodash/_getValue.js","webpack://mermaid/./node_modules/lodash/_hasPath.js","webpack://mermaid/./node_modules/lodash/_hasUnicode.js","webpack://mermaid/./node_modules/lodash/_hashClear.js","webpack://mermaid/./node_modules/lodash/_hashDelete.js","webpack://mermaid/./node_modules/lodash/_hashGet.js","webpack://mermaid/./node_modules/lodash/_hashHas.js","webpack://mermaid/./node_modules/lodash/_hashSet.js","webpack://mermaid/./node_modules/lodash/_initCloneArray.js","webpack://mermaid/./node_modules/lodash/_initCloneByTag.js","webpack://mermaid/./node_modules/lodash/_initCloneObject.js","webpack://mermaid/./node_modules/lodash/_isFlattenable.js","webpack://mermaid/./node_modules/lodash/_isIndex.js","webpack://mermaid/./node_modules/lodash/_isIterateeCall.js","webpack://mermaid/./node_modules/lodash/_isKey.js","webpack://mermaid/./node_modules/lodash/_isKeyable.js","webpack://mermaid/./node_modules/lodash/_isMasked.js","webpack://mermaid/./node_modules/lodash/_isPrototype.js","webpack://mermaid/./node_modules/lodash/_isStrictComparable.js","webpack://mermaid/./node_modules/lodash/_listCacheClear.js","webpack://mermaid/./node_modules/lodash/_listCacheDelete.js","webpack://mermaid/./node_modules/lodash/_listCacheGet.js","webpack://mermaid/./node_modules/lodash/_listCacheHas.js","webpack://mermaid/./node_modules/lodash/_listCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapCacheClear.js","webpack://mermaid/./node_modules/lodash/_mapCacheDelete.js","webpack://mermaid/./node_modules/lodash/_mapCacheGet.js","webpack://mermaid/./node_modules/lodash/_mapCacheHas.js","webpack://mermaid/./node_modules/lodash/_mapCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapToArray.js","webpack://mermaid/./node_modules/lodash/_matchesStrictComparable.js","webpack://mermaid/./node_modules/lodash/_memoizeCapped.js","webpack://mermaid/./node_modules/lodash/_nativeCreate.js","webpack://mermaid/./node_modules/lodash/_nativeKeys.js","webpack://mermaid/./node_modules/lodash/_nativeKeysIn.js","webpack://mermaid/./node_modules/lodash/_nodeUtil.js","webpack://mermaid/./node_modules/lodash/_objectToString.js","webpack://mermaid/./node_modules/lodash/_overArg.js","webpack://mermaid/./node_modules/lodash/_overRest.js","webpack://mermaid/./node_modules/lodash/_root.js","webpack://mermaid/./node_modules/lodash/_safeGet.js","webpack://mermaid/./node_modules/lodash/_setCacheAdd.js","webpack://mermaid/./node_modules/lodash/_setCacheHas.js","webpack://mermaid/./node_modules/lodash/_setToArray.js","webpack://mermaid/./node_modules/lodash/_setToString.js","webpack://mermaid/./node_modules/lodash/_shortOut.js","webpack://mermaid/./node_modules/lodash/_stackClear.js","webpack://mermaid/./node_modules/lodash/_stackDelete.js","webpack://mermaid/./node_modules/lodash/_stackGet.js","webpack://mermaid/./node_modules/lodash/_stackHas.js","webpack://mermaid/./node_modules/lodash/_stackSet.js","webpack://mermaid/./node_modules/lodash/_strictIndexOf.js","webpack://mermaid/./node_modules/lodash/_stringSize.js","webpack://mermaid/./node_modules/lodash/_stringToPath.js","webpack://mermaid/./node_modules/lodash/_toKey.js","webpack://mermaid/./node_modules/lodash/_toSource.js","webpack://mermaid/./node_modules/lodash/_trimmedEndIndex.js","webpack://mermaid/./node_modules/lodash/_unicodeSize.js","webpack://mermaid/./node_modules/lodash/clone.js","webpack://mermaid/./node_modules/lodash/cloneDeep.js","webpack://mermaid/./node_modules/lodash/constant.js","webpack://mermaid/./node_modules/lodash/defaults.js","webpack://mermaid/./node_modules/lodash/each.js","webpack://mermaid/./node_modules/lodash/eq.js","webpack://mermaid/./node_modules/lodash/filter.js","webpack://mermaid/./node_modules/lodash/find.js","webpack://mermaid/./node_modules/lodash/findIndex.js","webpack://mermaid/./node_modules/lodash/flatten.js","webpack://mermaid/./node_modules/lodash/forEach.js","webpack://mermaid/./node_modules/lodash/forIn.js","webpack://mermaid/./node_modules/lodash/get.js","webpack://mermaid/./node_modules/lodash/has.js","webpack://mermaid/./node_modules/lodash/hasIn.js","webpack://mermaid/./node_modules/lodash/identity.js","webpack://mermaid/./node_modules/lodash/isArguments.js","webpack://mermaid/./node_modules/lodash/isArray.js","webpack://mermaid/./node_modules/lodash/isArrayLike.js","webpack://mermaid/./node_modules/lodash/isArrayLikeObject.js","webpack://mermaid/./node_modules/lodash/isBuffer.js","webpack://mermaid/./node_modules/lodash/isEmpty.js","webpack://mermaid/./node_modules/lodash/isFunction.js","webpack://mermaid/./node_modules/lodash/isLength.js","webpack://mermaid/./node_modules/lodash/isMap.js","webpack://mermaid/./node_modules/lodash/isObject.js","webpack://mermaid/./node_modules/lodash/isObjectLike.js","webpack://mermaid/./node_modules/lodash/isPlainObject.js","webpack://mermaid/./node_modules/lodash/isSet.js","webpack://mermaid/./node_modules/lodash/isString.js","webpack://mermaid/./node_modules/lodash/isSymbol.js","webpack://mermaid/./node_modules/lodash/isTypedArray.js","webpack://mermaid/./node_modules/lodash/isUndefined.js","webpack://mermaid/./node_modules/lodash/keys.js","webpack://mermaid/./node_modules/lodash/keysIn.js","webpack://mermaid/./node_modules/lodash/last.js","webpack://mermaid/./node_modules/lodash/map.js","webpack://mermaid/./node_modules/lodash/mapValues.js","webpack://mermaid/./node_modules/lodash/max.js","webpack://mermaid/./node_modules/lodash/memoize.js","webpack://mermaid/./node_modules/lodash/merge.js","webpack://mermaid/./node_modules/lodash/min.js","webpack://mermaid/./node_modules/lodash/minBy.js","webpack://mermaid/./node_modules/lodash/noop.js","webpack://mermaid/./node_modules/lodash/now.js","webpack://mermaid/./node_modules/lodash/pick.js","webpack://mermaid/./node_modules/lodash/property.js","webpack://mermaid/./node_modules/lodash/range.js","webpack://mermaid/./node_modules/lodash/reduce.js","webpack://mermaid/./node_modules/lodash/size.js","webpack://mermaid/./node_modules/lodash/sortBy.js","webpack://mermaid/./node_modules/lodash/stubArray.js","webpack://mermaid/./node_modules/lodash/stubFalse.js","webpack://mermaid/./node_modules/lodash/toFinite.js","webpack://mermaid/./node_modules/lodash/toInteger.js","webpack://mermaid/./node_modules/lodash/toNumber.js","webpack://mermaid/./node_modules/lodash/toPlainObject.js","webpack://mermaid/./node_modules/lodash/toString.js","webpack://mermaid/./node_modules/lodash/transform.js","webpack://mermaid/./node_modules/lodash/union.js","webpack://mermaid/./node_modules/lodash/uniqueId.js","webpack://mermaid/./node_modules/lodash/values.js","webpack://mermaid/./node_modules/lodash/zipObject.js","webpack://mermaid/./node_modules/moment-mini/locale/locale.js","webpack://mermaid/./node_modules/moment-mini/locale/ sync ^\\.\\/.*$","webpack://mermaid/./node_modules/moment-mini/moment.min.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/class/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/er/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/flowchart/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/gantt/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/git/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/info/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/pie/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/requirement/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/sequence/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/state/parser|fs","webpack://mermaid/ignored|/Users/knuts/source/priv/atlantica/mermaid/src/diagrams/user-journey/parser|fs","webpack://mermaid/./node_modules/d3-axis/src/axis.js","webpack://mermaid/./node_modules/d3-axis/src/identity.js","webpack://mermaid/./node_modules/d3-axis/src/index.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/array.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/pointer.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/iterator.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/selectChild.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/selectChildren.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/easeVarying.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3-brush/node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3-brush/src/brush.js","webpack://mermaid/./node_modules/d3-brush/src/constant.js","webpack://mermaid/./node_modules/d3-brush/src/event.js","webpack://mermaid/./node_modules/d3-brush/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/noevent.js","webpack://mermaid/./node_modules/d3-chord/node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3-chord/src/array.js","webpack://mermaid/./node_modules/d3-chord/src/chord.js","webpack://mermaid/./node_modules/d3-chord/src/constant.js","webpack://mermaid/./node_modules/d3-chord/src/index.js","webpack://mermaid/./node_modules/d3-chord/src/math.js","webpack://mermaid/./node_modules/d3-chord/src/ribbon.js","webpack://mermaid/./node_modules/d3-contour/node_modules/d3-array/src/count.js","webpack://mermaid/./node_modules/d3-contour/node_modules/d3-array/src/extent.js","webpack://mermaid/./node_modules/d3-contour/node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3-contour/node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-contour/node_modules/d3-array/src/threshold/sturges.js","webpack://mermaid/./node_modules/d3-contour/node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3-contour/src/area.js","webpack://mermaid/./node_modules/d3-contour/src/array.js","webpack://mermaid/./node_modules/d3-contour/src/ascending.js","webpack://mermaid/./node_modules/d3-contour/src/blur.js","webpack://mermaid/./node_modules/d3-contour/src/constant.js","webpack://mermaid/./node_modules/d3-contour/src/contains.js","webpack://mermaid/./node_modules/d3-contour/src/contours.js","webpack://mermaid/./node_modules/d3-contour/src/density.js","webpack://mermaid/./node_modules/d3-contour/src/index.js","webpack://mermaid/./node_modules/d3-contour/src/noop.js","webpack://mermaid/./node_modules/d3-delaunay/src/delaunay.js","webpack://mermaid/./node_modules/d3-delaunay/src/index.js","webpack://mermaid/./node_modules/d3-delaunay/src/path.js","webpack://mermaid/./node_modules/d3-delaunay/src/polygon.js","webpack://mermaid/./node_modules/d3-delaunay/src/voronoi.js","webpack://mermaid/./node_modules/d3-fetch/node_modules/d3-dsv/src/csv.js","webpack://mermaid/./node_modules/d3-fetch/node_modules/d3-dsv/src/dsv.js","webpack://mermaid/./node_modules/d3-fetch/node_modules/d3-dsv/src/tsv.js","webpack://mermaid/./node_modules/d3-fetch/src/blob.js","webpack://mermaid/./node_modules/d3-fetch/src/buffer.js","webpack://mermaid/./node_modules/d3-fetch/src/dsv.js","webpack://mermaid/./node_modules/d3-fetch/src/image.js","webpack://mermaid/./node_modules/d3-fetch/src/index.js","webpack://mermaid/./node_modules/d3-fetch/src/json.js","webpack://mermaid/./node_modules/d3-fetch/src/text.js","webpack://mermaid/./node_modules/d3-fetch/src/xml.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/add.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/cover.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/data.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/extent.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/find.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/quad.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/quadtree.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/remove.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/root.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/size.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/visit.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/visitAfter.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/x.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-quadtree/src/y.js","webpack://mermaid/./node_modules/d3-force/node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-force/src/center.js","webpack://mermaid/./node_modules/d3-force/src/collide.js","webpack://mermaid/./node_modules/d3-force/src/constant.js","webpack://mermaid/./node_modules/d3-force/src/index.js","webpack://mermaid/./node_modules/d3-force/src/jiggle.js","webpack://mermaid/./node_modules/d3-force/src/lcg.js","webpack://mermaid/./node_modules/d3-force/src/link.js","webpack://mermaid/./node_modules/d3-force/src/manyBody.js","webpack://mermaid/./node_modules/d3-force/src/radial.js","webpack://mermaid/./node_modules/d3-force/src/simulation.js","webpack://mermaid/./node_modules/d3-force/src/x.js","webpack://mermaid/./node_modules/d3-force/src/y.js","webpack://mermaid/./node_modules/d3-geo/node_modules/d3-array/src/fsum.js","webpack://mermaid/./node_modules/d3-geo/node_modules/d3-array/src/merge.js","webpack://mermaid/./node_modules/d3-geo/node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-geo/src/area.js","webpack://mermaid/./node_modules/d3-geo/src/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/cartesian.js","webpack://mermaid/./node_modules/d3-geo/src/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/antimeridian.js","webpack://mermaid/./node_modules/d3-geo/src/clip/buffer.js","webpack://mermaid/./node_modules/d3-geo/src/clip/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/extent.js","webpack://mermaid/./node_modules/d3-geo/src/clip/index.js","webpack://mermaid/./node_modules/d3-geo/src/clip/line.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rectangle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rejoin.js","webpack://mermaid/./node_modules/d3-geo/src/compose.js","webpack://mermaid/./node_modules/d3-geo/src/constant.js","webpack://mermaid/./node_modules/d3-geo/src/contains.js","webpack://mermaid/./node_modules/d3-geo/src/distance.js","webpack://mermaid/./node_modules/d3-geo/src/graticule.js","webpack://mermaid/./node_modules/d3-geo/src/identity.js","webpack://mermaid/./node_modules/d3-geo/src/index.js","webpack://mermaid/./node_modules/d3-geo/src/interpolate.js","webpack://mermaid/./node_modules/d3-geo/src/length.js","webpack://mermaid/./node_modules/d3-geo/src/math.js","webpack://mermaid/./node_modules/d3-geo/src/noop.js","webpack://mermaid/./node_modules/d3-geo/src/path/area.js","webpack://mermaid/./node_modules/d3-geo/src/path/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/path/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/path/context.js","webpack://mermaid/./node_modules/d3-geo/src/path/index.js","webpack://mermaid/./node_modules/d3-geo/src/path/measure.js","webpack://mermaid/./node_modules/d3-geo/src/path/string.js","webpack://mermaid/./node_modules/d3-geo/src/pointEqual.js","webpack://mermaid/./node_modules/d3-geo/src/polygonContains.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albers.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albersUsa.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicConformal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equalEarth.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equirectangular.js","webpack://mermaid/./node_modules/d3-geo/src/projection/fit.js","webpack://mermaid/./node_modules/d3-geo/src/projection/gnomonic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/identity.js","webpack://mermaid/./node_modules/d3-geo/src/projection/index.js","webpack://mermaid/./node_modules/d3-geo/src/projection/mercator.js","webpack://mermaid/./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://mermaid/./node_modules/d3-geo/src/projection/orthographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/resample.js","webpack://mermaid/./node_modules/d3-geo/src/projection/stereographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/transverseMercator.js","webpack://mermaid/./node_modules/d3-geo/src/rotation.js","webpack://mermaid/./node_modules/d3-geo/src/stream.js","webpack://mermaid/./node_modules/d3-geo/src/transform.js","webpack://mermaid/./node_modules/d3-hierarchy/src/accessors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/array.js","webpack://mermaid/./node_modules/d3-hierarchy/src/cluster.js","webpack://mermaid/./node_modules/d3-hierarchy/src/constant.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://mermaid/./node_modules/d3-hierarchy/src/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/enclose.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/siblings.js","webpack://mermaid/./node_modules/d3-hierarchy/src/partition.js","webpack://mermaid/./node_modules/d3-hierarchy/src/stratify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/tree.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://mermaid/./node_modules/d3-polygon/src/area.js","webpack://mermaid/./node_modules/d3-polygon/src/centroid.js","webpack://mermaid/./node_modules/d3-polygon/src/contains.js","webpack://mermaid/./node_modules/d3-polygon/src/cross.js","webpack://mermaid/./node_modules/d3-polygon/src/hull.js","webpack://mermaid/./node_modules/d3-polygon/src/index.js","webpack://mermaid/./node_modules/d3-polygon/src/length.js","webpack://mermaid/./node_modules/d3-random/src/bates.js","webpack://mermaid/./node_modules/d3-random/src/bernoulli.js","webpack://mermaid/./node_modules/d3-random/src/beta.js","webpack://mermaid/./node_modules/d3-random/src/binomial.js","webpack://mermaid/./node_modules/d3-random/src/cauchy.js","webpack://mermaid/./node_modules/d3-random/src/defaultSource.js","webpack://mermaid/./node_modules/d3-random/src/exponential.js","webpack://mermaid/./node_modules/d3-random/src/gamma.js","webpack://mermaid/./node_modules/d3-random/src/geometric.js","webpack://mermaid/./node_modules/d3-random/src/index.js","webpack://mermaid/./node_modules/d3-random/src/int.js","webpack://mermaid/./node_modules/d3-random/src/irwinHall.js","webpack://mermaid/./node_modules/d3-random/src/lcg.js","webpack://mermaid/./node_modules/d3-random/src/logNormal.js","webpack://mermaid/./node_modules/d3-random/src/logistic.js","webpack://mermaid/./node_modules/d3-random/src/normal.js","webpack://mermaid/./node_modules/d3-random/src/pareto.js","webpack://mermaid/./node_modules/d3-random/src/poisson.js","webpack://mermaid/./node_modules/d3-random/src/uniform.js","webpack://mermaid/./node_modules/d3-random/src/weibull.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-color/src/cubehelix.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-color/src/math.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/cubehelix.js","webpack://mermaid/./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/colors.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/index.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/ramp.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/ascending.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/bisect.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/bisector.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/min.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/number.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/permute.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/quantile.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/quickselect.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/sort.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/exponent.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatDecimal.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatGroup.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatNumerals.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatPrefixAuto.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatRounded.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatSpecifier.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatTrim.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/formatTypes.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/identity.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/locale.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/precisionFixed.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/precisionPrefix.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-format/src/precisionRound.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/piecewise.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/round.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time-format/src/locale.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/day.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/duration.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/hour.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/interval.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/millisecond.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/minute.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/month.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/second.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/ticks.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/utcDay.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/utcHour.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/utcMinute.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/utcMonth.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/utcWeek.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/utcYear.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/week.js","webpack://mermaid/./node_modules/d3-scale/node_modules/d3-time/src/year.js","webpack://mermaid/./node_modules/d3-scale/src/band.js","webpack://mermaid/./node_modules/d3-scale/src/constant.js","webpack://mermaid/./node_modules/d3-scale/src/continuous.js","webpack://mermaid/./node_modules/d3-scale/src/diverging.js","webpack://mermaid/./node_modules/d3-scale/src/identity.js","webpack://mermaid/./node_modules/d3-scale/src/index.js","webpack://mermaid/./node_modules/d3-scale/src/init.js","webpack://mermaid/./node_modules/d3-scale/src/linear.js","webpack://mermaid/./node_modules/d3-scale/src/log.js","webpack://mermaid/./node_modules/d3-scale/src/nice.js","webpack://mermaid/./node_modules/d3-scale/src/number.js","webpack://mermaid/./node_modules/d3-scale/src/ordinal.js","webpack://mermaid/./node_modules/d3-scale/src/pow.js","webpack://mermaid/./node_modules/d3-scale/src/quantile.js","webpack://mermaid/./node_modules/d3-scale/src/quantize.js","webpack://mermaid/./node_modules/d3-scale/src/radial.js","webpack://mermaid/./node_modules/d3-scale/src/sequential.js","webpack://mermaid/./node_modules/d3-scale/src/sequentialQuantile.js","webpack://mermaid/./node_modules/d3-scale/src/symlog.js","webpack://mermaid/./node_modules/d3-scale/src/threshold.js","webpack://mermaid/./node_modules/d3-scale/src/tickFormat.js","webpack://mermaid/./node_modules/d3-scale/src/time.js","webpack://mermaid/./node_modules/d3-scale/src/utcTime.js","webpack://mermaid/./node_modules/d3-shape/node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3-shape/src/arc.js","webpack://mermaid/./node_modules/d3-shape/src/area.js","webpack://mermaid/./node_modules/d3-shape/src/areaRadial.js","webpack://mermaid/./node_modules/d3-shape/src/array.js","webpack://mermaid/./node_modules/d3-shape/src/constant.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basis.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/bump.js","webpack://mermaid/./node_modules/d3-shape/src/curve/bundle.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinal.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linear.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/monotone.js","webpack://mermaid/./node_modules/d3-shape/src/curve/natural.js","webpack://mermaid/./node_modules/d3-shape/src/curve/radial.js","webpack://mermaid/./node_modules/d3-shape/src/curve/step.js","webpack://mermaid/./node_modules/d3-shape/src/descending.js","webpack://mermaid/./node_modules/d3-shape/src/identity.js","webpack://mermaid/./node_modules/d3-shape/src/index.js","webpack://mermaid/./node_modules/d3-shape/src/line.js","webpack://mermaid/./node_modules/d3-shape/src/lineRadial.js","webpack://mermaid/./node_modules/d3-shape/src/link/index.js","webpack://mermaid/./node_modules/d3-shape/src/math.js","webpack://mermaid/./node_modules/d3-shape/src/noop.js","webpack://mermaid/./node_modules/d3-shape/src/offset/diverging.js","webpack://mermaid/./node_modules/d3-shape/src/offset/expand.js","webpack://mermaid/./node_modules/d3-shape/src/offset/none.js","webpack://mermaid/./node_modules/d3-shape/src/offset/silhouette.js","webpack://mermaid/./node_modules/d3-shape/src/offset/wiggle.js","webpack://mermaid/./node_modules/d3-shape/src/order/appearance.js","webpack://mermaid/./node_modules/d3-shape/src/order/ascending.js","webpack://mermaid/./node_modules/d3-shape/src/order/descending.js","webpack://mermaid/./node_modules/d3-shape/src/order/insideOut.js","webpack://mermaid/./node_modules/d3-shape/src/order/none.js","webpack://mermaid/./node_modules/d3-shape/src/order/reverse.js","webpack://mermaid/./node_modules/d3-shape/src/pie.js","webpack://mermaid/./node_modules/d3-shape/src/point.js","webpack://mermaid/./node_modules/d3-shape/src/pointRadial.js","webpack://mermaid/./node_modules/d3-shape/src/stack.js","webpack://mermaid/./node_modules/d3-shape/src/symbol.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/circle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/cross.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/diamond.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/square.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/star.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/triangle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/wye.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-interpolate/src/zoom.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/array.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/pointer.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/iterator.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/selectChild.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/selectChildren.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/easeVarying.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3-zoom/node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3-zoom/src/constant.js","webpack://mermaid/./node_modules/d3-zoom/src/event.js","webpack://mermaid/./node_modules/d3-zoom/src/index.js","webpack://mermaid/./node_modules/d3-zoom/src/noevent.js","webpack://mermaid/./node_modules/d3-zoom/src/transform.js","webpack://mermaid/./node_modules/d3-zoom/src/zoom.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/array.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/ascending.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/bin.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/bisect.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/bisector.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/constant.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/count.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/cross.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/cumsum.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/descending.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/deviation.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/difference.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/disjoint.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/every.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/extent.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/filter.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/fsum.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/greatest.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/greatestIndex.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/group.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/groupSort.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/identity.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/intersection.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/least.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/leastIndex.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/map.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/maxIndex.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/mean.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/median.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/merge.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/min.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/minIndex.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/mode.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/nice.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/number.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/pairs.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/permute.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/quantile.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/quickselect.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/rank.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/reduce.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/reverse.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/scan.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/shuffle.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/some.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/sort.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/subset.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/sum.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/superset.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/threshold/scott.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/threshold/sturges.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/transpose.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/union.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/variance.js","webpack://mermaid/./node_modules/d3/node_modules/d3-array/src/zip.js","webpack://mermaid/./node_modules/d3/node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3/node_modules/d3-color/src/cubehelix.js","webpack://mermaid/./node_modules/d3/node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3/node_modules/d3-color/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-color/src/lab.js","webpack://mermaid/./node_modules/d3/node_modules/d3-color/src/math.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dispatch/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-drag/src/constant.js","webpack://mermaid/./node_modules/d3/node_modules/d3-drag/src/drag.js","webpack://mermaid/./node_modules/d3/node_modules/d3-drag/src/event.js","webpack://mermaid/./node_modules/d3/node_modules/d3-drag/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3/node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dsv/src/autoType.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dsv/src/csv.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dsv/src/dsv.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dsv/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-dsv/src/tsv.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/back.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/bounce.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/circle.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/elastic.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/exp.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/linear.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/math.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/poly.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/quad.js","webpack://mermaid/./node_modules/d3/node_modules/d3-ease/src/sin.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/exponent.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatDecimal.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatGroup.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatNumerals.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatPrefixAuto.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatRounded.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatSpecifier.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatTrim.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/formatTypes.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/identity.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/locale.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/precisionFixed.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/precisionPrefix.js","webpack://mermaid/./node_modules/d3/node_modules/d3-format/src/precisionRound.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/cubehelix.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/discrete.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/hcl.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/hsl.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/hue.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/lab.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/piecewise.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/quantize.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/round.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3/node_modules/d3-interpolate/src/zoom.js","webpack://mermaid/./node_modules/d3/node_modules/d3-path/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/add.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/cover.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/data.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/extent.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/find.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/quad.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/quadtree.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/remove.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/root.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/size.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/visit.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/visitAfter.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/x.js","webpack://mermaid/./node_modules/d3/node_modules/d3-quadtree/src/y.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/array.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/create.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/local.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/pointer.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/pointers.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selectAll.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/iterator.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/selectChild.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/selectChildren.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3/node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time-format/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time-format/src/isoFormat.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time-format/src/isoParse.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time-format/src/locale.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/day.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/duration.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/hour.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/interval.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/millisecond.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/minute.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/month.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/second.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/ticks.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/utcDay.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/utcHour.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/utcMinute.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/utcMonth.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/utcWeek.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/utcYear.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/week.js","webpack://mermaid/./node_modules/d3/node_modules/d3-time/src/year.js","webpack://mermaid/./node_modules/d3/node_modules/d3-timer/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-timer/src/interval.js","webpack://mermaid/./node_modules/d3/node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3/node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/easeVarying.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3/node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3/src/index.js","webpack://mermaid/./node_modules/delaunator/index.js","webpack://mermaid/./node_modules/internmap/src/index.js","webpack://mermaid/./node_modules/khroma/dist/channels/index.js","webpack://mermaid/./node_modules/khroma/dist/channels/reusable.js","webpack://mermaid/./node_modules/khroma/dist/channels/type.js","webpack://mermaid/./node_modules/khroma/dist/color/hex.js","webpack://mermaid/./node_modules/khroma/dist/color/hsl.js","webpack://mermaid/./node_modules/khroma/dist/color/index.js","webpack://mermaid/./node_modules/khroma/dist/color/keyword.js","webpack://mermaid/./node_modules/khroma/dist/color/rgb.js","webpack://mermaid/./node_modules/khroma/dist/constants.js","webpack://mermaid/./node_modules/khroma/dist/methods/adjust.js","webpack://mermaid/./node_modules/khroma/dist/methods/adjust_channel.js","webpack://mermaid/./node_modules/khroma/dist/methods/change.js","webpack://mermaid/./node_modules/khroma/dist/methods/darken.js","webpack://mermaid/./node_modules/khroma/dist/methods/invert.js","webpack://mermaid/./node_modules/khroma/dist/methods/lighten.js","webpack://mermaid/./node_modules/khroma/dist/methods/mix.js","webpack://mermaid/./node_modules/khroma/dist/methods/rgba.js","webpack://mermaid/./node_modules/khroma/dist/utils/channel.js","webpack://mermaid/./node_modules/khroma/dist/utils/index.js","webpack://mermaid/./node_modules/khroma/dist/utils/lang.js","webpack://mermaid/./node_modules/khroma/dist/utils/unit.js","webpack://mermaid/./node_modules/robust-predicates/esm/incircle.js","webpack://mermaid/./node_modules/robust-predicates/esm/insphere.js","webpack://mermaid/./node_modules/robust-predicates/esm/orient2d.js","webpack://mermaid/./node_modules/robust-predicates/esm/orient3d.js","webpack://mermaid/./node_modules/robust-predicates/esm/util.js","webpack://mermaid/./node_modules/robust-predicates/index.js","webpack://mermaid/./node_modules/stylis/src/Enum.js","webpack://mermaid/./node_modules/stylis/src/Parser.js","webpack://mermaid/./node_modules/stylis/src/Serializer.js","webpack://mermaid/./node_modules/stylis/src/Tokenizer.js","webpack://mermaid/./node_modules/stylis/src/Utility.js","webpack://mermaid/webpack/bootstrap","webpack://mermaid/webpack/runtime/compat get default export","webpack://mermaid/webpack/runtime/define property getters","webpack://mermaid/webpack/runtime/global","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,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.setTitle(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,48],$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=[1,44],$Ve=[30,45,46],$Vf=[4,6,9,11,23,25,27,29,30,48],$Vg=[41,42,43,44],$Vh=[22,36],$Vi=[1,62];\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,\"attribute\":31,\"attributeType\":32,\"attributeName\":33,\"attributeKeyType\":34,\"attributeComment\":35,\"ATTRIBUTE_WORD\":36,\"ATTRIBUTE_KEY\":37,\"COMMENT\":38,\"cardinality\":39,\"relType\":40,\"ZERO_OR_ONE\":41,\"ZERO_OR_MORE\":42,\"ONE_OR_MORE\":43,\"ONLY_ONE\":44,\"NON_IDENTIFYING\":45,\"IDENTIFYING\":46,\"WORD\":47,\"open_directive\":48,\"type_directive\":49,\"arg_directive\":50,\"close_directive\":51,\"$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\",36:\"ATTRIBUTE_WORD\",37:\"ATTRIBUTE_KEY\",38:\"COMMENT\",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\"},\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],[21,1],[21,2],[31,2],[31,3],[31,3],[31,4],[32,1],[33,1],[34,1],[35,1],[18,3],[39,1],[39,1],[39,1],[39,1],[40,1],[40,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.setTitle(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]]; \nbreak;\ncase 22:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 23:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 24:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 25:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 26:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 27: case 28: case 29:\n this.$=$$[$0]; \nbreak;\ncase 30:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 31:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 32:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 33:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 34:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 35:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 36:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 37:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 38:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 39:\n this.$ = $$[$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', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,48:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,48:$V1},{13:8,49:[1,9]},{49:[2,40]},{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,48:$V1},{1:[2,2]},{14:22,15:[1,23],51:$V8},o([15,51],[2,41]),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,48:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:26,39:28,20:[1,27],41:$V9,42:$Va,43:$Vb,44:$Vc}),{24:[1,33]},{26:[1,34]},{28:[1,35]},o($V2,[2,19]),o([6,9,11,15,20,23,25,27,29,30,41,42,43,44,48],[2,20]),{11:[1,36]},{16:37,50:[1,38]},{11:[2,43]},o($V2,[2,5]),{17:39,30:$V7},{21:40,22:[1,41],31:42,32:43,36:$Vd},{40:45,45:[1,46],46:[1,47]},o($Ve,[2,32]),o($Ve,[2,33]),o($Ve,[2,34]),o($Ve,[2,35]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($Vf,[2,9]),{14:48,51:$V8},{51:[2,42]},{15:[1,49]},{22:[1,50]},o($V2,[2,14]),{21:51,22:[2,21],31:42,32:43,36:$Vd},{33:52,36:[1,53]},{36:[2,27]},{39:54,41:$V9,42:$Va,43:$Vb,44:$Vc},o($Vg,[2,36]),o($Vg,[2,37]),{11:[1,55]},{19:56,30:[1,58],47:[1,57]},o($V2,[2,13]),{22:[2,22]},o($Vh,[2,23],{34:59,35:60,37:[1,61],38:$Vi}),o([22,36,37,38],[2,28]),{30:[2,31]},o($Vf,[2,10]),o($V2,[2,12]),o($V2,[2,38]),o($V2,[2,39]),o($Vh,[2,24],{35:63,38:$Vi}),o($Vh,[2,25]),o([22,36,38],[2,29]),o($Vh,[2,30]),o($Vh,[2,26])],\ndefaultActions: {5:[2,40],7:[2,2],24:[2,43],38:[2,42],44:[2,27],51:[2,22],54:[2,31]},\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 48; \nbreak;\ncase 8: this.begin('type_directive'); return 49; \nbreak;\ncase 9: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 10: this.popState(); this.popState(); return 51; \nbreak;\ncase 11:return 50;\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 47;\nbreak;\ncase 18:return 4;\nbreak;\ncase 19: this.begin(\"block\"); return 20; \nbreak;\ncase 20:/* skip whitespace in block */\nbreak;\ncase 21:return 37\nbreak;\ncase 22:return 36\nbreak;\ncase 23:return 38;\nbreak;\ncase 24:/* nothing */\nbreak;\ncase 25: this.popState(); return 22; \nbreak;\ncase 26:return yy_.yytext[0];\nbreak;\ncase 27:return 41;\nbreak;\ncase 28:return 42;\nbreak;\ncase 29:return 43;\nbreak;\ncase 30:return 44;\nbreak;\ncase 31:return 41;\nbreak;\ncase 32:return 42;\nbreak;\ncase 33:return 43;\nbreak;\ncase 34:return 45;\nbreak;\ncase 35:return 46;\nbreak;\ncase 36:return 45;\nbreak;\ncase 37:return 45;\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,/^(?:(?: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: {\"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.setTitle(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.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setTitle(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,19,21,23,24,26,28,31,34,47,51],$V8=[8,14,19,21,23,24,26,28,31,34],$V9=[8,13,14,19,21,23,24,26,28,31,34],$Va=[1,26],$Vb=[6,8,14,47,51],$Vc=[8,14,51],$Vd=[1,61],$Ve=[1,62],$Vf=[1,63],$Vg=[8,14,32,38,39,51];\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,\"acc_title\":19,\"acc_title_value\":20,\"acc_descr\":21,\"acc_descr_value\":22,\"acc_descr_multiline_value\":23,\"section\":24,\"branchStatement\":25,\"CHECKOUT\":26,\"ID\":27,\"BRANCH\":28,\"ORDER\":29,\"NUM\":30,\"MERGE\":31,\"COMMIT_TAG\":32,\"STR\":33,\"COMMIT\":34,\"commit_arg\":35,\"COMMIT_TYPE\":36,\"commitType\":37,\"COMMIT_ID\":38,\"COMMIT_MSG\":39,\"NORMAL\":40,\"REVERSE\":41,\"HIGHLIGHT\":42,\"openDirective\":43,\"typeDirective\":44,\"closeDirective\":45,\"argDirective\":46,\"open_directive\":47,\"type_directive\":48,\"arg_directive\":49,\"close_directive\":50,\";\":51,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",19:\"acc_title\",20:\"acc_title_value\",21:\"acc_descr\",22:\"acc_descr_value\",23:\"acc_descr_multiline_value\",24:\"section\",26:\"CHECKOUT\",27:\"ID\",28:\"BRANCH\",29:\"ORDER\",30:\"NUM\",31:\"MERGE\",32:\"COMMIT_TAG\",33:\"STR\",34:\"COMMIT\",36:\"COMMIT_TYPE\",38:\"COMMIT_ID\",39:\"COMMIT_MSG\",40:\"NORMAL\",41:\"REVERSE\",42:\"HIGHLIGHT\",47:\"open_directive\",48:\"type_directive\",49:\"arg_directive\",50:\"close_directive\",51:\";\"},\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,2],[16,2],[16,1],[16,1],[16,1],[16,2],[25,2],[25,4],[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],[35,0],[35,1],[37,1],[37,1],[37,1],[5,3],[5,5],[43,1],[44,1],[46,1],[45,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 16:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 17: case 18:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 19:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 21:\nyy.checkout($$[$0])\nbreak;\ncase 22:\nyy.branch($$[$0])\nbreak;\ncase 23:\nyy.branch($$[$0-2], $$[$0])\nbreak;\ncase 24:\nyy.merge($$[$0])\nbreak;\ncase 25:\nyy.merge($$[$0-2], $$[$0])\nbreak;\ncase 26:\nyy.commit($$[$0])\nbreak;\ncase 27:\nyy.commit('','',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 28:\nyy.commit('','',$$[$0],'')\nbreak;\ncase 29:\nyy.commit('','',$$[$0],$$[$0-2])\nbreak;\ncase 30:\nyy.commit('','',$$[$0-2],$$[$0])\nbreak;\ncase 31:\nyy.commit('',$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 32:\nyy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 33:\nyy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 34:\nyy.commit('',$$[$0-2],$$[$0],'')\nbreak;\ncase 35:\nyy.commit('',$$[$0],$$[$0-2],'')\nbreak;\ncase 36:\nyy.commit('',$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 37:\nyy.commit('',$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 38:\nyy.commit('',$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 39:\nyy.commit('',$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 40:\nyy.commit('',$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 41:\nyy.commit('',$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 42:\nyy.commit($$[$0],'',yy.commitType.NORMAL,'')\nbreak;\ncase 43:\nyy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 44:\nyy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 45:\nyy.commit($$[$0-2],'',$$[$0],'')\nbreak;\ncase 46:\nyy.commit($$[$0],'',$$[$0-2],'')\nbreak;\ncase 47:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')\nbreak;\ncase 48:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 49:\nyy.commit($$[$0-4],'',$$[$0-2],$$[$0])\nbreak;\ncase 50:\nyy.commit($$[$0-4],'',$$[$0],$$[$0-2])\nbreak;\ncase 51:\nyy.commit($$[$0-2],'',$$[$0-4],$$[$0])\nbreak;\ncase 52:\nyy.commit($$[$0],'',$$[$0-4],$$[$0-2])\nbreak;\ncase 53:\nyy.commit($$[$0],'',$$[$0-2],$$[$0-4])\nbreak;\ncase 54:\nyy.commit($$[$0-2],'',$$[$0],$$[$0-4])\nbreak;\ncase 55:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],'')\nbreak;\ncase 56:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],'')\nbreak;\ncase 57:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],'')\nbreak;\ncase 58:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],'')\nbreak;\ncase 59:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],'')\nbreak;\ncase 60:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],'')\nbreak;\ncase 61:\nyy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 62:\nyy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 63:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 64:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 65:\nyy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 66:\nyy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 67:\nyy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 68:\nyy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 69:\nyy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 70:\nyy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 71:\nyy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 72:\nyy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 73:\nyy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])\nbreak;\ncase 74:\nyy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])\nbreak;\ncase 75:\nyy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])\nbreak;\ncase 76:\nyy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])\nbreak;\ncase 77:\nyy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])\nbreak;\ncase 78:\nyy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])\nbreak;\ncase 79:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])\nbreak;\ncase 80:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])\nbreak;\ncase 81:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])\nbreak;\ncase 82:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])\nbreak;\ncase 83:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])\nbreak;\ncase 84:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])\nbreak;\ncase 85:\nyy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])\nbreak;\ncase 86:\nyy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])\nbreak;\ncase 87:\nyy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])\nbreak;\ncase 88:\nyy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])\nbreak;\ncase 89:\nyy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])\nbreak;\ncase 90:\nyy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])\nbreak;\ncase 91:\nthis.$ = \"\"\nbreak;\ncase 92:\nthis.$=$$[$0]\nbreak;\ncase 93:\n this.$=yy.commitType.NORMAL;\nbreak;\ncase 94:\n this.$=yy.commitType.REVERSE;\nbreak;\ncase 95:\n this.$=yy.commitType.HIGHLIGHT;\nbreak;\ncase 98:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 99:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 100:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 101:\n yy.parseDirective('}%%', 'close_directive', 'gitGraph'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,43:8,47:$V3,51:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,102]),o($V7,[2,103]),o($V7,[2,104]),{44:17,48:[1,18]},{48:[2,98]},{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],45:24,50:$Va},o([9,50],[2,99]),{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:[1,34],21:[1,35],23:[1,36],24:[1,37],25:38,26:[1,39],28:[1,42],31:[1,41],34:[1,40]},o($V9,[2,8]),o($Vb,[2,96]),{46:43,49:[1,44]},o($Vb,[2,101]),{1:[2,4]},{8:[1,45]},o($V8,[2,11]),{4:46,8:$V1,14:$V2,51:$V4},o($V8,[2,13]),o($Vc,[2,14]),o($Vc,[2,15]),{20:[1,47]},{22:[1,48]},o($Vc,[2,18]),o($Vc,[2,19]),o($Vc,[2,20]),{27:[1,49]},o($Vc,[2,91],{35:50,32:[1,51],33:[1,55],36:[1,52],38:[1,53],39:[1,54]}),{27:[1,56]},{27:[1,57]},{45:58,50:$Va},{50:[2,100]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,16]),o($Vc,[2,17]),o($Vc,[2,21]),o($Vc,[2,26]),{33:[1,59]},{37:60,40:$Vd,41:$Ve,42:$Vf},{33:[1,64]},{33:[1,65]},o($Vc,[2,92]),o($Vc,[2,24],{32:[1,66]}),o($Vc,[2,22],{29:[1,67]}),o($Vb,[2,97]),o($Vc,[2,27],{36:[1,68],38:[1,69],39:[1,70]}),o($Vc,[2,28],{32:[1,71],38:[1,72],39:[1,73]}),o($Vg,[2,93]),o($Vg,[2,94]),o($Vg,[2,95]),o($Vc,[2,31],{32:[1,74],36:[1,75],39:[1,76]}),o($Vc,[2,42],{32:[1,77],36:[1,78],38:[1,79]}),{33:[1,80]},{30:[1,81]},{37:82,40:$Vd,41:$Ve,42:$Vf},{33:[1,83]},{33:[1,84]},{33:[1,85]},{33:[1,86]},{33:[1,87]},{33:[1,88]},{37:89,40:$Vd,41:$Ve,42:$Vf},{33:[1,90]},{33:[1,91]},{37:92,40:$Vd,41:$Ve,42:$Vf},{33:[1,93]},o($Vc,[2,25]),o($Vc,[2,23]),o($Vc,[2,29],{38:[1,94],39:[1,95]}),o($Vc,[2,33],{36:[1,96],39:[1,97]}),o($Vc,[2,43],{36:[1,98],38:[1,99]}),o($Vc,[2,30],{38:[1,100],39:[1,101]}),o($Vc,[2,35],{32:[1,102],39:[1,103]}),o($Vc,[2,46],{32:[1,104],38:[1,105]}),o($Vc,[2,32],{36:[1,106],39:[1,107]}),o($Vc,[2,34],{32:[1,108],39:[1,109]}),o($Vc,[2,47],{32:[1,111],36:[1,110]}),o($Vc,[2,44],{36:[1,112],38:[1,113]}),o($Vc,[2,45],{32:[1,114],38:[1,115]}),o($Vc,[2,48],{32:[1,117],36:[1,116]}),{33:[1,118]},{33:[1,119]},{37:120,40:$Vd,41:$Ve,42:$Vf},{33:[1,121]},{37:122,40:$Vd,41:$Ve,42:$Vf},{33:[1,123]},{33:[1,124]},{33:[1,125]},{33:[1,126]},{33:[1,127]},{33:[1,128]},{33:[1,129]},{37:130,40:$Vd,41:$Ve,42:$Vf},{33:[1,131]},{33:[1,132]},{33:[1,133]},{37:134,40:$Vd,41:$Ve,42:$Vf},{33:[1,135]},{37:136,40:$Vd,41:$Ve,42:$Vf},{33:[1,137]},{33:[1,138]},{33:[1,139]},{37:140,40:$Vd,41:$Ve,42:$Vf},{33:[1,141]},o($Vc,[2,40],{39:[1,142]}),o($Vc,[2,53],{38:[1,143]}),o($Vc,[2,41],{39:[1,144]}),o($Vc,[2,64],{36:[1,145]}),o($Vc,[2,54],{38:[1,146]}),o($Vc,[2,63],{36:[1,147]}),o($Vc,[2,39],{39:[1,148]}),o($Vc,[2,52],{38:[1,149]}),o($Vc,[2,38],{39:[1,150]}),o($Vc,[2,58],{32:[1,151]}),o($Vc,[2,51],{38:[1,152]}),o($Vc,[2,57],{32:[1,153]}),o($Vc,[2,37],{39:[1,154]}),o($Vc,[2,65],{36:[1,155]}),o($Vc,[2,36],{39:[1,156]}),o($Vc,[2,59],{32:[1,157]}),o($Vc,[2,60],{32:[1,158]}),o($Vc,[2,66],{36:[1,159]}),o($Vc,[2,50],{38:[1,160]}),o($Vc,[2,61],{36:[1,161]}),o($Vc,[2,49],{38:[1,162]}),o($Vc,[2,55],{32:[1,163]}),o($Vc,[2,56],{32:[1,164]}),o($Vc,[2,62],{36:[1,165]}),{33:[1,166]},{33:[1,167]},{33:[1,168]},{37:169,40:$Vd,41:$Ve,42:$Vf},{33:[1,170]},{37:171,40:$Vd,41:$Ve,42:$Vf},{33:[1,172]},{33:[1,173]},{33:[1,174]},{33:[1,175]},{33:[1,176]},{33:[1,177]},{33:[1,178]},{37:179,40:$Vd,41:$Ve,42:$Vf},{33:[1,180]},{33:[1,181]},{33:[1,182]},{37:183,40:$Vd,41:$Ve,42:$Vf},{33:[1,184]},{37:185,40:$Vd,41:$Ve,42:$Vf},{33:[1,186]},{33:[1,187]},{33:[1,188]},{37:189,40:$Vd,41:$Ve,42:$Vf},o($Vc,[2,81]),o($Vc,[2,82]),o($Vc,[2,79]),o($Vc,[2,80]),o($Vc,[2,84]),o($Vc,[2,83]),o($Vc,[2,88]),o($Vc,[2,87]),o($Vc,[2,86]),o($Vc,[2,85]),o($Vc,[2,90]),o($Vc,[2,89]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,76]),o($Vc,[2,75]),o($Vc,[2,73]),o($Vc,[2,74]),o($Vc,[2,72]),o($Vc,[2,71]),o($Vc,[2,70]),o($Vc,[2,69]),o($Vc,[2,67]),o($Vc,[2,68])],\ndefaultActions: {9:[2,98],10:[2,1],11:[2,2],19:[2,3],27:[2,4],44:[2,100],45:[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 47; \nbreak;\ncase 1: this.begin('type_directive'); return 48; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 9; \nbreak;\ncase 3: this.popState(); this.popState(); return 50; \nbreak;\ncase 4:return 49;\nbreak;\ncase 5: this.begin(\"acc_title\");return 19; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 21; \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 34;\nbreak;\ncase 18:return 38;\nbreak;\ncase 19:return 36;\nbreak;\ncase 20:return 39;\nbreak;\ncase 21:return 40;\nbreak;\ncase 22:return 41;\nbreak;\ncase 23:return 42;\nbreak;\ncase 24:return 32;\nbreak;\ncase 25:return 28;\nbreak;\ncase 26:return 29;\nbreak;\ncase 27:return 31;\nbreak;\ncase 28:return 26;\nbreak;\ncase 29:return 10;\nbreak;\ncase 30:return 10;\nbreak;\ncase 31:return 9;\nbreak;\ncase 32:return 'CARET'\nbreak;\ncase 33:this.begin(\"options\"); //\nbreak;\ncase 34:this.popState(); // not used anymore in the renderer, fixed for backward compatibility\nbreak;\ncase 35:return 13; //\nbreak;\ncase 36:this.begin(\"string\");\nbreak;\ncase 37:this.popState();\nbreak;\ncase 38:return 33;\nbreak;\ncase 39:return 30;\nbreak;\ncase 40:return 27;\nbreak;\ncase 41: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,/^(?: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\":[34,35],\"inclusive\":false},\"string\":{\"rules\":[37,38],\"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,36,39,40,41],\"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.setPieTitle(this.$); \nbreak;\ncase 11:\n this.$=$$[$0].trim();yy.setTitle(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.setTitle(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,41],$Vn=[1,42],$Vo=[1,43],$Vp=[1,44],$Vq=[1,45],$Vr=[1,46],$Vs=[1,49],$Vt=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,48,49,54,55,56,57,65,75],$Vu=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,49,54,55,56,57,65,75],$Vv=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,48,49,54,55,56,57,65,75],$Vw=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,54,55,56,57,65,75],$Vx=[63,64,65],$Vy=[1,114],$Vz=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,48,49,54,55,56,57,65,75];\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,\"and\":47,\"else\":48,\"note\":49,\"placement\":50,\"text2\":51,\"over\":52,\"actor_pair\":53,\"links\":54,\"link\":55,\"properties\":56,\"details\":57,\"spaceList\":58,\",\":59,\"left_of\":60,\"right_of\":61,\"signaltype\":62,\"+\":63,\"-\":64,\"ACTOR\":65,\"SOLID_OPEN_ARROW\":66,\"DOTTED_OPEN_ARROW\":67,\"SOLID_ARROW\":68,\"DOTTED_ARROW\":69,\"SOLID_CROSS\":70,\"DOTTED_CROSS\":71,\"SOLID_POINT\":72,\"DOTTED_POINT\":73,\"TXT\":74,\"open_directive\":75,\"type_directive\":76,\"arg_directive\":77,\"close_directive\":78,\"$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:\"and\",48:\"else\",49:\"note\",52:\"over\",54:\"links\",55:\"link\",56:\"properties\",57:\"details\",59:\",\",60:\"left_of\",61:\"right_of\",63:\"+\",64:\"-\",65:\"ACTOR\",66:\"SOLID_OPEN_ARROW\",67:\"DOTTED_OPEN_ARROW\",68:\"SOLID_ARROW\",69:\"DOTTED_ARROW\",70:\"SOLID_CROSS\",71:\"DOTTED_CROSS\",72:\"SOLID_POINT\",73:\"DOTTED_POINT\",74:\"TXT\",75:\"open_directive\",76:\"type_directive\",77:\"arg_directive\",78:\"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,1],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[58,2],[58,1],[53,3],[53,1],[50,1],[50,1],[21,5],[21,5],[21,4],[17,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[51,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.setTitle(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 40:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 42:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 43:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 44:\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 45:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 46:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 47:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 48:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 51:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 52:\n this.$ = $$[$0]; \nbreak;\ncase 53:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 54:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 55:\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 56:\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 57:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 58:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 59:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 60:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 61:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 62:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 63:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 64:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 65:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 66:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 67:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 68:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 69:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 70:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 71:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,75:$V3},o([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,49,54,55,56,57,65,75],$V4,{8:11}),{12:12,76:[1,13]},{76:[2,68]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{13:47,14:[1,48],78:$Vs},o([14,78],[2,69]),o($Vt,[2,6]),{6:39,10:50,11:6,16:$V7,17:40,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,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},o($Vt,[2,8]),o($Vt,[2,9]),{17:51,65:$Vr},{17:52,65:$Vr},{5:[1,53]},{5:[1,56],23:[1,54],24:[1,55]},{17:57,65:$Vr},{17:58,65:$Vr},{5:[1,59]},{5:[1,60]},{5:[1,61]},{5:[1,62]},{5:[1,63]},o($Vt,[2,28]),o($Vt,[2,29]),{35:[1,64]},{37:[1,65]},o($Vt,[2,32]),{19:[1,66]},{19:[1,67]},{19:[1,68]},{19:[1,69]},{19:[1,70]},o($Vt,[2,38]),{62:71,66:[1,72],67:[1,73],68:[1,74],69:[1,75],70:[1,76],71:[1,77],72:[1,78],73:[1,79]},{50:80,52:[1,81],60:[1,82],61:[1,83]},{17:84,65:$Vr},{17:85,65:$Vr},{17:86,65:$Vr},{17:87,65:$Vr},o([5,18,59,66,67,68,69,70,71,72,73,74],[2,58]),{5:[1,88]},{15:89,77:[1,90]},{5:[2,71]},o($Vt,[2,7]),{5:[1,92],18:[1,91]},{5:[1,94],18:[1,93]},o($Vt,[2,16]),{5:[1,96],23:[1,95]},{5:[1,97]},o($Vt,[2,20]),{5:[1,98]},{5:[1,99]},o($Vt,[2,23]),o($Vt,[2,24]),o($Vt,[2,25]),o($Vt,[2,26]),o($Vt,[2,27]),o($Vt,[2,30]),o($Vt,[2,31]),o($Vu,$V4,{8:100}),o($Vu,$V4,{8:101}),o($Vu,$V4,{8:102}),o($Vv,$V4,{44:103,8:104}),o($Vw,$V4,{46:105,8:106}),{17:109,63:[1,107],64:[1,108],65:$Vr},o($Vx,[2,59]),o($Vx,[2,60]),o($Vx,[2,61]),o($Vx,[2,62]),o($Vx,[2,63]),o($Vx,[2,64]),o($Vx,[2,65]),o($Vx,[2,66]),{17:110,65:$Vr},{17:112,53:111,65:$Vr},{65:[2,53]},{65:[2,54]},{51:113,74:$Vy},{51:115,74:$Vy},{51:116,74:$Vy},{51:117,74:$Vy},o($Vz,[2,10]),{13:118,78:$Vs},{78:[2,70]},{19:[1,119]},o($Vt,[2,13]),{19:[1,120]},o($Vt,[2,15]),{5:[1,121]},o($Vt,[2,18]),o($Vt,[2,19]),o($Vt,[2,21]),o($Vt,[2,22]),{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,122],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,123],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,124],41:$Vi,42:$Vj,43:$Vk,45:$Vl,49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{40:[1,125]},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,48:[1,126],49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{40:[1,127]},{4:$V5,5:$V6,6:39,9:14,10:16,11:6,16:$V7,17:40,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,39],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:[1,128],49:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,65:$Vr,75:$V3},{17:129,65:$Vr},{17:130,65:$Vr},{51:131,74:$Vy},{51:132,74:$Vy},{51:133,74:$Vy},{59:[1,134],74:[2,52]},{5:[2,45]},{5:[2,67]},{5:[2,46]},{5:[2,47]},{5:[2,48]},{5:[1,135]},{5:[1,136]},{5:[1,137]},o($Vt,[2,17]),o($Vt,[2,33]),o($Vt,[2,34]),o($Vt,[2,35]),o($Vt,[2,36]),{19:[1,138]},o($Vt,[2,37]),{19:[1,139]},{51:140,74:$Vy},{51:141,74:$Vy},{5:[2,57]},{5:[2,43]},{5:[2,44]},{17:142,65:$Vr},o($Vz,[2,11]),o($Vt,[2,12]),o($Vt,[2,14]),o($Vv,$V4,{8:104,44:143}),o($Vw,$V4,{8:106,46:144}),{5:[2,55]},{5:[2,56]},{74:[2,51]},{40:[2,42]},{40:[2,40]}],\ndefaultActions: {7:[2,68],8:[2,1],9:[2,2],10:[2,3],49:[2,71],82:[2,53],83:[2,54],90:[2,70],113:[2,45],114:[2,67],115:[2,46],116:[2,47],117:[2,48],131:[2,57],132:[2,43],133:[2,44],140:[2,55],141:[2,56],142:[2,51],143:[2,42],144:[2,40]},\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 75; \nbreak;\ncase 1: this.begin('type_directive'); return 76; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 78; \nbreak;\ncase 4:return 77;\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 65; \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 48; \nbreak;\ncase 22: this.begin('LINE'); return 45; \nbreak;\ncase 23: this.begin('LINE'); return 47; \nbreak;\ncase 24: this.popState(); return 19; \nbreak;\ncase 25:return 40;\nbreak;\ncase 26:return 60;\nbreak;\ncase 27:return 61;\nbreak;\ncase 28:return 54;\nbreak;\ncase 29:return 55;\nbreak;\ncase 30:return 56;\nbreak;\ncase 31:return 57;\nbreak;\ncase 32:return 52;\nbreak;\ncase 33:return 49;\nbreak;\ncase 34: this.begin('ID'); return 25; \nbreak;\ncase 35: this.begin('ID'); return 26; \nbreak;\ncase 36:return 32;\nbreak;\ncase 37:return 33;\nbreak;\ncase 38: this.begin(\"acc_title\");return 34; \nbreak;\ncase 39: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 40: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 41: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 42: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 43: this.popState(); \nbreak;\ncase 44:return \"acc_descr_multiline_value\";\nbreak;\ncase 45:return 7;\nbreak;\ncase 46:return 22;\nbreak;\ncase 47:return 24;\nbreak;\ncase 48:return 59;\nbreak;\ncase 49:return 5;\nbreak;\ncase 50: yy_.yytext = yy_.yytext.trim(); return 65; \nbreak;\ncase 51:return 68;\nbreak;\ncase 52:return 69;\nbreak;\ncase 53:return 66;\nbreak;\ncase 54:return 67;\nbreak;\ncase 55:return 70;\nbreak;\ncase 56:return 71;\nbreak;\ncase 57:return 72;\nbreak;\ncase 58:return 73;\nbreak;\ncase 59:return 74;\nbreak;\ncase 60:return 63;\nbreak;\ncase 61:return 64;\nbreak;\ncase 62:return 5;\nbreak;\ncase 63: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,/^(?:(?:[:]?(?: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\":[43,44],\"inclusive\":false},\"acc_descr\":{\"rules\":[41],\"inclusive\":false},\"acc_title\":{\"rules\":[39],\"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,24],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,42,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],\"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.setTitle(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.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 12:\n this.$=$$[$0].trim();yy.setTitle(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}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nvar htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nvar ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nvar urlSchemeRegex = /^([^:]+):/gm;\nvar relativeFirstCharacters = [\".\", \"/\"];\nfunction isRelativeUrlWithoutProtocol(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n return str.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n var sanitizedUrl = decodeHtmlCharacters(url || \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return \"about:blank\";\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return \"about:blank\";\n }\n return sanitizedUrl;\n}\nexports.sanitizeUrl = sanitizeUrl;\n","/**\n * This method will add a basic title and description element to a chart. The yy parser will need to\n * respond to getTitle 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.getTitle();\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 description = '';\nconst sanitizeText = (txt) => _sanitizeText(txt, getConfig());\n\nexport const clear = function () {\n title = '';\n description = '';\n};\n\nexport const setTitle = function (txt) {\n title = sanitizeText(txt).replace(/^\\s+/g, '');\n};\n\nexport const getTitle = function () {\n return title;\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 default {\n setTitle,\n getTitle,\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 themeVaraibles\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 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 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 // 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 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 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 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 },\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 { 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 setTitle,\n getTitle,\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 console.log(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 setTitle,\n getTitle,\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, configureSvgSize } 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 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 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 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 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 demoand 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.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 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';\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};\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 ? '#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 /* 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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 /* 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.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\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 '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 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","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function(x) {\n return x;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect\";\nexport {default as ascending} from \"./ascending\";\nexport {default as bisector} from \"./bisector\";\nexport {default as cross} from \"./cross\";\nexport {default as descending} from \"./descending\";\nexport {default as deviation} from \"./deviation\";\nexport {default as extent} from \"./extent\";\nexport {default as histogram} from \"./histogram\";\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis\";\nexport {default as thresholdScott} from \"./threshold/scott\";\nexport {default as thresholdSturges} from \"./threshold/sturges\";\nexport {default as max} from \"./max\";\nexport {default as mean} from \"./mean\";\nexport {default as median} from \"./median\";\nexport {default as merge} from \"./merge\";\nexport {default as min} from \"./min\";\nexport {default as pairs} from \"./pairs\";\nexport {default as permute} from \"./permute\";\nexport {default as quantile} from \"./quantile\";\nexport {default as range} from \"./range\";\nexport {default as scan} from \"./scan\";\nexport {default as shuffle} from \"./shuffle\";\nexport {default as sum} from \"./sum\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks\";\nexport {default as transpose} from \"./transpose\";\nexport {default as variance} from \"./variance\";\nexport {default as zip} from \"./zip\";\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n}\n","import ascending from \"./ascending\";\nimport number from \"./number\";\nimport quantile from \"./quantile\";\n\nexport default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import ascending from \"./ascending\";\n\nexport default function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n","export default function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","import deviation from \"../deviation\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import min from \"./min\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n","import transpose from \"./transpose\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n","export function linear(t) {\n return +t;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export {default as path} from \"./path.js\";\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as voronoi} from \"./voronoi\";\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n","/**\n * @license\n * Copyright (c) 2012-2013 Chris Pettitt\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n dagre: require(\"./lib/dagre\"),\n intersect: require(\"./lib/intersect\"),\n render: require(\"./lib/render\"),\n util: require(\"./lib/util\"),\n version: require(\"./lib/version\")\n};\n","var util = require(\"./util\");\n\nmodule.exports = {\n \"default\": normal,\n \"normal\": normal,\n \"vee\": vee,\n \"undirected\": undirected\n};\n\nfunction normal(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction vee(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 L 4 5 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction undirected(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 5 L 10 5\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n","var util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar addLabel = require(\"./label/add-label\");\n\nmodule.exports = createClusters;\n\nfunction createClusters(selection, g) {\n var clusters = g.nodes().filter(function(v) { return util.isSubgraph(g, v); });\n var svgClusters = selection.selectAll(\"g.cluster\")\n .data(clusters, function(v) { return v; });\n\n svgClusters.selectAll(\"*\").remove();\n svgClusters.enter().append(\"g\")\n .attr(\"class\", \"cluster\")\n .attr(\"id\",function(v){\n var node = g.node(v);\n return node.id;\n })\n .style(\"opacity\", 0);\n \n svgClusters = selection.selectAll(\"g.cluster\");\n\n util.applyTransition(svgClusters, g)\n .style(\"opacity\", 1);\n\n svgClusters.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n d3.select(this).append(\"rect\");\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n addLabel(labelGroup, node, node.clusterLabelPos);\n });\n\n svgClusters.selectAll(\"rect\").each(function(c) {\n var node = g.node(c);\n var domCluster = d3.select(this);\n util.applyStyle(domCluster, node.style);\n });\n\n var exitSelection;\n\n if (svgClusters.exit) {\n exitSelection = svgClusters.exit();\n } else {\n exitSelection = svgClusters.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgClusters;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createEdgeLabels;\n\nfunction createEdgeLabels(selection, g) {\n var svgEdgeLabels = selection.selectAll(\"g.edgeLabel\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n svgEdgeLabels.exit().remove();\n svgEdgeLabels.enter().append(\"g\")\n .classed(\"edgeLabel\", true)\n .style(\"opacity\", 0);\n\n svgEdgeLabels = selection.selectAll(\"g.edgeLabel\");\n\n svgEdgeLabels.each(function(e) {\n var root = d3.select(this);\n root.select(\".label\").remove();\n var edge = g.edge(e);\n var label = addLabel(root, g.edge(e), 0, 0).classed(\"label\", true);\n var bbox = label.node().getBBox();\n\n if (edge.labelId) { label.attr(\"id\", edge.labelId); }\n if (!_.has(edge, \"width\")) { edge.width = bbox.width; }\n if (!_.has(edge, \"height\")) { edge.height = bbox.height; }\n });\n\n var exitSelection;\n\n if (svgEdgeLabels.exit) {\n exitSelection = svgEdgeLabels.exit();\n } else {\n exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgEdgeLabels;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar intersectNode = require(\"./intersect/intersect-node\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nmodule.exports = createEdgePaths;\n\nfunction createEdgePaths(selection, g, arrows) {\n var previousPaths = selection.selectAll(\"g.edgePath\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n var newPaths = enter(previousPaths, g);\n exit(previousPaths, g);\n\n var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n util.applyTransition(svgPaths, g)\n .style(\"opacity\", 1);\n\n // Save DOM element in the path group, and set ID and class\n svgPaths.each(function(e) {\n var domEdge = d3.select(this);\n var edge = g.edge(e);\n edge.elem = this;\n\n if (edge.id) {\n domEdge.attr(\"id\", edge.id);\n }\n\n util.applyClass(domEdge, edge[\"class\"],\n (domEdge.classed(\"update\") ? \"update \" : \"\") + \"edgePath\");\n });\n\n svgPaths.selectAll(\"path.path\")\n .each(function(e) {\n var edge = g.edge(e);\n edge.arrowheadId = _.uniqueId(\"arrowhead\");\n\n var domEdge = d3.select(this)\n .attr(\"marker-end\", function() {\n return \"url(\" + makeFragmentRef(location.href, edge.arrowheadId) + \")\";\n })\n .style(\"fill\", \"none\");\n\n util.applyTransition(domEdge, g)\n .attr(\"d\", function(e) { return calcPoints(g, e); });\n\n util.applyStyle(domEdge, edge.style);\n });\n\n svgPaths.selectAll(\"defs *\").remove();\n svgPaths.selectAll(\"defs\")\n .each(function(e) {\n var edge = g.edge(e);\n var arrowhead = arrows[edge.arrowhead];\n arrowhead(d3.select(this), edge.arrowheadId, edge, \"arrowhead\");\n });\n\n return svgPaths;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n var baseUrl = url.split(\"#\")[0];\n return baseUrl + \"#\" + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n var edge = g.edge(e);\n var tail = g.node(e.v);\n var head = g.node(e.w);\n var points = edge.points.slice(1, edge.points.length - 1);\n points.unshift(intersectNode(tail, points[0]));\n points.push(intersectNode(head, points[points.length - 1]));\n\n return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n var line = (d3.line || d3.svg.line)()\n .x(function(d) { return d.x; })\n .y(function(d) { return d.y; });\n \n (line.curve || line.interpolate)(edge.curve);\n\n return line(points);\n}\n\nfunction getCoords(elem) {\n var bbox = elem.getBBox();\n var matrix = elem.ownerSVGElement.getScreenCTM()\n .inverse()\n .multiply(elem.getScreenCTM())\n .translate(bbox.width / 2, bbox.height / 2);\n return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n var svgPathsEnter = svgPaths.enter().append(\"g\")\n .attr(\"class\", \"edgePath\")\n .style(\"opacity\", 0);\n svgPathsEnter.append(\"path\")\n .attr(\"class\", \"path\")\n .attr(\"d\", function(e) {\n var edge = g.edge(e);\n var sourceElem = g.node(e.v).elem;\n var points = _.range(edge.points.length).map(function() { return getCoords(sourceElem); });\n return createLine(edge, points);\n });\n svgPathsEnter.append(\"defs\");\n return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n var svgPathExit = svgPaths.exit();\n util.applyTransition(svgPathExit, g)\n .style(\"opacity\", 0)\n .remove();\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createNodes;\n\nfunction createNodes(selection, g, shapes) {\n var simpleNodes = g.nodes().filter(function(v) { return !util.isSubgraph(g, v); });\n var svgNodes = selection.selectAll(\"g.node\")\n .data(simpleNodes, function(v) { return v; })\n .classed(\"update\", true);\n\n svgNodes.exit().remove();\n\n svgNodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .style(\"opacity\", 0);\n\n svgNodes = selection.selectAll(\"g.node\"); \n\n svgNodes.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n util.applyClass(thisGroup, node[\"class\"],\n (thisGroup.classed(\"update\") ? \"update \" : \"\") + \"node\");\n\n thisGroup.select(\"g.label\").remove();\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n var labelDom = addLabel(labelGroup, node);\n var shape = shapes[node.shape];\n var bbox = _.pick(labelDom.node().getBBox(), \"width\", \"height\");\n\n node.elem = this;\n\n if (node.id) { thisGroup.attr(\"id\", node.id); }\n if (node.labelId) { labelGroup.attr(\"id\", node.labelId); }\n\n if (_.has(node, \"width\")) { bbox.width = node.width; }\n if (_.has(node, \"height\")) { bbox.height = node.height; }\n\n bbox.width += node.paddingLeft + node.paddingRight;\n bbox.height += node.paddingTop + node.paddingBottom;\n labelGroup.attr(\"transform\", \"translate(\" +\n ((node.paddingLeft - node.paddingRight) / 2) + \",\" +\n ((node.paddingTop - node.paddingBottom) / 2) + \")\");\n\n var root = d3.select(this);\n root.select(\".label-container\").remove();\n var shapeSvg = shape(root, bbox, node).classed(\"label-container\", true);\n util.applyStyle(shapeSvg, node.style);\n\n var shapeBBox = shapeSvg.node().getBBox();\n node.width = shapeBBox.width;\n node.height = shapeBBox.height;\n });\n\n var exitSelection;\n\n if (svgNodes.exit) {\n exitSelection = svgNodes.exit();\n } else {\n exitSelection = svgNodes.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgNodes;\n}\n","// Stub to get D3 either via NPM or from the global object\nvar d3;\n\nif (!d3) {\n if (typeof require === \"function\") {\n try {\n d3 = require(\"d3\");\n }\n catch (e) {\n // continue regardless of error\n }\n }\n}\n\nif (!d3) {\n d3 = window.d3;\n}\n\nmodule.exports = d3;\n","/* global window */\n\nvar dagre;\n\nif (typeof require === \"function\") {\n try {\n dagre = require(\"dagre\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!dagre) {\n dagre = window.dagre;\n}\n\nmodule.exports = dagre;\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","module.exports = {\n node: require(\"./intersect-node\"),\n circle: require(\"./intersect-circle\"),\n ellipse: require(\"./intersect-ellipse\"),\n polygon: require(\"./intersect-polygon\"),\n rect: require(\"./intersect-rect\")\n};\n","var intersectEllipse = require(\"./intersect-ellipse\");\n\nmodule.exports = intersectCircle;\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n","module.exports = intersectEllipse;\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\n","module.exports = intersectLine;\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\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\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n","module.exports = intersectNode;\n\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nvar intersectLine = require(\"./intersect-line\");\n\nmodule.exports = intersectPolygon;\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\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 polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.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(node, point,\n {x: left + p1.x, y: top + p1.y}, {x: left + p2.x, y: top + p2.y});\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","module.exports = intersectRect;\n\nfunction intersectRect(node, point) {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n\n return {x: x + sx, y: y + sy};\n}\n","var util = require(\"../util\");\n\nmodule.exports = addHtmlLabel;\n\nfunction addHtmlLabel(root, node) {\n var fo = root\n .append(\"foreignObject\")\n .attr(\"width\", \"100000\");\n\n var div = fo\n .append(\"xhtml:div\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n\n var label = node.label;\n switch(typeof label) {\n case \"function\":\n div.insert(label);\n break;\n case \"object\":\n // Currently we assume this is a DOM object.\n div.insert(function() { return label; });\n break;\n default: div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n // Fix for firefox\n div.style(\"white-space\", \"nowrap\");\n\n var client = div.node().getBoundingClientRect();\n fo\n .attr(\"width\", client.width)\n .attr(\"height\", client.height); \n\n return fo;\n}\n","var addTextLabel = require(\"./add-text-label\");\nvar addHtmlLabel = require(\"./add-html-label\");\nvar addSVGLabel = require(\"./add-svg-label\");\n\nmodule.exports = addLabel;\n\nfunction addLabel(root, node, location) {\n var label = node.label;\n var labelSvg = root.append(\"g\");\n\n // Allow the label to be a string, a function that returns a DOM element, or\n // a DOM element itself.\n if (node.labelType === \"svg\") {\n addSVGLabel(labelSvg, node);\n } else if (typeof label !== \"string\" || node.labelType === \"html\") {\n addHtmlLabel(labelSvg, node);\n } else {\n addTextLabel(labelSvg, node);\n }\n\n var labelBBox = labelSvg.node().getBBox();\n var y;\n switch(location) {\n case \"top\":\n y = (-node.height / 2);\n break;\n case \"bottom\":\n y = (node.height / 2) - labelBBox.height;\n break;\n default:\n y = (-labelBBox.height / 2);\n }\n labelSvg.attr(\n \"transform\",\n \"translate(\" + (-labelBBox.width / 2) + \",\" + y + \")\");\n\n return labelSvg;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addSVGLabel;\n\nfunction addSVGLabel(root, node) {\n var domNode = root;\n\n domNode.node().appendChild(node.label);\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addTextLabel;\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n var domNode = root.append(\"text\");\n\n var lines = processEscapeSequences(node.label).split(\"\\n\");\n for (var i = 0; i < lines.length; i++) {\n domNode.append(\"tspan\")\n .attr(\"xml:space\", \"preserve\")\n .attr(\"dy\", \"1em\")\n .attr(\"x\", \"1\")\n .text(lines[i]);\n }\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n\nfunction processEscapeSequences(text) {\n var newText = \"\";\n var escaped = false;\n var ch;\n for (var i = 0; i < text.length; ++i) {\n ch = text[i];\n if (escaped) {\n switch(ch) {\n case \"n\": newText += \"\\n\"; break;\n default: newText += ch;\n }\n escaped = false;\n } else if (ch === \"\\\\\") {\n escaped = true;\n } else {\n newText += ch;\n }\n }\n return newText;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n isFunction: require(\"lodash/isFunction\"),\n isPlainObject: require(\"lodash/isPlainObject\"),\n pick: require(\"lodash/pick\"),\n has: require(\"lodash/has\"),\n range: require(\"lodash/range\"),\n uniqueId: require(\"lodash/uniqueId\")\n };\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionClusters;\n\nfunction positionClusters(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n\n util.applyTransition(created.selectAll(\"rect\"), g)\n .attr(\"width\", function(v) { return g.node(v).width; })\n .attr(\"height\", function(v) { return g.node(v).height; })\n .attr(\"x\", function(v) {\n var node = g.node(v);\n return -node.width / 2;\n })\n .attr(\"y\", function(v) {\n var node = g.node(v);\n return -node.height / 2;\n });\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar _ = require(\"./lodash\");\n\nmodule.exports = positionEdgeLabels;\n\nfunction positionEdgeLabels(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(e) {\n var edge = g.edge(e);\n return _.has(edge, \"x\") ? \"translate(\" + edge.x + \",\" + edge.y + \")\" : \"\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionNodes;\n\nfunction positionNodes(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","var _ = require(\"./lodash\");\nvar d3 = require(\"./d3\");\nvar layout = require(\"./dagre\").layout;\n\nmodule.exports = render;\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n var createNodes = require(\"./create-nodes\");\n var createClusters = require(\"./create-clusters\");\n var createEdgeLabels = require(\"./create-edge-labels\");\n var createEdgePaths = require(\"./create-edge-paths\");\n var positionNodes = require(\"./position-nodes\");\n var positionEdgeLabels = require(\"./position-edge-labels\");\n var positionClusters = require(\"./position-clusters\");\n var shapes = require(\"./shapes\");\n var arrows = require(\"./arrows\");\n\n var fn = function(svg, g) {\n preProcessGraph(g);\n\n var outputGroup = createOrSelectGroup(svg, \"output\");\n var clustersGroup = createOrSelectGroup(outputGroup, \"clusters\");\n var edgePathsGroup = createOrSelectGroup(outputGroup, \"edgePaths\");\n var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, \"edgeLabels\"), g);\n var nodes = createNodes(createOrSelectGroup(outputGroup, \"nodes\"), g, shapes);\n\n layout(g);\n\n positionNodes(nodes, g);\n positionEdgeLabels(edgeLabels, g);\n createEdgePaths(edgePathsGroup, g, arrows);\n\n var clusters = createClusters(clustersGroup, g);\n positionClusters(clusters, g);\n\n postProcessGraph(g);\n };\n\n fn.createNodes = function(value) {\n if (!arguments.length) return createNodes;\n createNodes = value;\n return fn;\n };\n\n fn.createClusters = function(value) {\n if (!arguments.length) return createClusters;\n createClusters = value;\n return fn;\n };\n\n fn.createEdgeLabels = function(value) {\n if (!arguments.length) return createEdgeLabels;\n createEdgeLabels = value;\n return fn;\n };\n\n fn.createEdgePaths = function(value) {\n if (!arguments.length) return createEdgePaths;\n createEdgePaths = value;\n return fn;\n };\n\n fn.shapes = function(value) {\n if (!arguments.length) return shapes;\n shapes = value;\n return fn;\n };\n\n fn.arrows = function(value) {\n if (!arguments.length) return arrows;\n arrows = value;\n return fn;\n };\n\n return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n rx: 0,\n ry: 0,\n shape: \"rect\"\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n arrowhead: \"normal\",\n curve: d3.curveLinear\n};\n\nfunction preProcessGraph(g) {\n g.nodes().forEach(function(v) {\n var node = g.node(v);\n if (!_.has(node, \"label\") && !g.children(v).length) { node.label = v; }\n\n if (_.has(node, \"paddingX\")) {\n _.defaults(node, {\n paddingLeft: node.paddingX,\n paddingRight: node.paddingX\n });\n }\n\n if (_.has(node, \"paddingY\")) {\n _.defaults(node, {\n paddingTop: node.paddingY,\n paddingBottom: node.paddingY\n });\n }\n\n if (_.has(node, \"padding\")) {\n _.defaults(node, {\n paddingLeft: node.padding,\n paddingRight: node.padding,\n paddingTop: node.padding,\n paddingBottom: node.padding\n });\n }\n\n _.defaults(node, NODE_DEFAULT_ATTRS);\n\n _.each([\"paddingLeft\", \"paddingRight\", \"paddingTop\", \"paddingBottom\"], function(k) {\n node[k] = Number(node[k]);\n });\n\n // Save dimensions for restore during post-processing\n if (_.has(node, \"width\")) { node._prevWidth = node.width; }\n if (_.has(node, \"height\")) { node._prevHeight = node.height; }\n });\n\n g.edges().forEach(function(e) {\n var edge = g.edge(e);\n if (!_.has(edge, \"label\")) { edge.label = \"\"; }\n _.defaults(edge, EDGE_DEFAULT_ATTRS);\n });\n}\n\nfunction postProcessGraph(g) {\n _.each(g.nodes(), function(v) {\n var node = g.node(v);\n\n // Restore original dimensions\n if (_.has(node, \"_prevWidth\")) {\n node.width = node._prevWidth;\n } else {\n delete node.width;\n }\n\n if (_.has(node, \"_prevHeight\")) {\n node.height = node._prevHeight;\n } else {\n delete node.height;\n }\n\n delete node._prevWidth;\n delete node._prevHeight;\n });\n}\n\nfunction createOrSelectGroup(root, name) {\n var selection = root.select(\"g.\" + name);\n if (selection.empty()) {\n selection = root.append(\"g\").attr(\"class\", name);\n }\n return selection;\n}\n","\"use strict\";\n\nvar intersectRect = require(\"./intersect/intersect-rect\");\nvar intersectEllipse = require(\"./intersect/intersect-ellipse\");\nvar intersectCircle = require(\"./intersect/intersect-circle\");\nvar intersectPolygon = require(\"./intersect/intersect-polygon\");\n\nmodule.exports = {\n rect: rect,\n ellipse: ellipse,\n circle: circle,\n diamond: diamond\n};\n\nfunction rect(parent, bbox, node) {\n var shapeSvg = parent.insert(\"rect\", \":first-child\")\n .attr(\"rx\", node.rx)\n .attr(\"ry\", node.ry)\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"width\", bbox.width)\n .attr(\"height\", bbox.height);\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n var rx = bbox.width / 2;\n var ry = bbox.height / 2;\n var shapeSvg = parent.insert(\"ellipse\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"rx\", rx)\n .attr(\"ry\", ry);\n\n node.intersect = function(point) {\n return intersectEllipse(node, rx, ry, point);\n };\n\n return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n var r = Math.max(bbox.width, bbox.height) / 2;\n var shapeSvg = parent.insert(\"circle\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"r\", r);\n\n node.intersect = function(point) {\n return intersectCircle(node, r, point);\n };\n\n return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n var w = (bbox.width * Math.SQRT2) / 2;\n var h = (bbox.height * Math.SQRT2) / 2;\n var points = [\n { x: 0, y: -h },\n { x: -w, y: 0 },\n { x: 0, y: h },\n { x: w, y: 0 }\n ];\n var shapeSvg = parent.insert(\"polygon\", \":first-child\")\n .attr(\"points\", points.map(function(p) { return p.x + \",\" + p.y; }).join(\" \"));\n\n node.intersect = function(p) {\n return intersectPolygon(node, points, p);\n };\n\n return shapeSvg;\n}\n","var _ = require(\"./lodash\");\n\n// Public utility functions\nmodule.exports = {\n isSubgraph: isSubgraph,\n edgeToId: edgeToId,\n applyStyle: applyStyle,\n applyClass: applyClass,\n applyTransition: applyTransition\n};\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + \":\" + escapeId(e.w) + \":\" + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, \"\\\\:\") : \"\";\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom\n .attr(\"class\", classFn)\n .attr(\"class\", otherClasses + \" \" + dom.attr(\"class\"));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","module.exports = \"0.6.4\";\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(x) {\n return x;\n}\n","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis\";\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export var slice = Array.prototype.slice;\n","import {range} from \"d3-array\";\nimport {max, tau} from \"./math\";\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as chord} from \"./chord\";\nexport {default as ribbon} from \"./ribbon\";\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport {cos, halfPi, sin} from \"./math\";\nimport {path} from \"d3-path\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nexport default function() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","import {extent, thresholdSturges, tickStep, range} from \"d3-array\";\nimport {slice} from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function(value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","import {max, range, tickStep} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {blurX, blurY} from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}\n","export {default as contours} from \"./contours\";\nexport {default as contourDensity} from \"./density\";\n","export default function() {}\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text.js\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","export {default as blob} from \"./blob.js\";\nexport {default as buffer} from \"./buffer.js\";\nexport {default as dsv, csv, tsv} from \"./dsv.js\";\nexport {default as image} from \"./image.js\";\nexport {default as json} from \"./json.js\";\nexport {default as text} from \"./text.js\";\nexport {default as xml, html, svg} from \"./xml.js\";\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as forceCenter} from \"./center\";\nexport {default as forceCollide} from \"./collide\";\nexport {default as forceLink} from \"./link\";\nexport {default as forceManyBody} from \"./manyBody\";\nexport {default as forceRadial} from \"./radial\";\nexport {default as forceSimulation} from \"./simulation\";\nexport {default as forceX} from \"./x\";\nexport {default as forceY} from \"./y\";\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n","import adder from \"./adder.js\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}\n","import adder from \"./adder.js\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum = adder(),\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {asin, atan2, cos, degrees, epsilon, epsilon2, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt(cx * cx + cy * cy + cz * cz),\n w = asin(m), // line weight = angle\n v = m && -w / m; // area weight multiplier\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n stream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\n }\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","export default function(x) {\n return x;\n}\n","export {default as geoArea} from \"./area.js\";\nexport {default as geoBounds} from \"./bounds.js\";\nexport {default as geoCentroid} from \"./centroid.js\";\nexport {default as geoCircle} from \"./circle.js\";\nexport {default as geoClipAntimeridian} from \"./clip/antimeridian.js\";\nexport {default as geoClipCircle} from \"./clip/circle.js\";\nexport {default as geoClipExtent} from \"./clip/extent.js\"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\nexport {default as geoClipRectangle} from \"./clip/rectangle.js\";\nexport {default as geoContains} from \"./contains.js\";\nexport {default as geoDistance} from \"./distance.js\";\nexport {default as geoGraticule, graticule10 as geoGraticule10} from \"./graticule.js\";\nexport {default as geoInterpolate} from \"./interpolate.js\";\nexport {default as geoLength} from \"./length.js\";\nexport {default as geoPath} from \"./path/index.js\";\nexport {default as geoAlbers} from \"./projection/albers.js\";\nexport {default as geoAlbersUsa} from \"./projection/albersUsa.js\";\nexport {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from \"./projection/azimuthalEqualArea.js\";\nexport {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from \"./projection/azimuthalEquidistant.js\";\nexport {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from \"./projection/conicConformal.js\";\nexport {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from \"./projection/conicEqualArea.js\";\nexport {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from \"./projection/conicEquidistant.js\";\nexport {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from \"./projection/equalEarth.js\";\nexport {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from \"./projection/equirectangular.js\";\nexport {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from \"./projection/gnomonic.js\";\nexport {default as geoIdentity} from \"./projection/identity.js\";\nexport {default as geoProjection, projectionMutator as geoProjectionMutator} from \"./projection/index.js\";\nexport {default as geoMercator, mercatorRaw as geoMercatorRaw} from \"./projection/mercator.js\";\nexport {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from \"./projection/naturalEarth1.js\";\nexport {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from \"./projection/orthographic.js\";\nexport {default as geoStereographic, stereographicRaw as geoStereographicRaw} from \"./projection/stereographic.js\";\nexport {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from \"./projection/transverseMercator.js\";\nexport {default as geoRotation} from \"./rotation.js\";\nexport {default as geoStream} from \"./stream.js\";\nexport {default as geoTransform} from \"./transform.js\";\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\nexport default function(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n\n var interpolate = d ? function(t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n","import adder from \"./adder.js\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","import adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import adder from \"./adder.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum.reset();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport {cos, degrees, radians, sin} from \"../math.js\";\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect\n alpha = 0, ca, sa, // angle\n x0 = null, y0, x1, y1, // clip extent\n kx = 1, ky = 1,\n transform = transformer({\n point: function(x, y) {\n var p = projection([x, y])\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection (p) {\n var x = p[0] * kx, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n } \n return [x + tx, y + ty];\n }\n projection.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n projection.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n }\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","export {default as randomUniform} from \"./uniform\";\nexport {default as randomNormal} from \"./normal\";\nexport {default as randomLogNormal} from \"./logNormal\";\nexport {default as randomBates} from \"./bates\";\nexport {default as randomIrwinHall} from \"./irwinHall\";\nexport {default as randomExponential} from \"./exponential\";\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","export {default as schemeCategory10} from \"./categorical/category10.js\";\nexport {default as schemeAccent} from \"./categorical/Accent.js\";\nexport {default as schemeDark2} from \"./categorical/Dark2.js\";\nexport {default as schemePaired} from \"./categorical/Paired.js\";\nexport {default as schemePastel1} from \"./categorical/Pastel1.js\";\nexport {default as schemePastel2} from \"./categorical/Pastel2.js\";\nexport {default as schemeSet1} from \"./categorical/Set1.js\";\nexport {default as schemeSet2} from \"./categorical/Set2.js\";\nexport {default as schemeSet3} from \"./categorical/Set3.js\";\nexport {default as schemeTableau10} from \"./categorical/Tableau10.js\";\nexport {default as interpolateBrBG, scheme as schemeBrBG} from \"./diverging/BrBG.js\";\nexport {default as interpolatePRGn, scheme as schemePRGn} from \"./diverging/PRGn.js\";\nexport {default as interpolatePiYG, scheme as schemePiYG} from \"./diverging/PiYG.js\";\nexport {default as interpolatePuOr, scheme as schemePuOr} from \"./diverging/PuOr.js\";\nexport {default as interpolateRdBu, scheme as schemeRdBu} from \"./diverging/RdBu.js\";\nexport {default as interpolateRdGy, scheme as schemeRdGy} from \"./diverging/RdGy.js\";\nexport {default as interpolateRdYlBu, scheme as schemeRdYlBu} from \"./diverging/RdYlBu.js\";\nexport {default as interpolateRdYlGn, scheme as schemeRdYlGn} from \"./diverging/RdYlGn.js\";\nexport {default as interpolateSpectral, scheme as schemeSpectral} from \"./diverging/Spectral.js\";\nexport {default as interpolateBuGn, scheme as schemeBuGn} from \"./sequential-multi/BuGn.js\";\nexport {default as interpolateBuPu, scheme as schemeBuPu} from \"./sequential-multi/BuPu.js\";\nexport {default as interpolateGnBu, scheme as schemeGnBu} from \"./sequential-multi/GnBu.js\";\nexport {default as interpolateOrRd, scheme as schemeOrRd} from \"./sequential-multi/OrRd.js\";\nexport {default as interpolatePuBuGn, scheme as schemePuBuGn} from \"./sequential-multi/PuBuGn.js\";\nexport {default as interpolatePuBu, scheme as schemePuBu} from \"./sequential-multi/PuBu.js\";\nexport {default as interpolatePuRd, scheme as schemePuRd} from \"./sequential-multi/PuRd.js\";\nexport {default as interpolateRdPu, scheme as schemeRdPu} from \"./sequential-multi/RdPu.js\";\nexport {default as interpolateYlGnBu, scheme as schemeYlGnBu} from \"./sequential-multi/YlGnBu.js\";\nexport {default as interpolateYlGn, scheme as schemeYlGn} from \"./sequential-multi/YlGn.js\";\nexport {default as interpolateYlOrBr, scheme as schemeYlOrBr} from \"./sequential-multi/YlOrBr.js\";\nexport {default as interpolateYlOrRd, scheme as schemeYlOrRd} from \"./sequential-multi/YlOrRd.js\";\nexport {default as interpolateBlues, scheme as schemeBlues} from \"./sequential-single/Blues.js\";\nexport {default as interpolateGreens, scheme as schemeGreens} from \"./sequential-single/Greens.js\";\nexport {default as interpolateGreys, scheme as schemeGreys} from \"./sequential-single/Greys.js\";\nexport {default as interpolatePurples, scheme as schemePurples} from \"./sequential-single/Purples.js\";\nexport {default as interpolateReds, scheme as schemeReds} from \"./sequential-single/Reds.js\";\nexport {default as interpolateOranges, scheme as schemeOranges} from \"./sequential-single/Oranges.js\";\nexport {default as interpolateCividis} from \"./sequential-multi/cividis.js\";\nexport {default as interpolateCubehelixDefault} from \"./sequential-multi/cubehelix.js\";\nexport {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from \"./sequential-multi/rainbow.js\";\nexport {default as interpolateSinebow} from \"./sequential-multi/sinebow.js\";\nexport {default as interpolateTurbo} from \"./sequential-multi/turbo.js\";\nexport {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from \"./sequential-multi/viridis.js\";\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band\";\n\nexport {\n default as scaleIdentity\n} from \"./identity\";\n\nexport {\n default as scaleLinear\n} from \"./linear\";\n\nexport {\n default as scaleLog\n} from \"./log\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold\";\n\nexport {\n default as scaleTime\n} from \"./time\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function(x) {\n return +x;\n}\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n","export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity} from \"./transform.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function(selection, k, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function(selection, x, y, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started, i, t, p;\n\n nopropagation();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}\n","export var name = \"d3\";\nexport var version = \"5.16.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\",\"visualization\",\"svg\",\"animation\",\"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"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\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"2\",\"rollup\":\"1\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"3\",\"rollup-plugin-terser\":\"5\",\"tape\":\"4\"};\nexport var dependencies = {\"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\"};\n","export {version} from \"./dist/package.js\";\nexport * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-collection\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-voronoi\";\nexport * from \"d3-zoom\";\n","/*\nCopyright (c) 2012-2014 Chris Pettitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n\n layout: require(\"./lib/layout\"),\n debug: require(\"./lib/debug\"),\n util: {\n time: require(\"./lib/util\").time,\n notime: require(\"./lib/util\").notime\n },\n version: require(\"./lib/version\")\n};\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar greedyFAS = require(\"./greedy-fas\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\nfunction run(g) {\n var fas = (g.graph().acyclicer === \"greedy\"\n ? greedyFAS(g, weightFn(g))\n : dfsFAS(g));\n _.forEach(fas, function(e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId(\"rev\"));\n });\n\n function weightFn(g) {\n return function(e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (_.has(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function(e) {\n if (_.has(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function(e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = addBorderSegments;\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (_.has(node, \"minRank\")) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1;\n rank < maxRank;\n ++rank) {\n addBorderNode(g, \"borderLeft\", \"_bl\", v, node, rank);\n addBorderNode(g, \"borderRight\", \"_br\", v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, \"border\", label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\n\nmodule.exports = {\n adjust: adjust,\n undo: undo\n};\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"bt\" || rankDir === \"rl\") {\n reverseY(g);\n }\n\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function(v) { swapWidthHeightOne(g.node(v)); });\n _.forEach(g.edges(), function(e) { swapWidthHeightOne(g.edge(e)); });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function(v) { reverseYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (_.has(edge, \"y\")) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function(v) { swapXYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (_.has(edge, \"x\")) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nmodule.exports = List;\n\nfunction List() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n}\n\nList.prototype.dequeue = function() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n};\n\nList.prototype.enqueue = function(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n};\n\nList.prototype.toString = function() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return \"[\" + strs.join(\", \") + \"]\";\n};\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== \"_next\" && k !== \"_prev\") {\n return v;\n }\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n debugOrdering: debugOrdering\n};\n\n/* istanbul ignore next */\nfunction debugOrdering(g) {\n var layerMatrix = util.buildLayerMatrix(g);\n\n var h = new Graph({ compound: true, multigraph: true }).setGraph({});\n\n _.forEach(g.nodes(), function(v) {\n h.setNode(v, { label: v });\n h.setParent(v, \"layer\" + g.node(v).rank);\n });\n\n _.forEach(g.edges(), function(e) {\n h.setEdge(e.v, e.w, {}, e.name);\n });\n\n _.forEach(layerMatrix, function(layer, i) {\n var layerV = \"layer\" + i;\n h.setNode(layerV, { rank: \"same\" });\n _.reduce(layer, function(u, v) {\n h.setEdge(u, v, { style: \"invis\" });\n return v;\n });\n });\n\n return h;\n}\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","var _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\nvar List = require(\"./data/list\");\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nmodule.exports = greedyFAS;\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(_.map(results, function(e) {\n return g.outEdges(e.v, e.w);\n }), true);\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry[\"in\"] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function(v) {\n fasGraph.setNode(v, { v: v, \"in\": 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function(e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);\n maxIn = Math.max(maxIn, fasGraph.node(e.w)[\"in\"] += weight);\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function() { return new List(); });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function(v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry[\"in\"]) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry[\"in\"] + zeroIdx].enqueue(entry);\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar acyclic = require(\"./acyclic\");\nvar normalize = require(\"./normalize\");\nvar rank = require(\"./rank\");\nvar normalizeRanks = require(\"./util\").normalizeRanks;\nvar parentDummyChains = require(\"./parent-dummy-chains\");\nvar removeEmptyRanks = require(\"./util\").removeEmptyRanks;\nvar nestingGraph = require(\"./nesting-graph\");\nvar addBorderSegments = require(\"./add-border-segments\");\nvar coordinateSystem = require(\"./coordinate-system\");\nvar order = require(\"./order\");\nvar position = require(\"./position\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = layout;\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time(\"layout\", function() {\n var layoutGraph = \n time(\" buildLayoutGraph\", function() { return buildLayoutGraph(g); });\n time(\" runLayout\", function() { runLayout(layoutGraph, time); });\n time(\" updateInputGraph\", function() { updateInputGraph(g, layoutGraph); });\n });\n}\n\nfunction runLayout(g, time) {\n time(\" makeSpaceForEdgeLabels\", function() { makeSpaceForEdgeLabels(g); });\n time(\" removeSelfEdges\", function() { removeSelfEdges(g); });\n time(\" acyclic\", function() { acyclic.run(g); });\n time(\" nestingGraph.run\", function() { nestingGraph.run(g); });\n time(\" rank\", function() { rank(util.asNonCompoundGraph(g)); });\n time(\" injectEdgeLabelProxies\", function() { injectEdgeLabelProxies(g); });\n time(\" removeEmptyRanks\", function() { removeEmptyRanks(g); });\n time(\" nestingGraph.cleanup\", function() { nestingGraph.cleanup(g); });\n time(\" normalizeRanks\", function() { normalizeRanks(g); });\n time(\" assignRankMinMax\", function() { assignRankMinMax(g); });\n time(\" removeEdgeLabelProxies\", function() { removeEdgeLabelProxies(g); });\n time(\" normalize.run\", function() { normalize.run(g); });\n time(\" parentDummyChains\", function() { parentDummyChains(g); });\n time(\" addBorderSegments\", function() { addBorderSegments(g); });\n time(\" order\", function() { order(g); });\n time(\" insertSelfEdges\", function() { insertSelfEdges(g); });\n time(\" adjustCoordinateSystem\", function() { coordinateSystem.adjust(g); });\n time(\" position\", function() { position(g); });\n time(\" positionSelfEdges\", function() { positionSelfEdges(g); });\n time(\" removeBorderNodes\", function() { removeBorderNodes(g); });\n time(\" normalize.undo\", function() { normalize.undo(g); });\n time(\" fixupEdgeLabelCoords\", function() { fixupEdgeLabelCoords(g); });\n time(\" undoCoordinateSystem\", function() { coordinateSystem.undo(g); });\n time(\" translateGraph\", function() { translateGraph(g); });\n time(\" assignNodeIntersects\", function() { assignNodeIntersects(g); });\n time(\" reversePoints\", function() { reversePointsForReversedEdges(g); });\n time(\" acyclic.undo\", function() { acyclic.undo(g); });\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function(v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (_.has(layoutLabel, \"x\")) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = [\"nodesep\", \"edgesep\", \"ranksep\", \"marginx\", \"marginy\"];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: \"tb\" };\nvar graphAttrs = [\"acyclicer\", \"ranker\", \"rankdir\", \"align\"];\nvar nodeNumAttrs = [\"width\", \"height\"];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = [\"minlen\", \"weight\", \"width\", \"height\", \"labeloffset\"];\nvar edgeDefaults = {\n minlen: 1, weight: 1, width: 0, height: 0,\n labeloffset: 10, labelpos: \"r\"\n};\nvar edgeAttrs = [\"labelpos\"];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(_.merge({},\n graphDefaults,\n selectNumberAttrs(graph, graphNumAttrs),\n _.pick(graph, graphAttrs)));\n\n _.forEach(inputGraph.nodes(), function(v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(e, _.merge({},\n edgeDefaults,\n selectNumberAttrs(edge, edgeNumAttrs),\n _.pick(edge, edgeAttrs)));\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== \"c\") {\n if (graph.rankdir === \"TB\" || graph.rankdir === \"BT\") {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, \"edge-proxy\", label, \"_ep\");\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"edge-proxy\") {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function(v) { getExtremes(g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function(p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (_.has(edge, \"x\")) { edge.x -= minX; }\n if (_.has(edge, \"y\")) { edge.y -= minY; }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n if (edge.labelpos === \"l\" || edge.labelpos === \"r\") {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case \"l\": edge.x -= edge.width / 2 + edge.labeloffset; break;\n case \"r\": edge.x += edge.width / 2 + edge.labeloffset; break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function(v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function(v) {\n if (g.node(v).dummy === \"border\") {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function(e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function(layer) {\n var orderShift = 0;\n _.forEach(layer, function(v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function(selfEdge) {\n util.addDummyNode(g, \"selfedge\", {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + (++orderShift),\n e: selfEdge.e,\n label: selfEdge.label\n }, \"_se\");\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"selfedge\") {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + 2 * dx / 3, y: y - dy },\n { x: x + 5 * dx / 6, y: y - dy },\n { x: x + dx , y: y },\n { x: x + 5 * dx / 6, y: y + dy },\n { x: x + 2 * dx / 3, y: y + dy }\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function(v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n cloneDeep: require(\"lodash/cloneDeep\"),\n constant: require(\"lodash/constant\"),\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n filter: require(\"lodash/filter\"),\n find: require(\"lodash/find\"),\n flatten: require(\"lodash/flatten\"),\n forEach: require(\"lodash/forEach\"),\n forIn: require(\"lodash/forIn\"),\n has: require(\"lodash/has\"),\n isUndefined: require(\"lodash/isUndefined\"),\n last: require(\"lodash/last\"),\n map: require(\"lodash/map\"),\n mapValues: require(\"lodash/mapValues\"),\n max: require(\"lodash/max\"),\n merge: require(\"lodash/merge\"),\n min: require(\"lodash/min\"),\n minBy: require(\"lodash/minBy\"),\n now: require(\"lodash/now\"),\n pick: require(\"lodash/pick\"),\n range: require(\"lodash/range\"),\n reduce: require(\"lodash/reduce\"),\n sortBy: require(\"lodash/sortBy\"),\n uniqueId: require(\"lodash/uniqueId\"),\n values: require(\"lodash/values\"),\n zipObject: require(\"lodash/zipObject\"),\n };\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n cleanup: cleanup\n};\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, \"root\", {}, \"_root\");\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function(e) { g.edge(e).minlen *= nodeSep; });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, \"_bt\");\n var bottom = util.addBorderNode(g, \"_bb\");\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function(child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function(v) { dfs(v, 1); });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(g.edges(), function(acc, e) {\n return acc + g.edge(e).weight;\n }, 0);\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function(edge) { normalizeEdge(g, edge); });\n}\n\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n var dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0, height: 0,\n edgeLabel: edgeLabel, edgeObj: e,\n rank: vRank\n };\n dummy = util.addDummyNode(g, \"edge\", attrs, \"_d\");\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = \"edge-label\";\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === \"edge-label\") {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = addSubgraphConstraints;\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function(v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = barycenter;\n\nfunction barycenter(g, movable) {\n return _.map(movable, function(v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(inV, function(acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + (edge.weight * nodeU.order),\n weight: acc.weight + edge.weight\n };\n }, { sum: 0, weight: 0 });\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight\n };\n }\n });\n}\n\n","var _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\n\nmodule.exports = buildLayerGraph;\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true }).setGraph({ root: root })\n .setDefaultNodeLabel(function(v) { return g.node(v); });\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function(e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (_.has(node, \"minRank\")) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank]\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId(\"_root\"))));\n return v;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = crossCount;\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i-1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(southLayer,\n _.map(southLayer, function (v, i) { return i; }));\n var southEntries = _.flatten(_.map(northLayer, function(v) {\n return _.sortBy(_.map(g.outEdges(v), function(e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }), \"pos\");\n }), true);\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function() { return 0; });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(southEntries.forEach(function(entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n while (index > 0) {\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n }));\n\n return cc;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar initOrder = require(\"./init-order\");\nvar crossCount = require(\"./cross-count\");\nvar sortSubgraph = require(\"./sort-subgraph\");\nvar buildLayerGraph = require(\"./build-layer-graph\");\nvar addSubgraphConstraints = require(\"./add-subgraph-constraints\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\nmodule.exports = order;\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), \"inEdges\"),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), \"outEdges\");\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function(rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function(lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function(v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, i) {\n g.node(v).order = i;\n });\n });\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = initOrder;\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function(v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(_.map(simpleNodes, function(v) { return g.node(v).rank; }));\n var layers = _.map(_.range(maxRank + 1), function() { return []; });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v).rank; });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = resolveConflicts;\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function(entry, i) {\n var tmp = mappedEntries[entry.v] = {\n indegree: 0,\n \"in\": [],\n out: [],\n vs: [entry.v],\n i: i\n };\n if (!_.isUndefined(entry.barycenter)) {\n tmp.barycenter = entry.barycenter;\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function(e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function(entry) {\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function(uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (_.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function(wEntry) {\n wEntry[\"in\"].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry[\"in\"].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(_.filter(entries, function(entry) { return !entry.merged; }),\n function(entry) {\n return _.pick(entry, [\"vs\", \"i\", \"barycenter\", \"weight\"]);\n });\n\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","var _ = require(\"../lodash\");\nvar barycenter = require(\"./barycenter\");\nvar resolveConflicts = require(\"./resolve-conflicts\");\nvar sort = require(\"./sort\");\n\nmodule.exports = sortSubgraph;\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight: undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function(w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function(entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (_.has(subgraphResult, \"barycenter\")) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br], true);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!_.has(result, \"barycenter\")) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter = (result.barycenter * result.weight +\n blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function(entry) {\n entry.vs = _.flatten(entry.vs.map(function(v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n }), true);\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter = (target.barycenter * target.weight +\n other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","var _ = require(\"../lodash\");\nvar util = require(\"../util\");\n\nmodule.exports = sort;\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function(entry) {\n return _.has(entry, \"barycenter\");\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function(entry) { return -entry.i; }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs, true) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function(entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","var _ = require(\"./lodash\");\n\nmodule.exports = parentDummyChains;\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca &&\n g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (pathIdx < path.length - 1 &&\n g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent &&\n (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nmodule.exports = {\n positionX: positionX,\n findType1Conflicts: findType1Conflicts,\n findType2Conflicts: findType2Conflicts,\n addConflict: addConflict,\n hasConflict: hasConflict,\n verticalAlignment: verticalAlignment,\n horizontalCompaction: horizontalCompaction,\n alignCoordinates: alignCoordinates,\n findSmallestWidthAlignment: findSmallestWidthAlignment,\n balance: balance\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var\n // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function(v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i +1), function(scanNode) {\n _.forEach(g.predecessors(scanNode), function(u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) &&\n !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function(i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function(u) {\n var uNode = g.node(u);\n if (uNode.dummy &&\n (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function(v, southLookahead) {\n if (g.node(v).dummy === \"border\") {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function(u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return _.has(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function(layer) {\n var prevIdx = -1;\n _.forEach(layer, function(v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function(w) { return pos[w]; });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v &&\n prevIdx < pos[w] &&\n !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? \"borderLeft\" : \"borderRight\";\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function(acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function(v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function(layer) {\n var u;\n _.forEach(layer, function(v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach([\"u\", \"d\"], function(vert) {\n _.forEach([\"l\", \"r\"], function(horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === \"l\" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function(x) { return x + delta; });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function(ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(\n findType1Conflicts(g, layering),\n findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach([\"u\", \"d\"], function(vert) {\n adjustedLayering = vert === \"u\" ? layering : _.values(layering).reverse();\n _.forEach([\"l\", \"r\"], function(horiz) {\n if (horiz === \"r\") {\n adjustedLayering = _.map(adjustedLayering, function(inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === \"u\" ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering,\n align.root, align.align, horiz === \"r\");\n if (horiz === \"r\") {\n xs = _.mapValues(xs, function(x) { return -x; });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function(g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (_.has(vLabel, \"labelpos\")) {\n switch (vLabel.labelpos.toLowerCase()) {\n case \"l\": delta = -vLabel.width / 2; break;\n case \"r\": delta = vLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (_.has(wLabel, \"labelpos\")) {\n switch (wLabel.labelpos.toLowerCase()) {\n case \"l\": delta = wLabel.width / 2; break;\n case \"r\": delta = -wLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar util = require(\"../util\");\nvar positionX = require(\"./bk\").positionX;\n\nmodule.exports = position;\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forEach(positionX(g), function(x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function(layer) {\n var maxHeight = _.max(_.map(layer, function(v) { return g.node(v).height; }));\n _.forEach(layer, function(v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar slack = require(\"./util\").slack;\n\nmodule.exports = feasibleTree;\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function(e) {\n var edgeV = e.v,\n w = (v === edgeV) ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function(e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function(v) {\n g.node(v).rank += delta;\n });\n}\n","\"use strict\";\n\nvar rankUtil = require(\"./util\");\nvar longestPath = rankUtil.longestPath;\nvar feasibleTree = require(\"./feasible-tree\");\nvar networkSimplex = require(\"./network-simplex\");\n\nmodule.exports = rank;\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch(g.graph().ranker) {\n case \"network-simplex\": networkSimplexRanker(g); break;\n case \"tight-tree\": tightTreeRanker(g); break;\n case \"longest-path\": longestPathRanker(g); break;\n default: networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar feasibleTree = require(\"./feasible-tree\");\nvar slack = require(\"./util\").slack;\nvar initRank = require(\"./util\").longestPath;\nvar preorder = require(\"../graphlib\").alg.preorder;\nvar postorder = require(\"../graphlib\").alg.postorder;\nvar simplify = require(\"../util\").simplify;\n\nmodule.exports = networkSimplex;\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n initRank(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function(v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function(e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function(w) {\n if (!_.has(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function(e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function(edge) {\n return flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel);\n });\n\n return _.minBy(candidates, function(edge) { return slack(g, edge); });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function(v) { return !g.node(v).parent; });\n var vs = preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function(v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = {\n longestPath: longestPath,\n slack: slack\n};\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (_.has(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(_.map(g.outEdges(v), function(e) {\n return dfs(e.w) - g.edge(e).minlen;\n }));\n\n if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null) { // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","/* eslint \"no-console\": off */\n\n\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n addDummyNode: addDummyNode,\n simplify: simplify,\n asNonCompoundGraph: asNonCompoundGraph,\n successorWeights: successorWeights,\n predecessorWeights: predecessorWeights,\n intersectRect: intersectRect,\n buildLayerMatrix: buildLayerMatrix,\n normalizeRanks: normalizeRanks,\n removeEmptyRanks: removeEmptyRanks,\n addBorderNode: addBorderNode,\n maxRank: maxRank,\n partition: partition,\n time: time,\n notime: notime\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function(v) { simplified.setNode(v, g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen)\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function(v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function(e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function(e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var preds = {};\n _.forEach(g.inEdges(v), function(e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error(\"Not possible to find intersection inside of the rectangle\");\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = w * dy / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function() { return []; });\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (_.has(node, \"rank\")) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n\n var layers = [];\n _.forEach(g.nodes(), function(v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function(vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function(v) { g.node(v).rank += delta; });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, \"border\", node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(_.map(g.nodes(), function(v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n }));\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function(value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + \" time: \" + (_.now() - start) + \"ms\");\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n","module.exports = \"0.8.5\";\n","/*! @license DOMPurify 2.3.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.6/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.6';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['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']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE = void 0;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc = void 0;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/