From 8cb0cf2e34ed2263255a1fe77d2f75c9da86b9ef Mon Sep 17 00:00:00 2001 From: lxsang Date: Sat, 29 Sep 2018 09:19:26 +0000 Subject: [PATCH] fix OpenPage and GraphEditor bugs --- GraphEditor/README.md | 24 + GraphEditor/assets/scheme.html | 14 + GraphEditor/build/debug/README.md | 24 + GraphEditor/build/debug/main.css | 23 + GraphEditor/build/debug/main.js | 2294 +++++++++++++++++ GraphEditor/build/debug/package.json | 14 + GraphEditor/build/debug/scheme.html | 14 + GraphEditor/build/release/GraphEditor.zip | Bin 0 -> 910867 bytes GraphEditor/coffees/main.coffee | 264 ++ GraphEditor/css/main.css | 22 + GraphEditor/javascripts/mermaidAPI.min.js | 1 + GraphEditor/javascripts/svg-pan-zoom.js | 1900 ++++++++++++++ GraphEditor/package.json | 14 + GraphEditor/project.apj | 1 + OpenPage/build/debug/OpenPage.md | 14 + OpenPage/build/debug/blank.odt | Bin 0 -> 133915 bytes OpenPage/build/debug/icon.png | Bin 0 -> 1336 bytes OpenPage/build/debug/main.css | 109 + OpenPage/build/debug/main.js | 2771 +++++++++++++++++++++ OpenPage/build/debug/package.json | 13 + OpenPage/build/debug/scheme.html | 47 + OpenPage/build/release/OpenPage.zip | Bin 654262 -> 653968 bytes OpenPage/coffees/main.coffee | 24 +- OpenPage/package.json | 2 +- 24 files changed, 7580 insertions(+), 9 deletions(-) create mode 100644 GraphEditor/README.md create mode 100644 GraphEditor/assets/scheme.html create mode 100644 GraphEditor/build/debug/README.md create mode 100644 GraphEditor/build/debug/main.css create mode 100644 GraphEditor/build/debug/main.js create mode 100644 GraphEditor/build/debug/package.json create mode 100644 GraphEditor/build/debug/scheme.html create mode 100644 GraphEditor/build/release/GraphEditor.zip create mode 100644 GraphEditor/coffees/main.coffee create mode 100644 GraphEditor/css/main.css create mode 100644 GraphEditor/javascripts/mermaidAPI.min.js create mode 100644 GraphEditor/javascripts/svg-pan-zoom.js create mode 100644 GraphEditor/package.json create mode 100644 GraphEditor/project.apj create mode 100644 OpenPage/build/debug/OpenPage.md create mode 100644 OpenPage/build/debug/blank.odt create mode 100644 OpenPage/build/debug/icon.png create mode 100644 OpenPage/build/debug/main.css create mode 100644 OpenPage/build/debug/main.js create mode 100644 OpenPage/build/debug/package.json create mode 100644 OpenPage/build/debug/scheme.html diff --git a/GraphEditor/README.md b/GraphEditor/README.md new file mode 100644 index 0000000..0205816 --- /dev/null +++ b/GraphEditor/README.md @@ -0,0 +1,24 @@ +# GraphEditor +This is an example project, generated by AntOS Development Kit + +## Howto + +1. Open the project.apj file with AntOSDK (simply double Click on it) +2. Modify the UI in *assets/scheme.html* +3. Modify application code in *coffees/main.coffee* +4. Modify CSS style in *css/main.css* +5. Other files need to be copied: put in to assets + +## Set up build target + +Click **Menu> Build > Build Option** or simply hit **ALT-Y** + +In the build options dialog, add or remove files that need to be +included into the build + +Click **Save** + +## Build application +* To build: **Menu > Build > Build** or **ALT-C** +* To build and run: **Menu > Build > Build and Run** or **CTRL-R** +* To release: **Menu > Build > Build release** or **ALT-P** \ No newline at end of file diff --git a/GraphEditor/assets/scheme.html b/GraphEditor/assets/scheme.html new file mode 100644 index 0000000..25cd28e --- /dev/null +++ b/GraphEditor/assets/scheme.html @@ -0,0 +1,14 @@ + + +
+ +
+
+ + + +
+
+ +
+
\ No newline at end of file diff --git a/GraphEditor/build/debug/README.md b/GraphEditor/build/debug/README.md new file mode 100644 index 0000000..0205816 --- /dev/null +++ b/GraphEditor/build/debug/README.md @@ -0,0 +1,24 @@ +# GraphEditor +This is an example project, generated by AntOS Development Kit + +## Howto + +1. Open the project.apj file with AntOSDK (simply double Click on it) +2. Modify the UI in *assets/scheme.html* +3. Modify application code in *coffees/main.coffee* +4. Modify CSS style in *css/main.css* +5. Other files need to be copied: put in to assets + +## Set up build target + +Click **Menu> Build > Build Option** or simply hit **ALT-Y** + +In the build options dialog, add or remove files that need to be +included into the build + +Click **Save** + +## Build application +* To build: **Menu > Build > Build** or **ALT-C** +* To build and run: **Menu > Build > Build and Run** or **CTRL-R** +* To release: **Menu > Build > Build release** or **ALT-P** \ No newline at end of file diff --git a/GraphEditor/build/debug/main.css b/GraphEditor/build/debug/main.css new file mode 100644 index 0000000..8ea2949 --- /dev/null +++ b/GraphEditor/build/debug/main.css @@ -0,0 +1,23 @@ + +afx-app-window[data-id="graph_editor_win"] div[data-id="preview"] +{ + display: flex; + align-items: center; + justify-content: center; +} +afx-app-window[data-id="graph_editor_win"] afx-button button +{ + border-radius: 0; + padding-top:2px; + padding-bottom: 2px; +} +afx-app-window[data-id="graph_editor_win"] afx-resizer{ + background-color: transparent; +} +afx-app-window[data-id="graph_editor_win"] div[data-id="btn-container"]{ + background-color: transparent; + position: absolute; + bottom:10px; + right: 10px; + display: inline; +} diff --git a/GraphEditor/build/debug/main.js b/GraphEditor/build/debug/main.js new file mode 100644 index 0000000..e905219 --- /dev/null +++ b/GraphEditor/build/debug/main.js @@ -0,0 +1,2294 @@ +(function() { + // Copyright 2017-2018 Xuan Sang LE + + // AnTOS Web desktop is is licensed under the GNU General Public + // License v3.0, see the LICENCE file for more information + + // This program is free software: you can redistribute it and/or + // modify it under the terms of the GNU General Public License as + // published by the Free Software Foundation, either version 3 of + // the License, or (at your option) any later version. + + // This program is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + // General Public License for more details. + + // You should have received a copy of the GNU General Public License + //along with this program. If not, see https://www.gnu.org/licenses/. + var GraphEditor; + + GraphEditor = class GraphEditor extends this.OS.GUI.BaseApplication { + constructor(args) { + super("GraphEditor", args); + } + + main() { + var me; + me = this; + //mermaid.initialize { startOnLoad: false } + mermaid.initialize({ + theme: 'forest' + }); + this.currfile = this.args && this.args.length > 0 ? this.args[0].asFileHandler() : "Untitled".asFileHandler(); + this.currfile.dirty = false; + this.datarea = this.find("datarea"); + this.preview = this.find("preview"); + this.btctn = this.find("btn-container"); + this.editor = ace.edit(this.datarea); + this.editor.setOptions({ + enableBasicAutocompletion: true, + enableLiveAutocompletion: true, + fontSize: "10pt" + }); + //@.editor.completers.push { getCompletions: ( editor, session, pos, prefix, callback ) -> } + this.editor.getSession().setUseWrapMode(true); + this.editor.session.setMode("ace/mode/text"); + this.editor.setTheme("ace/theme/monokai"); + this.editor.on("input", function() { + if (me.editormux) { + me.editormux = false; + return false; + } + if (!me.currfile.dirty) { + return me.currfile.dirty = true; + } + }); + if (!me.currfile.basename) { + me.editormux = true; + me.editor.setValue(GraphEditor.dummymermaid); + me.renderSVG(false); + } + this.editor.container.addEventListener("keydown", function(e) { + if (e.keyCode === 13) { + return me.renderSVG(true); + } + }, true); + this.bindKey("CTRL-R", function() { + return me.renderSVG(false); + }); + this.bindKey("ALT-G", function() { + return me.export("SVG"); + }); + this.bindKey("ALT-P", function() { + return me.export("PNG"); + }); + this.bindKey("ALT-N", function() { + return me.actionFile(`${me.name}-New`); + }); + this.bindKey("ALT-O", function() { + return me.actionFile(`${me.name}-Open`); + }); + this.bindKey("CTRL-S", function() { + return me.actionFile(`${me.name}-Save`); + }); + this.bindKey("ALT-W", function() { + return me.actionFile(`${me.name}-Saveas`); + }); + this.bindKey("CTRL-M", function() { + return me.svgToCanvas(function() {}); + }); + this.on("hboxchange", function() { + me.editor.resize(); + return me.calibrate(); + }); + this.on("focus", function() { + return me.editor.focus(); + }); + (this.find("btn-zoomin")).set("onbtclick", function(e) { + if (me.pan) { + return me.pan.zoomIn(); + } + }); + (this.find("btn-zoomout")).set("onbtclick", function(e) { + if (me.pan) { + return me.pan.zoomOut(); + } + }); + (this.find("btn-reset")).set("onbtclick", function(e) { + if (me.pan) { + return me.pan.resetZoom(); + } + }); + return this.open(this.currfile); + } + + menu() { + var me, menu; + me = this; + menu = [ + { + text: "__(File)", + child: [ + { + text: "__(New)", + dataid: `${this.name}-New`, + shortcut: "A-N" + }, + { + text: "__(Open)", + dataid: `${this.name}-Open`, + shortcut: "A-O" + }, + { + text: "__(Save)", + dataid: `${this.name}-Save`, + shortcut: "C-S" + }, + { + text: "__(Save as)", + dataid: `${this.name}-Saveas`, + shortcut: "A-W" + }, + { + text: "__(Render)", + dataid: `${this.name}-Render`, + shortcut: "C-R" + }, + { + text: "__(Export as)", + child: [ + { + text: "SVG", + shortcut: "A-G" + }, + { + text: "PNG", + shortcut: "A-P" + } + ], + onmenuselect: function(e) { + return me.export(e.item.data.text); + } + } + ], + onmenuselect: function(e) { + return me.actionFile(e.item.data.dataid); + } + } + ]; + return menu; + } + + open(file) { + var me; + if (file.path === "Untitled") { + return; + } + me = this; + file.dirty = false; + return file.read(function(d) { + me.currfile = file; + me.editormux = true; + me.currfile.dirty = false; + me.editor.setValue(d); + me.scheme.set("apptitle", `${me.currfile.basename}`); + return me.renderSVG(false); + }); + } + + save(file) { + var me; + me = this; + return file.write("text/plain", function(d) { + if (d.error) { + return me.error(__("Error saving file {0}", file.basename)); + } + file.dirty = false; + file.text = file.basename; + return me.scheme.set("apptitle", `${me.currfile.basename}`); + }); + } + + actionFile(e) { + var me, saveas; + me = this; + saveas = function() { + return me.openDialog("FileDiaLog", function(d, n) { + me.currfile.setPath(`${d}/${n}`); + return me.save(me.currfile); + }, __("Save as"), { + file: me.currfile + }); + }; + switch (e) { + case `${this.name}-Open`: + return this.openDialog("FileDiaLog", function(d, f) { + return me.open(`${d}/${f}`.asFileHandler()); + }, __("Open file")); + case `${this.name}-Save`: + this.currfile.cache = this.editor.getValue(); + if (this.currfile.basename) { + return this.save(this.currfile); + } + return saveas(); + case `${this.name}-Saveas`: + this.currfile.cache = this.editor.getValue(); + return saveas(); + case `${this.name}-Render`: + return me.renderSVG(false); + case `${this.name}-New`: + this.currfile = "Untitled".asFileHandler(); + this.currfile.cache = ""; + this.currfile.dirty = false; + this.editormux = true; + return this.editor.setValue(""); + } + } + + export(t) { + var me; + me = this; + return me.openDialog("FileDiaLog", function(d, n) { + var e, fp; + fp = `${d}/${n}`.asFileHandler(); + try { + switch (t) { + case "SVG": + fp.cache = me.svgtext(); + return fp.write("text/plain", function(r) { + if (r.error) { + return me.error(__("Cannot export to {0}: {1}", t, r.error)); + } + return me.notify(__("File exported")); + }); + case "PNG": + // toDataURL("image/png") + return me.svgToCanvas(function(canvas) { + var e; + try { + fp.cache = canvas.toDataURL("image/png"); + return fp.write("base64", function(r) { + if (r.error) { + return me.error(__("Cannot export to {0}: {1}", t, r.error)); + } + return me.notify(__("File exported")); + }); + } catch (error) { + e = error; + return me.error(__("Cannot export to PNG in this browser: {0}", e.message)); + } + }); + } + } catch (error) { + e = error; + return me.error(__("Cannot export: {0}", e.message)); + } + }, __("Export as"), { + file: me.currfile + }); + } + + renderSVG(silent) { + var e, id, me, text; + me = this; + id = Math.floor(Math.random() * 100000) + 1; + //if silent + // mermaid.parseError = (e, h) -> + //else + // mermaid.parseError = (e, h) -> + // me.error e + text = this.editor.getValue(); + try { + mermaid.parse(text); + } catch (error) { + e = error; + if (!silent) { + me.error(__("Syntax error: {0}", e.str)); + } + return; + } + return mermaid.render(`c${id}`, text, function(text, f) { + var svg; + me.preview.innerHTML = text; + $(me.preview).append(me.btctn); + me.calibrate(); + svg = $(me.preview).children("svg")[0]; + $(svg).attr("style", ""); + return me.pan = svgPanZoom(svg, { + zoomEnabled: true, + controlIconsEnabled: false, + fit: true, + center: true, + minZoom: 0.1 + }); + //rd $($.parseHTML text). + }, me.preview); + } + + svgtext() { + var serializer, svg; + svg = $(this.preview).children("svg")[0]; + $("g.label", svg).each(function(i) { + return $(this).css("font-family", "Ubuntu").css("font-size", "13px"); + }); + $("text", svg).each(function(j) { + return $(this).css("font-family", "Ubuntu").css("font-size", "13px"); + }); + serializer = new XMLSerializer(); + return serializer.serializeToString(svg); + } + + svgToCanvas(f) { + var DOMURL, img, me, svgBlob, svgStr, url; + me = this; + img = new Image(); + svgStr = this.svgtext(); + DOMURL = window.URL || window.webkitURL || window; + svgBlob = new Blob([svgStr], { + type: 'image/svg+xml;charset=utf-8' + }); + url = DOMURL.createObjectURL(svgBlob); + img.onload = function() { + var canvas; + canvas = me.find("offscreen"); + canvas.width = img.width; + canvas.height = img.height; + canvas.getContext("2d").drawImage(img, 0, 0, img.width, img.height); + return f(canvas); + }; + return img.src = url; + } + + calibrate() { + var prs, svg; + svg = ($(this.preview)).children("svg")[0]; + if (svg) { + prs = [$(this.preview).width(), $(this.preview).height()]; + $(svg).attr("width", prs[0] + "px"); + return $(svg).attr("height", prs[1] + "px"); + } + } + + cleanup(evt) { + var me; + if (!this.currfile) { + return; + } + if (!this.currfile.dirty) { + return; + } + me = this; + evt.preventDefault(); + return this.openDialog("YesNoDialog", function(d) { + if (d) { + me.currfile.dirty = false; + return me.quit(); + } + }, __("Quit"), { + text: __("Quit without saving ?") + }); + } + + }; + + GraphEditor.dummymermaid = "graph TD;\n A-->B;\n A-->C;\n B-->D;\n C-->D;"; + + GraphEditor.dependencies = ["ace/ace"]; + + this.OS.register("GraphEditor", GraphEditor); + +}).call(this); + +// svg-pan-zoom v3.5.2 +// https://github.com/ariutta/svg-pan-zoom +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0; i--) { + if (this.eventListeners.hasOwnProperty(haltEventListeners[i])) { + delete this.eventListeners[haltEventListeners[i]] + } + } + } + } + + // Bind eventListeners + for (var event in this.eventListeners) { + // Attach event to eventsListenerElement or SVG if not available + (this.options.eventsListenerElement || this.svg) + .addEventListener(event, this.eventListeners[event], false) + } + + // Zoom using mouse wheel + if (this.options.mouseWheelZoomEnabled) { + this.options.mouseWheelZoomEnabled = false // set to false as enable will set it back to true + this.enableMouseWheelZoom() + } +} + +/** + * Enable ability to zoom using mouse wheel + */ +SvgPanZoom.prototype.enableMouseWheelZoom = function() { + if (!this.options.mouseWheelZoomEnabled) { + var that = this + + // Mouse wheel listener + this.wheelListener = function(evt) { + return that.handleMouseWheel(evt); + } + + // Bind wheelListener + Wheel.on(this.options.eventsListenerElement || this.svg, this.wheelListener, false) + + this.options.mouseWheelZoomEnabled = true + } +} + +/** + * Disable ability to zoom using mouse wheel + */ +SvgPanZoom.prototype.disableMouseWheelZoom = function() { + if (this.options.mouseWheelZoomEnabled) { + Wheel.off(this.options.eventsListenerElement || this.svg, this.wheelListener, false) + this.options.mouseWheelZoomEnabled = false + } +} + +/** + * Handle mouse wheel event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseWheel = function(evt) { + if (!this.options.zoomEnabled || this.state !== 'none') { + return; + } + + if (this.options.preventMouseEventsDefault){ + if (evt.preventDefault) { + evt.preventDefault(); + } else { + evt.returnValue = false; + } + } + + // Default delta in case that deltaY is not available + var delta = evt.deltaY || 1 + , timeDelta = Date.now() - this.lastMouseWheelEventTime + , divider = 3 + Math.max(0, 30 - timeDelta) + + // Update cache + this.lastMouseWheelEventTime = Date.now() + + // Make empirical adjustments for browsers that give deltaY in pixels (deltaMode=0) + if ('deltaMode' in evt && evt.deltaMode === 0 && evt.wheelDelta) { + delta = evt.deltaY === 0 ? 0 : Math.abs(evt.wheelDelta) / evt.deltaY + } + + delta = -0.3 < delta && delta < 0.3 ? delta : (delta > 0 ? 1 : -1) * Math.log(Math.abs(delta) + 10) / divider + + var inversedScreenCTM = this.svg.getScreenCTM().inverse() + , relativeMousePoint = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(inversedScreenCTM) + , zoom = Math.pow(1 + this.options.zoomScaleSensitivity, (-1) * delta); // multiplying by neg. 1 so as to make zoom in/out behavior match Google maps behavior + + this.zoomAtPoint(zoom, relativeMousePoint) +} + +/** + * Zoom in at a SVG point + * + * @param {SVGPoint} point + * @param {Float} zoomScale Number representing how much to zoom + * @param {Boolean} zoomAbsolute Default false. If true, zoomScale is treated as an absolute value. + * Otherwise, zoomScale is treated as a multiplied (e.g. 1.10 would zoom in 10%) + */ +SvgPanZoom.prototype.zoomAtPoint = function(zoomScale, point, zoomAbsolute) { + var originalState = this.viewport.getOriginalState() + + if (!zoomAbsolute) { + // Fit zoomScale in set bounds + if (this.getZoom() * zoomScale < this.options.minZoom * originalState.zoom) { + zoomScale = (this.options.minZoom * originalState.zoom) / this.getZoom() + } else if (this.getZoom() * zoomScale > this.options.maxZoom * originalState.zoom) { + zoomScale = (this.options.maxZoom * originalState.zoom) / this.getZoom() + } + } else { + // Fit zoomScale in set bounds + zoomScale = Math.max(this.options.minZoom * originalState.zoom, Math.min(this.options.maxZoom * originalState.zoom, zoomScale)) + // Find relative scale to achieve desired scale + zoomScale = zoomScale/this.getZoom() + } + + var oldCTM = this.viewport.getCTM() + , relativePoint = point.matrixTransform(oldCTM.inverse()) + , modifier = this.svg.createSVGMatrix().translate(relativePoint.x, relativePoint.y).scale(zoomScale).translate(-relativePoint.x, -relativePoint.y) + , newCTM = oldCTM.multiply(modifier) + + if (newCTM.a !== oldCTM.a) { + this.viewport.setCTM(newCTM) + } +} + +/** + * Zoom at center point + * + * @param {Float} scale + * @param {Boolean} absolute Marks zoom scale as relative or absolute + */ +SvgPanZoom.prototype.zoom = function(scale, absolute) { + this.zoomAtPoint(scale, SvgUtils.getSvgCenterPoint(this.svg, this.width, this.height), absolute) +} + +/** + * Zoom used by public instance + * + * @param {Float} scale + * @param {Boolean} absolute Marks zoom scale as relative or absolute + */ +SvgPanZoom.prototype.publicZoom = function(scale, absolute) { + if (absolute) { + scale = this.computeFromRelativeZoom(scale) + } + + this.zoom(scale, absolute) +} + +/** + * Zoom at point used by public instance + * + * @param {Float} scale + * @param {SVGPoint|Object} point An object that has x and y attributes + * @param {Boolean} absolute Marks zoom scale as relative or absolute + */ +SvgPanZoom.prototype.publicZoomAtPoint = function(scale, point, absolute) { + if (absolute) { + // Transform zoom into a relative value + scale = this.computeFromRelativeZoom(scale) + } + + // If not a SVGPoint but has x and y then create a SVGPoint + if (Utils.getType(point) !== 'SVGPoint') { + if('x' in point && 'y' in point) { + point = SvgUtils.createSVGPoint(this.svg, point.x, point.y) + } else { + throw new Error('Given point is invalid') + } + } + + this.zoomAtPoint(scale, point, absolute) +} + +/** + * Get zoom scale + * + * @return {Float} zoom scale + */ +SvgPanZoom.prototype.getZoom = function() { + return this.viewport.getZoom() +} + +/** + * Get zoom scale for public usage + * + * @return {Float} zoom scale + */ +SvgPanZoom.prototype.getRelativeZoom = function() { + return this.viewport.getRelativeZoom() +} + +/** + * Compute actual zoom from public zoom + * + * @param {Float} zoom + * @return {Float} zoom scale + */ +SvgPanZoom.prototype.computeFromRelativeZoom = function(zoom) { + return zoom * this.viewport.getOriginalState().zoom +} + +/** + * Set zoom to initial state + */ +SvgPanZoom.prototype.resetZoom = function() { + var originalState = this.viewport.getOriginalState() + + this.zoom(originalState.zoom, true); +} + +/** + * Set pan to initial state + */ +SvgPanZoom.prototype.resetPan = function() { + this.pan(this.viewport.getOriginalState()); +} + +/** + * Set pan and zoom to initial state + */ +SvgPanZoom.prototype.reset = function() { + this.resetZoom() + this.resetPan() +} + +/** + * Handle double click event + * See handleMouseDown() for alternate detection method + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleDblClick = function(evt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + // Check if target was a control button + if (this.options.controlIconsEnabled) { + var targetClass = evt.target.getAttribute('class') || '' + if (targetClass.indexOf('svg-pan-zoom-control') > -1) { + return false + } + } + + var zoomFactor + + if (evt.shiftKey) { + zoomFactor = 1/((1 + this.options.zoomScaleSensitivity) * 2) // zoom out when shift key pressed + } else { + zoomFactor = (1 + this.options.zoomScaleSensitivity) * 2 + } + + var point = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.svg.getScreenCTM().inverse()) + this.zoomAtPoint(zoomFactor, point) +} + +/** + * Handle click event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseDown = function(evt, prevEvt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + Utils.mouseAndTouchNormalize(evt, this.svg) + + // Double click detection; more consistent than ondblclick + if (this.options.dblClickZoomEnabled && Utils.isDblClick(evt, prevEvt)){ + this.handleDblClick(evt) + } else { + // Pan mode + this.state = 'pan' + this.firstEventCTM = this.viewport.getCTM() + this.stateOrigin = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.firstEventCTM.inverse()) + } +} + +/** + * Handle mouse move event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseMove = function(evt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + if (this.state === 'pan' && this.options.panEnabled) { + // Pan mode + var point = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.firstEventCTM.inverse()) + , viewportCTM = this.firstEventCTM.translate(point.x - this.stateOrigin.x, point.y - this.stateOrigin.y) + + this.viewport.setCTM(viewportCTM) + } +} + +/** + * Handle mouse button release event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseUp = function(evt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + if (this.state === 'pan') { + // Quit pan mode + this.state = 'none' + } +} + +/** + * Adjust viewport size (only) so it will fit in SVG + * Does not center image + */ +SvgPanZoom.prototype.fit = function() { + var viewBox = this.viewport.getViewBox() + , newScale = Math.min(this.width/viewBox.width, this.height/viewBox.height) + + this.zoom(newScale, true) +} + +/** + * Adjust viewport size (only) so it will contain the SVG + * Does not center image + */ +SvgPanZoom.prototype.contain = function() { + var viewBox = this.viewport.getViewBox() + , newScale = Math.max(this.width/viewBox.width, this.height/viewBox.height) + + this.zoom(newScale, true) +} + +/** + * Adjust viewport pan (only) so it will be centered in SVG + * Does not zoom/fit/contain image + */ +SvgPanZoom.prototype.center = function() { + var viewBox = this.viewport.getViewBox() + , offsetX = (this.width - (viewBox.width + viewBox.x * 2) * this.getZoom()) * 0.5 + , offsetY = (this.height - (viewBox.height + viewBox.y * 2) * this.getZoom()) * 0.5 + + this.getPublicInstance().pan({x: offsetX, y: offsetY}) +} + +/** + * Update content cached BorderBox + * Use when viewport contents change + */ +SvgPanZoom.prototype.updateBBox = function() { + this.viewport.simpleViewBoxCache() +} + +/** + * Pan to a rendered position + * + * @param {Object} point {x: 0, y: 0} + */ +SvgPanZoom.prototype.pan = function(point) { + var viewportCTM = this.viewport.getCTM() + viewportCTM.e = point.x + viewportCTM.f = point.y + this.viewport.setCTM(viewportCTM) +} + +/** + * Relatively pan the graph by a specified rendered position vector + * + * @param {Object} point {x: 0, y: 0} + */ +SvgPanZoom.prototype.panBy = function(point) { + var viewportCTM = this.viewport.getCTM() + viewportCTM.e += point.x + viewportCTM.f += point.y + this.viewport.setCTM(viewportCTM) +} + +/** + * Get pan vector + * + * @return {Object} {x: 0, y: 0} + */ +SvgPanZoom.prototype.getPan = function() { + var state = this.viewport.getState() + + return {x: state.x, y: state.y} +} + +/** + * Recalculates cached svg dimensions and controls position + */ +SvgPanZoom.prototype.resize = function() { + // Get dimensions + var boundingClientRectNormalized = SvgUtils.getBoundingClientRectNormalized(this.svg) + this.width = boundingClientRectNormalized.width + this.height = boundingClientRectNormalized.height + + // Recalculate original state + var viewport = this.viewport + viewport.options.width = this.width + viewport.options.height = this.height + viewport.processCTM() + + // Reposition control icons by re-enabling them + if (this.options.controlIconsEnabled) { + this.getPublicInstance().disableControlIcons() + this.getPublicInstance().enableControlIcons() + } +} + +/** + * Unbind mouse events, free callbacks and destroy public instance + */ +SvgPanZoom.prototype.destroy = function() { + var that = this + + // Free callbacks + this.beforeZoom = null + this.onZoom = null + this.beforePan = null + this.onPan = null + this.onUpdatedCTM = null + + // Destroy custom event handlers + if (this.options.customEventsHandler != null) { // jshint ignore:line + this.options.customEventsHandler.destroy({ + svgElement: this.svg + , eventsListenerElement: this.options.eventsListenerElement + , instance: this.getPublicInstance() + }) + } + + // Unbind eventListeners + for (var event in this.eventListeners) { + (this.options.eventsListenerElement || this.svg) + .removeEventListener(event, this.eventListeners[event], false) + } + + // Unbind wheelListener + this.disableMouseWheelZoom() + + // Remove control icons + this.getPublicInstance().disableControlIcons() + + // Reset zoom and pan + this.reset() + + // Remove instance from instancesStore + instancesStore = instancesStore.filter(function(instance){ + return instance.svg !== that.svg + }) + + // Delete options and its contents + delete this.options + + // Delete viewport to make public shadow viewport functions uncallable + delete this.viewport + + // Destroy public instance and rewrite getPublicInstance + delete this.publicInstance + delete this.pi + this.getPublicInstance = function(){ + return null + } +} + +/** + * Returns a public instance object + * + * @return {Object} Public instance object + */ +SvgPanZoom.prototype.getPublicInstance = function() { + var that = this + + // Create cache + if (!this.publicInstance) { + this.publicInstance = this.pi = { + // Pan + enablePan: function() {that.options.panEnabled = true; return that.pi} + , disablePan: function() {that.options.panEnabled = false; return that.pi} + , isPanEnabled: function() {return !!that.options.panEnabled} + , pan: function(point) {that.pan(point); return that.pi} + , panBy: function(point) {that.panBy(point); return that.pi} + , getPan: function() {return that.getPan()} + // Pan event + , setBeforePan: function(fn) {that.options.beforePan = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + , setOnPan: function(fn) {that.options.onPan = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + // Zoom and Control Icons + , enableZoom: function() {that.options.zoomEnabled = true; return that.pi} + , disableZoom: function() {that.options.zoomEnabled = false; return that.pi} + , isZoomEnabled: function() {return !!that.options.zoomEnabled} + , enableControlIcons: function() { + if (!that.options.controlIconsEnabled) { + that.options.controlIconsEnabled = true + ControlIcons.enable(that) + } + return that.pi + } + , disableControlIcons: function() { + if (that.options.controlIconsEnabled) { + that.options.controlIconsEnabled = false; + ControlIcons.disable(that) + } + return that.pi + } + , isControlIconsEnabled: function() {return !!that.options.controlIconsEnabled} + // Double click zoom + , enableDblClickZoom: function() {that.options.dblClickZoomEnabled = true; return that.pi} + , disableDblClickZoom: function() {that.options.dblClickZoomEnabled = false; return that.pi} + , isDblClickZoomEnabled: function() {return !!that.options.dblClickZoomEnabled} + // Mouse wheel zoom + , enableMouseWheelZoom: function() {that.enableMouseWheelZoom(); return that.pi} + , disableMouseWheelZoom: function() {that.disableMouseWheelZoom(); return that.pi} + , isMouseWheelZoomEnabled: function() {return !!that.options.mouseWheelZoomEnabled} + // Zoom scale and bounds + , setZoomScaleSensitivity: function(scale) {that.options.zoomScaleSensitivity = scale; return that.pi} + , setMinZoom: function(zoom) {that.options.minZoom = zoom; return that.pi} + , setMaxZoom: function(zoom) {that.options.maxZoom = zoom; return that.pi} + // Zoom event + , setBeforeZoom: function(fn) {that.options.beforeZoom = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + , setOnZoom: function(fn) {that.options.onZoom = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + // Zooming + , zoom: function(scale) {that.publicZoom(scale, true); return that.pi} + , zoomBy: function(scale) {that.publicZoom(scale, false); return that.pi} + , zoomAtPoint: function(scale, point) {that.publicZoomAtPoint(scale, point, true); return that.pi} + , zoomAtPointBy: function(scale, point) {that.publicZoomAtPoint(scale, point, false); return that.pi} + , zoomIn: function() {this.zoomBy(1 + that.options.zoomScaleSensitivity); return that.pi} + , zoomOut: function() {this.zoomBy(1 / (1 + that.options.zoomScaleSensitivity)); return that.pi} + , getZoom: function() {return that.getRelativeZoom()} + // CTM update + , setOnUpdatedCTM: function(fn) {that.options.onUpdatedCTM = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + // Reset + , resetZoom: function() {that.resetZoom(); return that.pi} + , resetPan: function() {that.resetPan(); return that.pi} + , reset: function() {that.reset(); return that.pi} + // Fit, Contain and Center + , fit: function() {that.fit(); return that.pi} + , contain: function() {that.contain(); return that.pi} + , center: function() {that.center(); return that.pi} + // Size and Resize + , updateBBox: function() {that.updateBBox(); return that.pi} + , resize: function() {that.resize(); return that.pi} + , getSizes: function() { + return { + width: that.width + , height: that.height + , realZoom: that.getZoom() + , viewBox: that.viewport.getViewBox() + } + } + // Destroy + , destroy: function() {that.destroy(); return that.pi} + } + } + + return this.publicInstance +} + +/** + * Stores pairs of instances of SvgPanZoom and SVG + * Each pair is represented by an object {svg: SVGSVGElement, instance: SvgPanZoom} + * + * @type {Array} + */ +var instancesStore = [] + +var svgPanZoom = function(elementOrSelector, options){ + var svg = Utils.getSvg(elementOrSelector) + + if (svg === null) { + return null + } else { + // Look for existent instance + for(var i = instancesStore.length - 1; i >= 0; i--) { + if (instancesStore[i].svg === svg) { + return instancesStore[i].instance.getPublicInstance() + } + } + + // If instance not found - create one + instancesStore.push({ + svg: svg + , instance: new SvgPanZoom(svg, options) + }) + + // Return just pushed instance + return instancesStore[instancesStore.length - 1].instance.getPublicInstance() + } +} + +module.exports = svgPanZoom; + +},{"./control-icons":2,"./shadow-viewport":3,"./svg-utilities":5,"./uniwheel":6,"./utilities":7}],5:[function(require,module,exports){ +var Utils = require('./utilities') + , _browser = 'unknown' + ; + +// http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser +if (/*@cc_on!@*/false || !!document.documentMode) { // internet explorer + _browser = 'ie'; +} + +module.exports = { + svgNS: 'http://www.w3.org/2000/svg' +, xmlNS: 'http://www.w3.org/XML/1998/namespace' +, xmlnsNS: 'http://www.w3.org/2000/xmlns/' +, xlinkNS: 'http://www.w3.org/1999/xlink' +, evNS: 'http://www.w3.org/2001/xml-events' + + /** + * Get svg dimensions: width and height + * + * @param {SVGSVGElement} svg + * @return {Object} {width: 0, height: 0} + */ +, getBoundingClientRectNormalized: function(svg) { + if (svg.clientWidth && svg.clientHeight) { + return {width: svg.clientWidth, height: svg.clientHeight} + } else if (!!svg.getBoundingClientRect()) { + return svg.getBoundingClientRect(); + } else { + throw new Error('Cannot get BoundingClientRect for SVG.'); + } + } + + /** + * Gets g element with class of "viewport" or creates it if it doesn't exist + * + * @param {SVGSVGElement} svg + * @return {SVGElement} g (group) element + */ +, getOrCreateViewport: function(svg, selector) { + var viewport = null + + if (Utils.isElement(selector)) { + viewport = selector + } else { + viewport = svg.querySelector(selector) + } + + // Check if there is just one main group in SVG + if (!viewport) { + var childNodes = Array.prototype.slice.call(svg.childNodes || svg.children).filter(function(el){ + return el.nodeName !== 'defs' && el.nodeName !== '#text' + }) + + // Node name should be SVGGElement and should have no transform attribute + // Groups with transform are not used as viewport because it involves parsing of all transform possibilities + if (childNodes.length === 1 && childNodes[0].nodeName === 'g' && childNodes[0].getAttribute('transform') === null) { + viewport = childNodes[0] + } + } + + // If no favorable group element exists then create one + if (!viewport) { + var viewportId = 'viewport-' + new Date().toISOString().replace(/\D/g, ''); + viewport = document.createElementNS(this.svgNS, 'g'); + viewport.setAttribute('id', viewportId); + + // Internet Explorer (all versions?) can't use childNodes, but other browsers prefer (require?) using childNodes + var svgChildren = svg.childNodes || svg.children; + if (!!svgChildren && svgChildren.length > 0) { + for (var i = svgChildren.length; i > 0; i--) { + // Move everything into viewport except defs + if (svgChildren[svgChildren.length - i].nodeName !== 'defs') { + viewport.appendChild(svgChildren[svgChildren.length - i]); + } + } + } + svg.appendChild(viewport); + } + + // Parse class names + var classNames = []; + if (viewport.getAttribute('class')) { + classNames = viewport.getAttribute('class').split(' ') + } + + // Set class (if not set already) + if (!~classNames.indexOf('svg-pan-zoom_viewport')) { + classNames.push('svg-pan-zoom_viewport') + viewport.setAttribute('class', classNames.join(' ')) + } + + return viewport + } + + /** + * Set SVG attributes + * + * @param {SVGSVGElement} svg + */ + , setupSvgAttributes: function(svg) { + // Setting default attributes + svg.setAttribute('xmlns', this.svgNS); + svg.setAttributeNS(this.xmlnsNS, 'xmlns:xlink', this.xlinkNS); + svg.setAttributeNS(this.xmlnsNS, 'xmlns:ev', this.evNS); + + // Needed for Internet Explorer, otherwise the viewport overflows + if (svg.parentNode !== null) { + var style = svg.getAttribute('style') || ''; + if (style.toLowerCase().indexOf('overflow') === -1) { + svg.setAttribute('style', 'overflow: hidden; ' + style); + } + } + } + +/** + * How long Internet Explorer takes to finish updating its display (ms). + */ +, internetExplorerRedisplayInterval: 300 + +/** + * Forces the browser to redisplay all SVG elements that rely on an + * element defined in a 'defs' section. It works globally, for every + * available defs element on the page. + * The throttling is intentionally global. + * + * This is only needed for IE. It is as a hack to make markers (and 'use' elements?) + * visible after pan/zoom when there are multiple SVGs on the page. + * See bug report: https://connect.microsoft.com/IE/feedback/details/781964/ + * also see svg-pan-zoom issue: https://github.com/ariutta/svg-pan-zoom/issues/62 + */ +, refreshDefsGlobal: Utils.throttle(function() { + var allDefs = document.querySelectorAll('defs'); + var allDefsCount = allDefs.length; + for (var i = 0; i < allDefsCount; i++) { + var thisDefs = allDefs[i]; + thisDefs.parentNode.insertBefore(thisDefs, thisDefs); + } + }, this.internetExplorerRedisplayInterval) + + /** + * Sets the current transform matrix of an element + * + * @param {SVGElement} element + * @param {SVGMatrix} matrix CTM + * @param {SVGElement} defs + */ +, setCTM: function(element, matrix, defs) { + var that = this + , s = 'matrix(' + matrix.a + ',' + matrix.b + ',' + matrix.c + ',' + matrix.d + ',' + matrix.e + ',' + matrix.f + ')'; + + element.setAttributeNS(null, 'transform', s); + if ('transform' in element.style) { + element.style.transform = s; + } else if ('-ms-transform' in element.style) { + element.style['-ms-transform'] = s; + } else if ('-webkit-transform' in element.style) { + element.style['-webkit-transform'] = s; + } + + // IE has a bug that makes markers disappear on zoom (when the matrix "a" and/or "d" elements change) + // see http://stackoverflow.com/questions/17654578/svg-marker-does-not-work-in-ie9-10 + // and http://srndolha.wordpress.com/2013/11/25/svg-line-markers-may-disappear-in-internet-explorer-11/ + if (_browser === 'ie' && !!defs) { + // this refresh is intended for redisplaying the SVG during zooming + defs.parentNode.insertBefore(defs, defs); + // this refresh is intended for redisplaying the other SVGs on a page when panning a given SVG + // it is also needed for the given SVG itself, on zoomEnd, if the SVG contains any markers that + // are located under any other element(s). + window.setTimeout(function() { + that.refreshDefsGlobal(); + }, that.internetExplorerRedisplayInterval); + } + } + + /** + * Instantiate an SVGPoint object with given event coordinates + * + * @param {Event} evt + * @param {SVGSVGElement} svg + * @return {SVGPoint} point + */ +, getEventPoint: function(evt, svg) { + var point = svg.createSVGPoint() + + Utils.mouseAndTouchNormalize(evt, svg) + + point.x = evt.clientX + point.y = evt.clientY + + return point + } + + /** + * Get SVG center point + * + * @param {SVGSVGElement} svg + * @return {SVGPoint} + */ +, getSvgCenterPoint: function(svg, width, height) { + return this.createSVGPoint(svg, width / 2, height / 2) + } + + /** + * Create a SVGPoint with given x and y + * + * @param {SVGSVGElement} svg + * @param {Number} x + * @param {Number} y + * @return {SVGPoint} + */ +, createSVGPoint: function(svg, x, y) { + var point = svg.createSVGPoint() + point.x = x + point.y = y + + return point + } +} + +},{"./utilities":7}],6:[function(require,module,exports){ +// uniwheel 0.1.2 (customized) +// A unified cross browser mouse wheel event handler +// https://github.com/teemualap/uniwheel + +module.exports = (function(){ + + //Full details: https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel + + var prefix = "", _addEventListener, _removeEventListener, onwheel, support, fns = []; + + // detect event model + if ( window.addEventListener ) { + _addEventListener = "addEventListener"; + _removeEventListener = "removeEventListener"; + } else { + _addEventListener = "attachEvent"; + _removeEventListener = "detachEvent"; + prefix = "on"; + } + + // detect available wheel event + support = "onwheel" in document.createElement("div") ? "wheel" : // Modern browsers support "wheel" + document.onmousewheel !== undefined ? "mousewheel" : // Webkit and IE support at least "mousewheel" + "DOMMouseScroll"; // let's assume that remaining browsers are older Firefox + + + function createCallback(element,callback,capture) { + + var fn = function(originalEvent) { + + !originalEvent && ( originalEvent = window.event ); + + // create a normalized event object + var event = { + // keep a ref to the original event object + originalEvent: originalEvent, + target: originalEvent.target || originalEvent.srcElement, + type: "wheel", + deltaMode: originalEvent.type == "MozMousePixelScroll" ? 0 : 1, + deltaX: 0, + delatZ: 0, + preventDefault: function() { + originalEvent.preventDefault ? + originalEvent.preventDefault() : + originalEvent.returnValue = false; + } + }; + + // calculate deltaY (and deltaX) according to the event + if ( support == "mousewheel" ) { + event.deltaY = - 1/40 * originalEvent.wheelDelta; + // Webkit also support wheelDeltaX + originalEvent.wheelDeltaX && ( event.deltaX = - 1/40 * originalEvent.wheelDeltaX ); + } else { + event.deltaY = originalEvent.detail; + } + + // it's time to fire the callback + return callback( event ); + + }; + + fns.push({ + element: element, + fn: fn, + capture: capture + }); + + return fn; + } + + function getCallback(element,capture) { + for (var i = 0; i < fns.length; i++) { + if (fns[i].element === element && fns[i].capture === capture) { + return fns[i].fn; + } + } + return function(){}; + } + + function removeCallback(element,capture) { + for (var i = 0; i < fns.length; i++) { + if (fns[i].element === element && fns[i].capture === capture) { + return fns.splice(i,1); + } + } + } + + function _addWheelListener( elem, eventName, callback, useCapture ) { + + var cb; + + if (support === "wheel") { + cb = callback; + } else { + cb = createCallback(elem,callback,useCapture); + } + + elem[ _addEventListener ]( prefix + eventName, cb, useCapture || false ); + + } + + function _removeWheelListener( elem, eventName, callback, useCapture ) { + + var cb; + + if (support === "wheel") { + cb = callback; + } else { + cb = getCallback(elem,useCapture); + } + + elem[ _removeEventListener ]( prefix + eventName, cb, useCapture || false ); + + removeCallback(elem,useCapture); + + } + + function addWheelListener( elem, callback, useCapture ) { + _addWheelListener( elem, support, callback, useCapture ); + + // handle MozMousePixelScroll in older Firefox + if( support == "DOMMouseScroll" ) { + _addWheelListener( elem, "MozMousePixelScroll", callback, useCapture); + } + } + + function removeWheelListener(elem,callback,useCapture){ + _removeWheelListener(elem,support,callback,useCapture); + + // handle MozMousePixelScroll in older Firefox + if( support == "DOMMouseScroll" ) { + _removeWheelListener(elem, "MozMousePixelScroll", callback, useCapture); + } + } + + return { + on: addWheelListener, + off: removeWheelListener + }; + +})(); + +},{}],7:[function(require,module,exports){ +module.exports = { + /** + * Extends an object + * + * @param {Object} target object to extend + * @param {Object} source object to take properties from + * @return {Object} extended object + */ + extend: function(target, source) { + target = target || {}; + for (var prop in source) { + // Go recursively + if (this.isObject(source[prop])) { + target[prop] = this.extend(target[prop], source[prop]) + } else { + target[prop] = source[prop] + } + } + return target; + } + + /** + * Checks if an object is a DOM element + * + * @param {Object} o HTML element or String + * @return {Boolean} returns true if object is a DOM element + */ +, isElement: function(o){ + return ( + o instanceof HTMLElement || o instanceof SVGElement || o instanceof SVGSVGElement || //DOM2 + (o && typeof o === 'object' && o !== null && o.nodeType === 1 && typeof o.nodeName === 'string') + ); + } + + /** + * Checks if an object is an Object + * + * @param {Object} o Object + * @return {Boolean} returns true if object is an Object + */ +, isObject: function(o){ + return Object.prototype.toString.call(o) === '[object Object]'; + } + + /** + * Checks if variable is Number + * + * @param {Integer|Float} n + * @return {Boolean} returns true if variable is Number + */ +, isNumber: function(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + } + + /** + * Search for an SVG element + * + * @param {Object|String} elementOrSelector DOM Element or selector String + * @return {Object|Null} SVG or null + */ +, getSvg: function(elementOrSelector) { + var element + , svg; + + if (!this.isElement(elementOrSelector)) { + // If selector provided + if (typeof elementOrSelector === 'string' || elementOrSelector instanceof String) { + // Try to find the element + element = document.querySelector(elementOrSelector) + + if (!element) { + throw new Error('Provided selector did not find any elements. Selector: ' + elementOrSelector) + return null + } + } else { + throw new Error('Provided selector is not an HTML object nor String') + return null + } + } else { + element = elementOrSelector + } + + if (element.tagName.toLowerCase() === 'svg') { + svg = element; + } else { + if (element.tagName.toLowerCase() === 'object') { + svg = element.contentDocument.documentElement; + } else { + if (element.tagName.toLowerCase() === 'embed') { + svg = element.getSVGDocument().documentElement; + } else { + if (element.tagName.toLowerCase() === 'img') { + throw new Error('Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.'); + } else { + throw new Error('Cannot get SVG.'); + } + return null + } + } + } + + return svg + } + + /** + * Attach a given context to a function + * @param {Function} fn Function + * @param {Object} context Context + * @return {Function} Function with certain context + */ +, proxy: function(fn, context) { + return function() { + return fn.apply(context, arguments) + } + } + + /** + * Returns object type + * Uses toString that returns [object SVGPoint] + * And than parses object type from string + * + * @param {Object} o Any object + * @return {String} Object type + */ +, getType: function(o) { + return Object.prototype.toString.apply(o).replace(/^\[object\s/, '').replace(/\]$/, '') + } + + /** + * If it is a touch event than add clientX and clientY to event object + * + * @param {Event} evt + * @param {SVGSVGElement} svg + */ +, mouseAndTouchNormalize: function(evt, svg) { + // If no clientX then fallback + if (evt.clientX === void 0 || evt.clientX === null) { + // Fallback + evt.clientX = 0 + evt.clientY = 0 + + // If it is a touch event + if (evt.touches !== void 0 && evt.touches.length) { + if (evt.touches[0].clientX !== void 0) { + evt.clientX = evt.touches[0].clientX + evt.clientY = evt.touches[0].clientY + } else if (evt.touches[0].pageX !== void 0) { + var rect = svg.getBoundingClientRect(); + + evt.clientX = evt.touches[0].pageX - rect.left + evt.clientY = evt.touches[0].pageY - rect.top + } + // If it is a custom event + } else if (evt.originalEvent !== void 0) { + if (evt.originalEvent.clientX !== void 0) { + evt.clientX = evt.originalEvent.clientX + evt.clientY = evt.originalEvent.clientY + } + } + } + } + + /** + * Check if an event is a double click/tap + * TODO: For touch gestures use a library (hammer.js) that takes in account other events + * (touchmove and touchend). It should take in account tap duration and traveled distance + * + * @param {Event} evt + * @param {Event} prevEvt Previous Event + * @return {Boolean} + */ +, isDblClick: function(evt, prevEvt) { + // Double click detected by browser + if (evt.detail === 2) { + return true; + } + // Try to compare events + else if (prevEvt !== void 0 && prevEvt !== null) { + var timeStampDiff = evt.timeStamp - prevEvt.timeStamp // should be lower than 250 ms + , touchesDistance = Math.sqrt(Math.pow(evt.clientX - prevEvt.clientX, 2) + Math.pow(evt.clientY - prevEvt.clientY, 2)) + + return timeStampDiff < 250 && touchesDistance < 10 + } + + // Nothing found + return false; + } + + /** + * Returns current timestamp as an integer + * + * @return {Number} + */ +, now: Date.now || function() { + return new Date().getTime(); + } + + // From underscore. + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. Normally, the throttled function will run + // as much as it can, without ever going more than once per `wait` duration; + // but if you'd like to disable the execution on the leading edge, pass + // `{leading: false}`. To disable execution on the trailing edge, ditto. +// jscs:disable +// jshint ignore:start +, throttle: function(func, wait, options) { + var that = this; + var context, args, result; + var timeout = null; + var previous = 0; + if (!options) options = {}; + var later = function() { + previous = options.leading === false ? 0 : that.now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + return function() { + var now = that.now(); + if (!previous && options.leading === false) previous = now; + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + } +// jshint ignore:end +// jscs:enable + + /** + * Create a requestAnimationFrame simulation + * + * @param {Number|String} refreshRate + * @return {Function} + */ +, createRequestAnimationFrame: function(refreshRate) { + var timeout = null + + // Convert refreshRate to timeout + if (refreshRate !== 'auto' && refreshRate < 60 && refreshRate > 1) { + timeout = Math.floor(1000 / refreshRate) + } + + if (timeout === null) { + return window.requestAnimationFrame || requestTimeout(33) + } else { + return requestTimeout(timeout) + } + } +} + +/** + * Create a callback that will execute after a given timeout + * + * @param {Function} timeout + * @return {Function} + */ +function requestTimeout(timeout) { + return function(callback) { + window.setTimeout(callback, timeout) + } +} + +},{}]},{},[1]); + + +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,function(){return function(n){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}return a.m=n,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=204)}([function(t,e,qn){(function(Wn){var t;t=function(){"use strict";var t,a;function h(){return t.apply(null,arguments)}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function u(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function l(t){return void 0===t}function c(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function d(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var n,r=[];for(n=0;n>>0,r=0;rLt(t)?(i=t+1,s=o-Lt(t)):(i=t,s=o),{year:i,dayOfYear:s}}function zt(t,e,n){var r,a,i=It(t.year(),e,n),s=Math.floor((t.dayOfYear()-i-1)/7)+1;return s<1?r=s+Wt(a=t.year()-1,e,n):s>Wt(t.year(),e,n)?(r=s-Wt(t.year(),e,n),a=t.year()+1):(a=t.year(),r=s),{week:r,year:a}}function Wt(t,e,n){var r=It(t,e,n),a=It(t+1,e,n);return(Lt(t)-r+a)/7}z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),j("week","w"),j("isoWeek","W"),H("week",5),H("isoWeek",5),ut("w",Z),ut("ww",Z,V),ut("W",Z),ut("WW",Z,V),ft(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=w(t)});z("d",0,"do","day"),z("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),z("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),z("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),j("day","d"),j("weekday","e"),j("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),ut("d",Z),ut("e",Z),ut("E",Z),ut("dd",function(t,e){return e.weekdaysMinRegex(t)}),ut("ddd",function(t,e){return e.weekdaysShortRegex(t)}),ut("dddd",function(t,e){return e.weekdaysRegex(t)}),ft(["dd","ddd","dddd"],function(t,e,n,r){var a=n._locale.weekdaysParse(t,r,n._strict);null!=a?e.d=a:y(n).invalidWeekday=t}),ft(["d","e","E"],function(t,e,n,r){e[r]=w(t)});var qt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ut="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Vt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $t=st;var Gt=st;var Jt=st;function Zt(){function t(t,e){return e.length-t.length}var e,n,r,a,i,s=[],o=[],u=[],l=[];for(e=0;e<7;e++)n=m([2e3,1]).day(e),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),s.push(r),o.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(s.sort(t),o.sort(t),u.sort(t),l.sort(t),e=0;e<7;e++)o[e]=ct(o[e]),u[e]=ct(u[e]),l[e]=ct(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Kt(){return this.hours()%12||12}function Xt(t,e){z(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Qt(t,e){return e._meridiemParse}z("H",["HH",2],0,"hour"),z("h",["hh",2],0,Kt),z("k",["kk",2],0,function(){return this.hours()||24}),z("hmm",0,0,function(){return""+Kt.apply(this)+P(this.minutes(),2)}),z("hmmss",0,0,function(){return""+Kt.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)}),z("Hmm",0,0,function(){return""+this.hours()+P(this.minutes(),2)}),z("Hmmss",0,0,function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)}),Xt("a",!0),Xt("A",!1),j("hour","h"),H("hour",13),ut("a",Qt),ut("A",Qt),ut("H",Z),ut("h",Z),ut("k",Z),ut("HH",Z,V),ut("hh",Z,V),ut("kk",Z,V),ut("hmm",K),ut("hmmss",X),ut("Hmm",K),ut("Hmmss",X),ht(["H","HH"],yt),ht(["k","kk"],function(t,e,n){var r=w(t);e[yt]=24===r?0:r}),ht(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),ht(["h","hh"],function(t,e,n){e[yt]=w(t),y(n).bigHour=!0}),ht("hmm",function(t,e,n){var r=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r)),y(n).bigHour=!0}),ht("hmmss",function(t,e,n){var r=t.length-4,a=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r,2)),e[vt]=w(t.substr(a)),y(n).bigHour=!0}),ht("Hmm",function(t,e,n){var r=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r))}),ht("Hmmss",function(t,e,n){var r=t.length-4,a=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r,2)),e[vt]=w(t.substr(a))});var te,ee=Yt("Hours",!0),ne={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:jt,monthsShort:Ct,week:{dow:0,doy:6},weekdays:qt,weekdaysMin:Vt,weekdaysShort:Ut,meridiemParse:/[ap]\.?m?\.?/i},re={},ae={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function se(t){var e=null;if(!re[t]&&void 0!==Wn&&Wn&&Wn.exports)try{e=te._abbr;qn(207)("./"+t),oe(e)}catch(t){}return re[t]}function oe(t,e){var n;return t&&(n=l(e)?le(t):ue(t,e))&&(te=n),te._abbr}function ue(t,e){if(null!==e){var n=ne;if(e.abbr=t,null!=re[t])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=re[t]._config;else if(null!=e.parentLocale){if(null==re[e.parentLocale])return ae[e.parentLocale]||(ae[e.parentLocale]=[]),ae[e.parentLocale].push({name:t,config:e}),null;n=re[e.parentLocale]._config}return re[t]=new S(A(n,e)),ae[t]&&ae[t].forEach(function(t){ue(t.name,t.config)}),oe(t),re[t]}return delete re[t],null}function le(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return te;if(!o(t)){if(e=se(t))return e;t=[t]}return function(t){for(var e,n,r,a,i=0;i=e&&s(a,n,!0)>=e-1)break;e--}i++}return null}(t)}function ce(t){var e,n=t._a;return n&&-2===y(t).overflow&&(e=n[pt]<0||11St(n[_t],n[pt])?mt:n[yt]<0||24Wt(n,i,s)?y(t)._overflowWeeks=!0:null!=u?y(t)._overflowWeekday=!0:(o=Rt(n,r,a,i,s),t._a[_t]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(i=de(t._a[_t],r[_t]),(t._dayOfYear>Lt(i)||0===t._dayOfYear)&&(y(t)._overflowDayOfYear=!0),n=Nt(i,0,t._dayOfYear),t._a[pt]=n.getUTCMonth(),t._a[mt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=r[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[yt]&&0===t._a[gt]&&0===t._a[vt]&&0===t._a[Mt]&&(t._nextDay=!0,t._a[yt]=0),t._d=(t._useUTC?Nt:function(t,e,n,r,a,i,s){var o=new Date(t,e,n,r,a,i,s);return t<100&&0<=t&&isFinite(o.getFullYear())&&o.setFullYear(t),o}).apply(null,s),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[yt]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(y(t).weekdayMismatch=!0)}}var fe=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,pe=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ye=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ge=/^\/?Date\((\-?\d+)/i;function ve(t){var e,n,r,a,i,s,o=t._i,u=fe.exec(o)||_e.exec(o);if(u){for(y(t).iso=!0,e=0,n=me.length;en.valueOf():n.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Ie,ln.isUTC=Ie,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Ot),ln.years=n("years accessor is deprecated. Use year instead",Dt),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var t={};if(M(t,this),(t=xe(t))._a){var e=t._isUTC?m(t._a):Ye(t._a);this._isDSTShifted=this.isValid()&&0Y.width){var l=a.text();if(a.text(""),l){var c,d;if(-1!==l.indexOf(" "))c=" ",d=l.split(" ");else{c="";var h,f,_=l.length,p=Math.ceil(s/Y.width),m=Math.floor(_/p);_<=m*p||p++,d=[];for(var y=0;yY.width&&w&&""!==w&&(k={string:w,width:x,offset:M+=x},v.push(k),a.text(""),a.text(L),y===d.length-1&&(b=L,a.text(b),D=n.getComputedTextLength())),y===d.length-1){a.text("");b&&""!==b&&(0>>1,Os=[["ary",vs],["bind",hs],["bindKey",fs],["curry",ps],["curryRight",ms],["flip",ks],["partial",ys],["partialRight",gs],["rearg",Ms]],Hs="[object Arguments]",Ps="[object Array]",Bs="[object AsyncFunction]",Ns="[object Boolean]",Is="[object Date]",Rs="[object DOMException]",zs="[object Error]",Ws="[object Function]",qs="[object GeneratorFunction]",Us="[object Map]",Vs="[object Number]",$s="[object Null]",Gs="[object Object]",Js="[object Promise]",Zs="[object Proxy]",Ks="[object RegExp]",Xs="[object Set]",Qs="[object String]",to="[object Symbol]",eo="[object Undefined]",no="[object WeakMap]",ro="[object WeakSet]",ao="[object ArrayBuffer]",io="[object DataView]",so="[object Float32Array]",oo="[object Float64Array]",uo="[object Int8Array]",lo="[object Int16Array]",co="[object Int32Array]",ho="[object Uint8Array]",fo="[object Uint8ClampedArray]",_o="[object Uint16Array]",po="[object Uint32Array]",mo=/\b__p \+= '';/g,yo=/\b(__p \+=) '' \+/g,go=/(__e\(.*?\)|\b__t\)) \+\n'';/g,vo=/&(?:amp|lt|gt|quot|#39);/g,Mo=/[&<>"']/g,ko=RegExp(vo.source),bo=RegExp(Mo.source),Lo=/<%-([\s\S]+?)%>/g,wo=/<%([\s\S]+?)%>/g,xo=/<%=([\s\S]+?)%>/g,Do=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yo=/^\w*$/,To=/^\./,Ao=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,So=/[\\^$.*+?()[\]{}|]/g,Eo=RegExp(So.source),jo=/^\s+|\s+$/g,Co=/^\s+/,Fo=/\s+$/,Oo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ho=/\{\n\/\* \[wrapped with (.+)\] \*/,Po=/,? & /,Bo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,No=/\\(\\)?/g,Io=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ro=/\w*$/,zo=/^[-+]0x[0-9a-f]+$/i,Wo=/^0b[01]+$/i,qo=/^\[object .+?Constructor\]$/,Uo=/^0o[0-7]+$/i,Vo=/^(?:0|[1-9]\d*)$/,$o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Go=/($^)/,Jo=/['\n\r\u2028\u2029\\]/g,t="\\ud800-\\udfff",e="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",n="\\u2700-\\u27bf",r="a-z\\xdf-\\xf6\\xf8-\\xff",a="A-Z\\xc0-\\xd6\\xd8-\\xde",i="\\ufe0e\\ufe0f",s="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",o="['’]",u="["+t+"]",l="["+s+"]",c="["+e+"]",d="\\d+",h="["+n+"]",f="["+r+"]",_="[^"+t+s+d+n+r+a+"]",p="\\ud83c[\\udffb-\\udfff]",m="[^"+t+"]",y="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",v="["+a+"]",M="\\u200d",k="(?:"+f+"|"+_+")",b="(?:"+v+"|"+_+")",L="(?:['’](?:d|ll|m|re|s|t|ve))?",w="(?:['’](?:D|LL|M|RE|S|T|VE))?",x="(?:"+c+"|"+p+")"+"?",D="["+i+"]?",Y=D+x+("(?:"+M+"(?:"+[m,y,g].join("|")+")"+D+x+")*"),T="(?:"+[h,y,g].join("|")+")"+Y,A="(?:"+[m+c+"?",c,y,g,u].join("|")+")",Zo=RegExp(o,"g"),Ko=RegExp(c,"g"),S=RegExp(p+"(?="+p+")|"+A+Y,"g"),Xo=RegExp([v+"?"+f+"+"+L+"(?="+[l,v,"$"].join("|")+")",b+"+"+w+"(?="+[l,v+k,"$"].join("|")+")",v+"?"+k+"+"+L,v+"+"+w,"\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",d,T].join("|"),"g"),E=RegExp("["+M+t+e+i+"]"),Qo=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eu=-1,nu={};nu[so]=nu[oo]=nu[uo]=nu[lo]=nu[co]=nu[ho]=nu[fo]=nu[_o]=nu[po]=!0,nu[Hs]=nu[Ps]=nu[ao]=nu[Ns]=nu[io]=nu[Is]=nu[zs]=nu[Ws]=nu[Us]=nu[Vs]=nu[Gs]=nu[Ks]=nu[Xs]=nu[Qs]=nu[no]=!1;var ru={};ru[Hs]=ru[Ps]=ru[ao]=ru[io]=ru[Ns]=ru[Is]=ru[so]=ru[oo]=ru[uo]=ru[lo]=ru[co]=ru[Us]=ru[Vs]=ru[Gs]=ru[Ks]=ru[Xs]=ru[Qs]=ru[to]=ru[ho]=ru[fo]=ru[_o]=ru[po]=!0,ru[zs]=ru[Ws]=ru[no]=!1;var j={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},au=parseFloat,iu=parseInt,C="object"==typeof R&&R&&R.Object===Object&&R,F="object"==typeof self&&self&&self.Object===Object&&self,su=C||F||Function("return this")(),O="object"==typeof W&&W&&!W.nodeType&&W,H=O&&"object"==typeof z&&z&&!z.nodeType&&z,ou=H&&H.exports===O,P=ou&&C.process,B=function(){try{return P&&P.binding&&P.binding("util")}catch(t){}}(),uu=B&&B.isArrayBuffer,lu=B&&B.isDate,cu=B&&B.isMap,du=B&&B.isRegExp,hu=B&&B.isSet,fu=B&&B.isTypedArray;function _u(t,e){return t.set(e[0],e[1]),t}function pu(t,e){return t.add(e),t}function mu(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function yu(t,e,n,r){for(var a=-1,i=null==t?0:t.length;++a":">",'"':""","'":"'"});function Vu(t){return"\\"+j[t]}function $u(t){return E.test(t)}function Gu(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function Ju(e,n){return function(t){return e(n(t))}}function Zu(t,e){for(var n=-1,r=t.length,a=0,i=[];++n",""":'"',"'":"'"});var el=function t(e){var n,T=(e=null==e?su:el.defaults(su.Object(),e,el.pick(su,tu))).Array,r=e.Date,a=e.Error,m=e.Function,i=e.Math,w=e.Object,y=e.RegExp,c=e.String,A=e.TypeError,s=T.prototype,o=m.prototype,u=w.prototype,l=e["__core-js_shared__"],d=o.toString,x=u.hasOwnProperty,h=0,f=(n=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",_=u.toString,p=d.call(w),g=su._,v=y("^"+d.call(x).replace(So,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),M=ou?e.Buffer:ts,k=e.Symbol,b=e.Uint8Array,L=M?M.allocUnsafe:ts,D=Ju(w.getPrototypeOf,w),Y=w.create,S=u.propertyIsEnumerable,E=s.splice,j=k?k.isConcatSpreadable:ts,C=k?k.iterator:ts,F=k?k.toStringTag:ts,O=function(){try{var t=In(w,"defineProperty");return t({},"",{}),t}catch(t){}}(),H=e.clearTimeout!==su.clearTimeout&&e.clearTimeout,P=r&&r.now!==su.Date.now&&r.now,B=e.setTimeout!==su.setTimeout&&e.setTimeout,N=i.ceil,I=i.floor,R=w.getOwnPropertySymbols,z=M?M.isBuffer:ts,W=e.isFinite,q=s.join,U=Ju(w.keys,w),V=i.max,$=i.min,G=r.now,J=e.parseInt,Z=i.random,K=s.reverse,X=In(e,"DataView"),Q=In(e,"Map"),tt=In(e,"Promise"),et=In(e,"Set"),nt=In(e,"WeakMap"),rt=In(w,"create"),at=nt&&new nt,it={},st=fr(X),ot=fr(Q),ut=fr(tt),lt=fr(et),ct=fr(nt),dt=k?k.prototype:ts,ht=dt?dt.valueOf:ts,ft=dt?dt.toString:ts;function _t(t){if(Sa(t)&&!va(t)&&!(t instanceof gt)){if(t instanceof yt)return t;if(x.call(t,"__wrapped__"))return _r(t)}return new yt(t)}var pt=function(){function n(){}return function(t){if(!Aa(t))return{};if(Y)return Y(t);n.prototype=t;var e=new n;return n.prototype=ts,e}}();function mt(){}function yt(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=ts}function gt(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=js,this.__views__=[]}function vt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=es&&(i=Ru,s=!1,e=new bt(e));t:for(;++a>>0,e>>>=0;for(var i=T(a);++r>>1,s=t[i];null!==s&&!Pa(s)&&(n?s<=e:s=ws)return arguments[0]}else r=0;return n.apply(ts,arguments)}}function ur(t,e){var n=-1,r=t.length,a=r-1;for(e=e===ts?r:e;++n>>0)?(t=$a(t))&&("string"==typeof e||null!=e&&!Fa(e))&&!(e=Pe(e))&&$u(t)?Je(Qu(t),0,n):t.split(e,n):[]},_t.spread=function(r,a){if("function"!=typeof r)throw new A(rs);return a=null==a?0:V(Wa(a),0),we(function(t){var e=t[a],n=Je(t,0,a);return e&&xu(n,e),mu(r,this,n)})},_t.tail=function(t){var e=null==t?0:t.length;return e?Ee(t,1,e):[]},_t.take=function(t,e,n){return t&&t.length?Ee(t,0,(e=n||e===ts?1:Wa(e))<0?0:e):[]},_t.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?Ee(t,(e=r-(e=n||e===ts?1:Wa(e)))<0?0:e,r):[]},_t.takeRightWhile=function(t,e){return t&&t.length?Re(t,Pn(e,3),!1,!0):[]},_t.takeWhile=function(t,e){return t&&t.length?Re(t,Pn(e,3)):[]},_t.tap=function(t,e){return e(t),t},_t.throttle=function(t,e,n){var r=!0,a=!0;if("function"!=typeof t)throw new A(rs);return Aa(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),sa(t,e,{leading:r,maxWait:e,trailing:a})},_t.thru=zr,_t.toArray=Ra,_t.toPairs=fi,_t.toPairsIn=_i,_t.toPath=function(t){return va(t)?wu(t,hr):Pa(t)?[t]:rn(dr($a(t)))},_t.toPlainObject=Va,_t.transform=function(t,r,a){var e=va(t),n=e||La(t)||Ba(t);if(r=Pn(r,4),null==a){var i=t&&t.constructor;a=n?e?new i:[]:Aa(t)&&Da(i)?pt(D(t)):{}}return(n?gu:Gt)(t,function(t,e,n){return r(a,t,e,n)}),a},_t.unary=function(t){return na(t,1)},_t.union=Sr,_t.unionBy=Er,_t.unionWith=jr,_t.uniq=function(t){return t&&t.length?Be(t):[]},_t.uniqBy=function(t,e){return t&&t.length?Be(t,Pn(e,2)):[]},_t.uniqWith=function(t,e){return e="function"==typeof e?e:ts,t&&t.length?Be(t,ts,e):[]},_t.unset=function(t,e){return null==t||Ne(t,e)},_t.unzip=Cr,_t.unzipWith=Fr,_t.update=function(t,e,n){return null==t?t:Ie(t,e,Ve(n))},_t.updateWith=function(t,e,n,r){return r="function"==typeof r?r:ts,null==t?t:Ie(t,e,Ve(n),r)},_t.values=pi,_t.valuesIn=function(t){return null==t?[]:Iu(t,oi(t))},_t.without=Or,_t.words=Di,_t.wrap=function(t,e){return ha(Ve(e),t)},_t.xor=Hr,_t.xorBy=Pr,_t.xorWith=Br,_t.zip=Nr,_t.zipObject=function(t,e){return qe(t||[],e||[],At)},_t.zipObjectDeep=function(t,e){return qe(t||[],e||[],Ye)},_t.zipWith=Ir,_t.entries=fi,_t.entriesIn=_i,_t.extend=Ja,_t.extendWith=Za,Hi(_t,_t),_t.add=Vi,_t.attempt=Yi,_t.camelCase=mi,_t.capitalize=yi,_t.ceil=$i,_t.clamp=function(t,e,n){return n===ts&&(n=e,e=ts),n!==ts&&(n=(n=Ua(n))==n?n:0),e!==ts&&(e=(e=Ua(e))==e?e:0),Ot(Ua(t),e,n)},_t.clone=function(t){return Ht(t,ls)},_t.cloneDeep=function(t){return Ht(t,os|ls)},_t.cloneDeepWith=function(t,e){return Ht(t,os|ls,e="function"==typeof e?e:ts)},_t.cloneWith=function(t,e){return Ht(t,ls,e="function"==typeof e?e:ts)},_t.conformsTo=function(t,e){return null==e||Pt(t,e,si(e))},_t.deburr=gi,_t.defaultTo=function(t,e){return null==t||t!=t?e:t},_t.divide=Gi,_t.endsWith=function(t,e,n){t=$a(t),e=Pe(e);var r=t.length,a=n=n===ts?r:Ot(Wa(n),0,r);return 0<=(n-=e.length)&&t.slice(n,a)==e},_t.eq=pa,_t.escape=function(t){return(t=$a(t))&&bo.test(t)?t.replace(Mo,Uu):t},_t.escapeRegExp=function(t){return(t=$a(t))&&Eo.test(t)?t.replace(So,"\\$&"):t},_t.every=function(t,e,n){var r=va(t)?Mu:zt;return n&&Gn(t,e,n)&&(e=ts),r(t,Pn(e,3))},_t.find=Ur,_t.findIndex=gr,_t.findKey=function(t,e){return Au(t,Pn(e,3),Gt)},_t.findLast=Vr,_t.findLastIndex=vr,_t.findLastKey=function(t,e){return Au(t,Pn(e,3),Jt)},_t.floor=Ji,_t.forEach=$r,_t.forEachRight=Gr,_t.forIn=function(t,e){return null==t?t:Vt(t,Pn(e,3),oi)},_t.forInRight=function(t,e){return null==t?t:$t(t,Pn(e,3),oi)},_t.forOwn=function(t,e){return t&&Gt(t,Pn(e,3))},_t.forOwnRight=function(t,e){return t&&Jt(t,Pn(e,3))},_t.get=ei,_t.gt=ma,_t.gte=ya,_t.has=function(t,e){return null!=t&&qn(t,e,ee)},_t.hasIn=ni,_t.head=kr,_t.identity=ji,_t.includes=function(t,e,n,r){t=ka(t)?t:pi(t),n=n&&!r?Wa(n):0;var a=t.length;return n<0&&(n=V(a+n,0)),Ha(t)?n<=a&&-1=$(a=e,i=n)&&r=this.__values__.length;return{done:t,value:t?ts:this.__values__[this.__index__++]}},_t.prototype.plant=function(t){for(var e,n=this;n instanceof mt;){var r=_r(n);r.__index__=0,r.__values__=ts,e?a.__wrapped__=r:e=r;var a=r;n=n.__wrapped__}return a.__wrapped__=t,e},_t.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof gt){var e=t;return this.__actions__.length&&(e=new gt(this)),(e=e.reverse()).__actions__.push({func:zr,args:[Ar],thisArg:ts}),new yt(e,this.__chain__)}return this.thru(Ar)},_t.prototype.toJSON=_t.prototype.valueOf=_t.prototype.value=function(){return ze(this.__wrapped__,this.__actions__)},_t.prototype.first=_t.prototype.head,C&&(_t.prototype[C]=function(){return this}),_t}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(su._=el,define(function(){return el})):H?((H.exports=el)._=el,O._=el):su._=el}).call(this)}).call(W,e(18),e(3)(t))},function(t,e,n){var r=n(179),a=n(240),i=n(13);t.exports=function(t){return i(t)?r(t):a(t)}},function(t,e,n){var r=n(5).Symbol;t.exports=r},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(269),a=n(270),i=n(271),s=n(272),o=n(273);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e>>1;i(t[a],e)<0?n=a+1:r=a}return n},right:function(t,e,n,r){for(arguments.length<3&&(n=0),arguments.length<4&&(r=t.length);n>>1;0e;)a.push(r/i);else for(;(r=t+n*++s)=_.length)return h?h.call(f,t):d?t.sort(d):t;for(var e,a,i,s,o=-1,u=t.length,l=_[r++],c=new g;++o=_.length)return t;var a=[],i=e[r++];return t.forEach(function(t,e){a.push({key:t,values:n(e,r)})}),i?a.sort(function(t,e){return i(t.key,e.key)}):a}(p(F.map,t,0),0)},f.key=function(t){return _.push(t),f},f.sortKeys=function(t){return e[_.length-1]=t,f},f.sortValues=function(t){return d=t,f},f.rollup=function(t){return h=t,f},f},F.set=function(t){var e=new D;if(t)for(var n=0,r=t.length;n>16,t>>8&255,255&t)}function se(t){return ie(t)+""}Xt.brighter=function(t){return new $t(Math.min(100,this.l+Gt*(arguments.length?t:1)),this.a,this.b)},Xt.darker=function(t){return new $t(Math.max(0,this.l-Gt*(arguments.length?t:1)),this.a,this.b)},Xt.rgb=function(){return Qt(this.l,this.a,this.b)};var oe=(F.rgb=ae).prototype=new It;function ue(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function le(t,e,n){var r,a,i,s=0,o=0,u=0;if(r=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(a=r[2].split(","),r[1]){case"hsl":return n(parseFloat(a[0]),parseFloat(a[1])/100,parseFloat(a[2])/100);case"rgb":return e(fe(a[0]),fe(a[1]),fe(a[2]))}return(i=_e.get(t))?e(i.r,i.g,i.b):(null==t||"#"!==t.charAt(0)||isNaN(i=parseInt(t.slice(1),16))||(4===t.length?(s=(3840&i)>>4,s|=s>>4,o=240&i,o|=o>>4,u=15&i,u|=u<<4):7===t.length&&(s=(16711680&i)>>16,o=(65280&i)>>8,u=255&i)),e(s,o,u))}function ce(t,e,n){var r,a,i=Math.min(t/=255,e/=255,n/=255),s=Math.max(t,e,n),o=s-i,u=(s+i)/2;return o?(a=u<.5?o/(s+i):o/(2-s-i),r=t==s?(e-n)/o+(e=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function De(){for(var t,e=ge,n=1/0;e;)e.c?(e.t=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Se=F.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(t,e){return(t=F.round(t,Ye(t,e))).toFixed(Math.max(0,Math.min(20,Ye(t*(1+1e-15),e))))}});function Ee(t){return t+""}var je=F.time={},Ce=Date;function Fe(){this._=new Date(1e));)i=u[a=(a+1)%u.length];return r.reverse().join(o)}:H,function(t){var e=Ae.exec(t),c=e[1]||" ",d=e[2]||">",h=e[3]||"-",n=e[4]||"",f=e[5],_=+e[6],p=e[7],m=e[8],y=e[9],g=1,v="",M="",k=!1,b=!0;switch(m&&(m=+m.substring(1)),(f||"0"===c&&"="===d)&&(f=c="0",d="="),y){case"n":p=!0,y="g";break;case"%":g=100,M="%",y="f";break;case"p":g=100,M="%",y="r";break;case"b":case"o":case"x":case"X":"#"===n&&(v="0"+y.toLowerCase());case"c":b=!1;case"d":k=!0,m=0;break;case"s":g=-1,y="r"}"$"===n&&(v=r[0],M=r[1]),"r"!=y||m||(y="g"),null!=m&&("g"==y?m=Math.max(1,Math.min(21,m)):"e"!=y&&"f"!=y||(m=Math.max(0,Math.min(20,m)))),y=Se.get(y)||Ee;var L=f&&p;return function(t){var e=M;if(k&&t%1)return"";var n=t<0||0===t&&1/t<0?(t=-t,"-"):"-"===h?"":h;if(g<0){var r=F.formatPrefix(t,m);t=r.scale(t),e=r.symbol+M}else t*=g;var a,i,s=(t=y(t,m)).lastIndexOf(".");if(s<0){var o=b?t.lastIndexOf("e"):-1;o<0?(a=t,i=""):(a=t.substring(0,o),i=t.substring(o))}else a=t.substring(0,s),i=w+t.substring(s+1);!f&&p&&(a=x(a,1/0));var u=v.length+a.length+i.length+(L?0:n.length),l=u<_?new Array(u=_-u+1).join(c):"";return L&&(a=x(l+a,l.length?_-i.length:1/0)),n+=v,t=a+i,("<"===d?n+t+l:">"===d?l+n+t:"^"===d?l.substring(0,u>>=1)+n+t+l.substring(u):n+(L?t:l+t))+e}}),timeFormat:function(t){var e=t.dateTime,n=t.date,r=t.time,a=t.periods,i=t.days,s=t.shortDays,o=t.months,u=t.shortMonths;function l(o){var u=o.length;function t(t){for(var e,n,r,a=[],i=-1,s=0;++iv(c,h)&&(h=t):v(t,h)>v(c,h)&&(c=t):c<=h?(tv(c,h)&&(h=t):v(t,h)>v(c,h)&&(c=t)}else y(t,e);p=n,_=t}function t(){m.point=s}function e(){l[0]=c,l[1]=h,m.point=y,p=null}function n(t,e){if(p){var n=t-_;i+=180bt&&(c=-(h=180)),l[0]=c,l[1]=h,p=null}function v(t,e){return(e-=t)<0?e+360:e}function M(t,e){return t[0]-e[0]}function k(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:tv(o[0],o[1])&&(o[1]=i[1]),v(i[0],o[1])>v(o[0],o[1])&&(o[0]=i[0])):n.push(o=i);for(var r,a,i,s=-1/0,o=(e=0,n[a=n.length-1]);e<=a;o=i,++e)i=n[e],(r=v(o[1],i[0]))>s&&(s=r,c=i[0],h=o[1])}return u=l=null,c===1/0||d===1/0?[[NaN,NaN],[NaN,NaN]]:[[c,d],[h,f]]}}(),F.geo.centroid=function(t){yn=gn=vn=Mn=kn=bn=Ln=wn=xn=Dn=Yn=0,F.geo.stream(t,Nn);var e=xn,n=Dn,r=Yn,a=e*e+n*n+r*r;return abt?Math.atan((Math.sin(r)*(o=Math.cos(i))*Math.sin(a)-Math.sin(i)*(s=Math.cos(r))*Math.sin(n))/(s*o*u)):(r+i)/2,d.point(p,_),d.lineEnd(),d.lineStart(),d.point(l,_),h=0),d.point(f=t,_=e),p=l},lineEnd:function(){d.lineEnd(),f=_=NaN},clean:function(){return 2-h}}},function(t,e,n,r){var a;if(null==t)a=n*Yt,r.point(-wt,a),r.point(0,a),r.point(wt,a),r.point(wt,0),r.point(wt,-a),r.point(0,-a),r.point(-wt,-a),r.point(-wt,0),r.point(-wt,a);else if(C(t[0]-e[0])>bt){var i=t[0]r&&0bt;return Zn(p,function(o){var u,l,c,d,h;return{lineStart:function(){d=c=!1,h=1},point:function(t,e){var n,r=[t,e],a=p(t,e),i=f?a?0:y(t,e):a?y(t+(t<0?wt:-wt),e):0;if(!u&&(d=c=a)&&o.lineStart(),a!==c&&(n=m(u,r),(Bn(u,n)||Bn(r,n))&&(r[0]+=bt,r[1]+=bt,a=p(r[0],r[1]))),a!==c)h=0,a?(o.lineStart(),n=m(r,u),o.point(n[0],n[1])):(n=m(u,r),o.point(n[0],n[1]),o.lineEnd()),u=n;else if(_&&u&&f^a){var s;i&l||!(s=m(r,u,!0))||(h=0,f?(o.lineStart(),o.point(s[0][0],s[0][1]),o.point(s[1][0],s[1][1]),o.lineEnd()):(o.point(s[1][0],s[1][1]),o.lineEnd(),o.lineStart(),o.point(s[0][0],s[0][1])))}!a||u&&Bn(u,r)||o.point(r[0],r[1]),u=r,c=a,l=i},lineEnd:function(){c&&o.lineEnd(),u=null},clean:function(){return h|(d&&c)<<1}}},Fr(a,6*Tt),f?[0,-a]:[-wt,a-wt]);function p(t,e){return Math.cos(t)*Math.cos(e)>D}function m(t,e,n){var r=[1,0,0],a=Cn(En(t),En(e)),i=jn(a,a),s=a[0],o=i-s*s;if(!o)return!n&&t;var u=D*i/o,l=-D*s/o,c=Cn(r,a),d=On(r,u);Fn(d,On(a,l));var h=c,f=jn(d,h),_=jn(h,h),p=f*f-_*(jn(d,d)-1);if(!(p<0)){var m=Math.sqrt(p),y=On(h,(-f-m)/_);if(Fn(y,d),y=Pn(y),!n)return y;var g,v=t[0],M=e[0],k=t[1],b=e[1];Mbt}).map(l)).concat(F.range(Math.ceil(s/_)*_,i,_).filter(function(t){return C(t%m)>bt}).map(c))}return g.lines=function(){return t().map(function(t){return{type:"LineString",coordinates:t}})},g.outline=function(){return{type:"Polygon",coordinates:[d(a).concat(h(o).slice(1),d(r).reverse().slice(1),h(u).reverse().slice(1))]}},g.extent=function(t){return arguments.length?g.majorExtent(t).minorExtent(t):g.minorExtent()},g.majorExtent=function(t){return arguments.length?(a=+t[0][0],r=+t[1][0],u=+t[0][1],o=+t[1][1],r=l)return}else i={x:m,y:u};n={x:m,y:l}}else{if(i){if(i.y=l)return}else i={x:(u-a)/r,y:u};n={x:(l-a)/r,y:l}}else{if(i){if(i.y=o)return}else i={x:s,y:r*s+a};n={x:o,y:r*o+a}}else{if(i){if(i.xbt||C(a-n)>bt)&&(o.splice(s,0,new Ya((y=i.site,g=c,v=C(r-d)=s&&r.x<=u&&r.y>=o&&r.y<=l?[[s,l],[u,l],[u,o],[s,o]]:[]).point=a[e]}),i}function d(t){return t.map(function(t,e){return{x:Math.round(r(t,e)/bt)*bt,y:Math.round(a(t,e)/bt)*bt,i:e}})}return i.links=function(e){return Ca(d(e)).edges.filter(function(t){return t.l&&t.r}).map(function(t){return{source:e[t.l.i],target:e[t.r.i]}})},i.triangles=function(h){var f=[];return Ca(d(h)).cells.forEach(function(t,e){for(var n,r,a,i,s=t.site,o=t.edges.sort(Ma),u=-1,l=o.length,c=o[l-1].edge,d=c.l===s?c.r:c.l;++ui&&(a=r.slice(i,a),o[s]?o[s]+=a:o[++s]=a),(e=e[0])===(n=n[0])?o[s]?o[s]+=n:o[++s]=n:(o[++s]=null,u.push({i:s,x:Ia(e,n)})),i=Wa.lastIndex;return iu&&(u=e.x),e.y>l&&(l=e.y),n.push(e.x),r.push(e.y);else for(a=0;aa&&(r=n,a=e);return r}function Bi(t){return t.reduce(Ni,0)}function Ni(t,e){return t+e[1]}function Ii(t,e){return Ri(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ri(t,e){for(var n=-1,r=+t[0],a=(t[1]-r)/e,i=[];++n<=e;)i[n]=a*n+r;return i}function zi(t){return[F.min(t),F.max(t)]}function Wi(t,e){return t.value-e.value}function qi(t,e){var n=t._pack_next;(t._pack_next=e)._pack_prev=t,(e._pack_next=n)._pack_prev=e}function Ui(t,e){(t._pack_next=e)._pack_prev=t}function Vi(t,e){var n=e.x-t.x,r=e.y-t.y,a=t.r+e.r;return n*n+r*r<.999*a*a}function $i(t){if((e=t.children)&&(u=e.length)){var e,n,r,a,i,s,o,u,l=1/0,c=-1/0,d=1/0,h=-1/0;if(e.forEach(Gi),(n=e[0]).x=-n.r,n.y=0,v(n),1=s[0]&&r<=s[1]&&((n=a[F.bisect(o,r,1,l)-1]).y+=c,n.push(t[e]));return a}return n.value=function(t){return arguments.length?(h=t,n):h},n.range=function(t){return arguments.length?(f=pe(t),n):f},n.bins=function(e){return arguments.length?(_="number"==typeof e?function(t){return Ri(t,e)}:pe(e),n):_},n.frequency=function(t){return arguments.length?(d=!!t,n):d},n},F.layout.pack=function(){var u,l=F.layout.hierarchy().sort(Wi),c=0,d=[1,1];function e(t,e){var n=l.call(this,t,e),r=n[0],a=d[0],i=d[1],s=null==u?Math.sqrt:"function"==typeof u?u:function(){return u};if(r.x=r.y=0,wi(r,function(t){t.r=+s(t.value)}),wi(r,$i),c){var o=c*(u?1:Math.max(2*r.r/a,2*r.r/i))/2;wi(r,function(t){t.r+=o}),wi(r,$i),wi(r,function(t){t.r-=o})}return function t(e,n,r,a){var i=e.children;e.x=n+=a*e.x;e.y=r+=a*e.y;e.r*=a;if(i)for(var s=-1,o=i.length;++ss.x&&(s=t),t.depth>o.depth&&(o=t)});var u=p(i,s)/2-i.x,l=h[0]/(s.x+p(s,i)/2+u),c=h[1]/(o.depth||1);Li(r,function(t){t.x=(t.x+u)*l,t.y=t.depth*c})}return n}function _(t){var e=t.children,n=t.parent.children,r=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,n=0,r=0,a=t.children,i=a.length;for(;0<=--i;)(e=a[i]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;r?(t.z=r.z+p(t._,r._),t.m=t.z-a):t.z=a}else r&&(t.z=r.z+p(t._,r._));t.parent.A=function(t,e,n){if(e){for(var r,a=t,i=t,s=e,o=a.parent.children[0],u=a.m,l=i.m,c=s.m,d=o.m;s=Qi(s),a=Xi(a),s&&a;)o=Xi(o),(i=Qi(i)).a=t,0<(r=s.z+c-a.z-u+p(s._,a._))&&(ts((f=t,_=n,(h=s).a.parent===f.parent?h.a:_),t,r),u+=r,l+=r),c+=s.m,u+=a.m,d+=o.m,l+=i.m;s&&!Qi(i)&&(i.t=s,i.m+=c-l),a&&!Xi(o)&&(o.t=a,o.m+=u-d,n=t)}var h,f,_;return n}(t,r,t.parent.A||n[0])}function m(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function y(t){t.x*=h[0],t.y=t.depth*h[1]}return e.separation=function(t){return arguments.length?(p=t,e):p},e.size=function(t){return arguments.length?(f=null==(h=t)?y:null,e):f?null:h},e.nodeSize=function(t){return arguments.length?(f=null==(h=t)?null:y,e):f?h:null},bi(e,d)},F.layout.cluster=function(){var c=F.layout.hierarchy().sort(null).value(null),d=Ki,h=[1,1],f=!1;function e(t,e){var a,n=c.call(this,t,e),r=n[0],i=0;wi(r,function(t){var e,n,r=t.children;r&&r.length?(t.x=(n=r).reduce(function(t,e){return t+e.x},0)/n.length,t.y=(e=r,1+F.max(e,function(t){return t.y}))):(t.x=a?i+=d(t,a):0,t.y=0,a=t)});var s=function t(e){var n=e.children;return n&&n.length?t(n[0]):e}(r),o=function t(e){var n,r=e.children;return r&&(n=r.length)?t(r[n-1]):e}(r),u=s.x-d(s,o)/2,l=o.x+d(o,s)/2;return wi(r,f?function(t){t.x=(t.x-r.x)*h[0],t.y=(r.y-t.y)*h[1]}:function(t){t.x=(t.x-u)/(l-u)*h[0],t.y=(1-(r.y?t.y/r.y:1))*h[1]}),n}return e.separation=function(t){return arguments.length?(d=t,e):d},e.size=function(t){return arguments.length?(f=null==(h=t),e):f?null:h},e.nodeSize=function(t){return arguments.length?(f=null!=(h=t),e):f?h:null},bi(e,c)},F.layout.treemap=function(){var r,a=F.layout.hierarchy(),c=Math.round,i=[1,1],s=null,d=es,o=!1,h="squarify",u=.5*(1+Math.sqrt(5));function f(t,e){for(var n,r,a=-1,i=t.length;++an.dy)&&(l=n.dy);++in.dx)&&(l=n.dx);++ir;i--);e=e.slice(a,i)}return e};a.tickFormat=function(t,n){if(!arguments.length)return ys;arguments.length<2?n=ys:"function"!=typeof n&&(n=F.format(n));var r=Math.max(1,u*t/a.ticks().length);return function(t){var e=t/h(Math.round(d(t)));return e*urect,.s>rect").attr("width",L[1]-L[0])}function S(t){t.select(".extent").attr("y",w[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",w[1]-w[0])}function o(){var d,n,r=this,t=F.select(F.event.target),a=M.of(r,arguments),i=F.select(r),e=t.datum(),s=!/^(n|s)$/.test(e)&&k,o=!/^(e|w)$/.test(e)&&b,h=t.classed("extent"),u=gt(r),f=F.mouse(r),l=F.select(O(r)).on("keydown.brush",function(){32==F.event.keyCode&&(h||(d=null,f[0]-=L[1],f[1]-=w[1],h=2),P())}).on("keyup.brush",function(){32==F.event.keyCode&&2==h&&(f[0]+=L[1],f[1]+=w[1],h=0,P())});if(F.event.changedTouches?l.on("touchmove.brush",p).on("touchend.brush",y):l.on("mousemove.brush",p).on("mouseup.brush",y),i.interrupt().selectAll("*").interrupt(),h)f[0]=L[0]-f[0],f[1]=w[0]-f[1];else if(e){var c=+/w$/.test(e),_=+/^n/.test(e);n=[L[1-c]-f[0],w[1-_]-f[1]],f[0]=L[c],f[1]=w[_]}else F.event.altKey&&(d=f.slice());function p(){var t=F.mouse(r),e=!1;n&&(t[0]+=n[0],t[1]+=n[1]),h||(F.event.altKey?(d||(d=[(L[0]+L[1])/2,(w[0]+w[1])/2]),f[0]=L[+(t[0]e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:\^)/,/^(?:v\b)/,/^(?:\s*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[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])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:\n+)/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],inclusive:!0}}};function Yt(){this.yy={}}return xt.lexer=Dt,new((Yt.prototype=xt).Parser=Yt)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,5],n=[1,6],r=[1,12],a=[1,13],i=[1,14],s=[1,15],o=[1,16],u=[1,17],l=[1,18],c=[1,19],d=[1,20],h=[1,21],f=[1,22],_=[8,16,17,18,19,20,21,22,23,24,25,26],p=[1,37],m=[1,33],y=[1,34],g=[1,35],v=[1,36],M=[8,10,16,17,18,19,20,21,22,23,24,25,26,28,32,37,39,40,45,57,58],k=[10,28],b=[10,28,37,57,58],L=[2,49],w=[1,45],x=[1,48],D=[1,49],Y=[1,52],T=[2,65],A=[1,65],S=[1,66],E=[1,67],j=[1,68],C=[1,69],F=[1,70],O=[1,71],H=[1,72],P=[1,73],B=[8,16,17,18,19,20,21,22,23,24,25,26,47],N=[10,28,37],I={trace:function(){},yy:{},symbols_:{error:2,expressions:3,graph:4,EOF:5,graphStatement:6,idStatement:7,"{":8,stmt_list:9,"}":10,strict:11,GRAPH:12,DIGRAPH:13,textNoTags:14,textNoTagsToken:15,ALPHA:16,NUM:17,COLON:18,PLUS:19,EQUALS:20,MULT:21,DOT:22,BRKT:23,SPACE:24,MINUS:25,keywords:26,stmt:27,";":28,node_stmt:29,edge_stmt:30,attr_stmt:31,"=":32,subgraph:33,attr_list:34,NODE:35,EDGE:36,"[":37,a_list:38,"]":39,",":40,edgeRHS:41,node_id:42,edgeop:43,port:44,":":45,compass_pt:46,SUBGRAPH:47,n:48,ne:49,e:50,se:51,s:52,sw:53,w:54,nw:55,c:56,ARROW_POINT:57,ARROW_OPEN:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"{",10:"}",11:"strict",12:"GRAPH",13:"DIGRAPH",16:"ALPHA",17:"NUM",18:"COLON",19:"PLUS",20:"EQUALS",21:"MULT",22:"DOT",23:"BRKT",24:"SPACE",25:"MINUS",26:"keywords",28:";",32:"=",35:"NODE",36:"EDGE",37:"[",39:"]",40:",",45:":",47:"SUBGRAPH",48:"n",49:"ne",50:"e",51:"se",52:"s",53:"sw",54:"w",55:"nw",56:"c",57:"ARROW_POINT",58:"ARROW_OPEN"},productions_:[0,[3,2],[4,5],[4,6],[4,4],[6,1],[6,1],[7,1],[14,1],[14,2],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[9,1],[9,3],[27,1],[27,1],[27,1],[27,3],[27,1],[31,2],[31,2],[31,2],[34,4],[34,3],[34,3],[34,2],[38,5],[38,5],[38,3],[30,3],[30,3],[30,2],[30,2],[41,3],[41,3],[41,2],[41,2],[29,2],[29,1],[42,2],[42,1],[44,4],[44,2],[44,2],[33,5],[33,4],[33,3],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,0],[43,1],[43,1]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:this.$=i[o-1];break;case 2:this.$=i[o-4];break;case 3:this.$=i[o-5];break;case 4:this.$=i[o-3];break;case 8:case 10:case 11:this.$=i[o];break;case 9:this.$=i[o-1]+""+i[o];break;case 12:case 13:case 14:case 15:case 16:case 18:case 19:case 20:this.$=i[o];break;case 17:this.$="
";break;case 39:this.$="oy";break;case 40:r.addLink(i[o-1],i[o].id,i[o].op),this.$="oy";break;case 42:r.addLink(i[o-1],i[o].id,i[o].op),this.$={op:i[o-2],id:i[o-1]};break;case 44:this.$={op:i[o-1],id:i[o]};break;case 48:r.addVertex(i[o-1]),this.$=i[o-1];break;case 49:r.addVertex(i[o]),this.$=i[o];break;case 66:this.$="arrow";break;case 67:this.$="arrow_open"}},table:[{3:1,4:2,6:3,11:[1,4],12:e,13:n},{1:[3]},{5:[1,7]},{7:8,8:[1,9],14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{6:23,12:e,13:n},t(_,[2,5]),t(_,[2,6]),{1:[2,1]},{8:[1,24]},{7:30,8:p,9:25,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},t([8,10,28,32,37,39,40,45,57,58],[2,7],{15:38,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f}),t(M,[2,8]),t(M,[2,10]),t(M,[2,11]),t(M,[2,12]),t(M,[2,13]),t(M,[2,14]),t(M,[2,15]),t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),t(M,[2,19]),t(M,[2,20]),{7:39,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{7:30,8:p,9:40,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,41]},{10:[2,21],28:[1,42]},t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),t(b,L,{44:44,32:[1,43],45:w}),t(k,[2,27],{41:46,43:47,57:x,58:D}),t(k,[2,47],{43:47,34:50,41:51,37:Y,57:x,58:D}),{34:53,37:Y},{34:54,37:Y},{34:55,37:Y},{7:56,8:[1,57],14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{7:30,8:p,9:58,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},t(M,[2,9]),{8:[1,59]},{10:[1,60]},{5:[2,4]},{7:30,8:p,9:61,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{7:62,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},t(b,[2,48]),t(b,T,{14:10,15:11,7:63,46:64,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,48:A,49:S,50:E,51:j,52:C,53:F,54:O,55:H,56:P}),t(k,[2,41],{34:74,37:Y}),{7:77,8:p,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,33:76,42:75,47:v},t(B,[2,66]),t(B,[2,67]),t(k,[2,46]),t(k,[2,40],{34:78,37:Y}),{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:79,39:[1,80]},t(k,[2,28]),t(k,[2,29]),t(k,[2,30]),{8:[1,82]},{7:30,8:p,9:83,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,84]},{7:30,8:p,9:85,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{5:[2,2]},{10:[2,22]},t(k,[2,26]),t(b,[2,51],{45:[1,86]}),t(b,[2,52]),t(b,[2,56]),t(b,[2,57]),t(b,[2,58]),t(b,[2,59]),t(b,[2,60]),t(b,[2,61]),t(b,[2,62]),t(b,[2,63]),t(b,[2,64]),t(k,[2,38]),t(N,[2,44],{43:47,41:87,57:x,58:D}),t(N,[2,45],{43:47,41:88,57:x,58:D}),t(b,L,{44:44,45:w}),t(k,[2,39]),{39:[1,89]},t(k,[2,34],{34:90,37:Y}),{32:[1,91]},{7:30,8:p,9:92,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,93]},t(b,[2,55]),{10:[1,94]},t(b,T,{46:95,48:A,49:S,50:E,51:j,52:C,53:F,54:O,55:H,56:P}),t(N,[2,42]),t(N,[2,43]),t(k,[2,33],{34:96,37:Y}),t(k,[2,32]),{7:97,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{10:[1,98]},t(b,[2,54]),{5:[2,3]},t(b,[2,50]),t(k,[2,31]),{28:[1,99],39:[2,37],40:[1,100]},t(b,[2,53]),{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:101},{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:102},{39:[2,35]},{39:[2,36]}],defaultActions:{7:[2,1],41:[2,4],60:[2,2],61:[2,22],94:[2,3],101:[2,35],102:[2,36]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:--[o])/,/^(?:--)/,/^(?:-)/,/^(?:\+)/,/^(?:=)/,/^(?:[\u0021-\u0027\u002A-\u002E\u003F\u0041-\u005A\u0061-\u007A\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)/,/^(?:\n)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!0}}};function z(){this.yy={}}return I.lexer=R,new((z.prototype=I).Parser=z)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){var r;r=function(t,e){return function(n){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}return a.m=n,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=5)}([function(t,e){t.exports=n(19)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.addDummyNode=s,e.simplify=u,e.asNonCompoundGraph=l,e.successorWeights=c,e.predecessorWeights=d,e.intersectRect=h,e.buildLayerMatrix=f,e.normalizeRanks=_,e.removeEmptyRanks=p,e.addBorderNode=m,e.maxRank=y,e.partition=g,e.time=v,e.notime=M;var r,a=n(0),o=(r=a)&&r.__esModule?r:{default:r},i=n(2);function s(t,e,n,r){for(var a=void 0;a=o.default.uniqueId(r),t.hasNode(a););return n.dummy=e,t.setNode(a,n),a}function u(r){var a=(new i.Graph).setGraph(r.graph());return o.default.each(r.nodes(),function(t){a.setNode(t,r.node(t))}),o.default.each(r.edges(),function(t){var e=a.edge(t.v,t.w)||{weight:0,minlen:1},n=r.edge(t);a.setEdge(t.v,t.w,{weight:e.weight+n.weight,minlen:Math.max(e.minlen,n.minlen)})}),a}function l(e){var n=new i.Graph({multigraph:e.isMultigraph()}).setGraph(e.graph());return o.default.each(e.nodes(),function(t){e.children(t).length||n.setNode(t,e.node(t))}),o.default.each(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function c(n){var t=o.default.map(n.nodes(),function(t){var e={};return o.default.each(n.outEdges(t),function(t){e[t.w]=(e[t.w]||0)+n.edge(t).weight}),e});return o.default.zipObject(n.nodes(),t)}function d(n){var t=o.default.map(n.nodes(),function(t){var e={};return o.default.each(n.inEdges(t),function(t){e[t.v]=(e[t.v]||0)+n.edge(t).weight}),e});return o.default.zipObject(n.nodes(),t)}function h(t,e){var n=t.x,r=t.y,a=e.x-n,i=e.y-r,s=t.width/2,o=t.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var u=void 0,l=void 0;return Math.abs(i)*s>Math.abs(a)*o?(i<0&&(o=-o),u=o*a/i,l=o):(a<0&&(s=-s),l=(u=s)*i/a),{x:n+u,y:r+l}}function f(r){var a=o.default.map(o.default.range(y(r)+1),function(){return[]});return o.default.each(r.nodes(),function(t){var e=r.node(t),n=e.rank;o.default.isUndefined(n)||(a[n][e.order]=t)}),a}function _(n){var r=o.default.min(o.default.map(n.nodes(),function(t){return n.node(t).rank}));o.default.each(n.nodes(),function(t){var e=n.node(t);o.default.has(e,"rank")&&(e.rank-=r)})}function p(n){var r=o.default.min(o.default.map(n.nodes(),function(t){return n.node(t).rank})),a=[];o.default.each(n.nodes(),function(t){var e=n.node(t).rank-r;a[e]||(a[e]=[]),a[e].push(t)});var i=0,s=n.graph().nodeRankFactor;o.default.each(a,function(t,e){o.default.isUndefined(t)&&e%s!=0?--i:i&&o.default.each(t,function(t){n.node(t).rank+=i})})}function m(t,e,n,r){var a={width:0,height:0};return 4<=arguments.length&&(a.rank=n,a.order=r),s(t,"border",a,e)}function y(n){return o.default.max(o.default.map(n.nodes(),function(t){var e=n.node(t).rank;if(!o.default.isUndefined(e))return e}))}function g(t,e){var n={lhs:[],rhs:[]};return o.default.each(t,function(t){e(t)?n.lhs.push(t):n.rhs.push(t)}),n}function v(t,e){var n=o.default.now();try{return e()}finally{console.log(t+" time: "+(o.default.now()-n)+"ms")}}function M(t,e){return e()}e.default={addDummyNode:s,simplify:u,asNonCompoundGraph:l,successorWeights:c,predecessorWeights:d,intersectRect:h,buildLayerMatrix:f,normalizeRanks:_,removeEmptyRanks:p,addBorderNode:m,maxRank:y,partition:g,time:v,notime:M}},function(t,e){t.exports=n(29)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.longestPath=i,e.slack=o;var r,a=n(0),s=(r=a)&&r.__esModule?r:{default:r};function i(a){var i={};s.default.each(a.sources(),function e(t){var n=a.node(t);if(s.default.has(i,t))return n.rank;i[t]=!0;var r=s.default.min(s.default.map(a.outEdges(t),function(t){return e(t.w)-a.edge(t).minlen}))||0;return n.rank=r})}function o(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}e.default={longestPath:i,slack:o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),o=(r=a)&&r.__esModule?r:{default:r},i=n(2),u=n(3);function s(i,s){return o.default.each(i.nodes(),function r(a){o.default.each(s.nodeEdges(a),function(t){var e=t.v,n=a===e?t.w:e;i.hasNode(n)||(0,u.slack)(s,t)||(i.setNode(n,{}),i.setEdge(a,n,{}),r(n))})}),i.nodeCount()}function l(e,n){return o.default.minBy(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return(0,u.slack)(n,t)})}function c(t,e,n){o.default.each(t.nodes(),function(t){e.node(t).rank+=n})}e.default=function(t){var e=new i.Graph({directed:!1}),n=t.nodes()[0],r=t.nodeCount();e.setNode(n,{});for(var a=void 0;s(e,t)s.lim&&(o=s,u=!0);var l=_.default.filter(n.edges(),function(t){return u===g(e,e.node(t.v),o)&&u!==g(e,e.node(t.w),o)});return _.default.minBy(l,function(t){return(0,c.slack)(n,t)})}function y(t,e,n,r){var a,i,s,o,u=n.v,l=n.w;t.removeEdge(u,l),t.setEdge(r.v,r.w,{}),f(t),h(t,e),a=t,i=e,s=_.default.find(a.nodes(),function(t){return!i.node(t).parent}),o=(o=d(a,s)).slice(1),_.default.each(o,function(t){var e=a.node(t).parent,n=i.edge(t,e),r=!1;n||(n=i.edge(e,t),r=!0),i.node(t).rank=i.node(e).rank+(r?n.minlen:-n.minlen)})}function g(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}u.initLowLimValues=f,u.initCutValues=h,u.calcCutValue=l,u.leaveEdge=p,u.enterEdge=m,u.exchangeEdges=y,e.default=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),s=(r=a)&&r.__esModule?r:{default:r};e.default=function(l){var r,a,i,c=(r=l,a={},i=0,s.default.each(r.children(),function t(e){var n=i;s.default.each(r.children(e),t),a[e]={low:n,lim:i++}}),a);s.default.each(l.graph().dummyChains,function(t){for(var e=l.node(t),n=e.edgeObj,r=function(t,e,n,r){var a=[],i=[],s=Math.min(e[n].low,e[r].low),o=Math.max(e[n].lim,e[r].lim),u=void 0,l=void 0;for(u=n;u=t.parent(u),a.push(u),u&&(e[u].low>s||o>e[u].lim););for(l=u,u=r;(u=t.parent(u))!==l;)i.push(u);return{path:a.concat(i.reverse()),lca:l}}(l,c,n.v,n.w),a=r.path,i=r.lca,s=0,o=a[s],u=!0;t!==n.w;){if(e=l.node(t),u){for(;(o=a[s])!==i&&l.node(o).maxRank>1]+=t.weight;u+=t.weight*n})),u}e.default=function(t,e){for(var n=0,r=1;r=i.barycenter)&&(n=t,a=r=0,(e=i).weight&&(r+=e.barycenter*e.weight,a+=e.weight),n.weight&&(r+=n.barycenter*n.weight,a+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/a,e.weight=a,e.i=Math.min(n.i,e.i),n.merged=!0)}}function r(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var a=n.pop();t.push(a),s.default.each(a.in.reverse(),e(a)),s.default.each(a.out,r(a))}return s.default.chain(t).filter(function(t){return!t.merged}).map(function(t){return s.default.pick(t,["vs","i","barycenter","weight"])}).value()}(s.default.filter(r,function(t){return!t.indegree}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var d=r(n(0)),h=r(n(1));function r(t){return t&&t.__esModule?t:{default:t}}function f(t,e,n){for(var r=void 0;e.length&&(r=d.default.last(e)).i<=n;)e.pop(),t.push(r.vs),n++;return n}e.default=function(t,e){var n,r=h.default.partition(t,function(t){return d.default.has(t,"barycenter")}),a=r.lhs,i=d.default.sortBy(r.rhs,function(t){return-t.i}),s=[],o=0,u=0,l=0;a.sort((n=!!e,function(t,e){return t.barycentere.barycenter?1:n?e.i-t.i:t.i-e.i})),l=f(s,i,l),d.default.each(a,function(t){l+=t.vs.length,s.push(t.vs),o+=t.barycenter*t.weight,u+=t.weight,l=f(s,i,l)});var c={vs:d.default.flatten(s,!0)};return u&&(c.barycenter=o/u,c.weight=u),c}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r},l=n(2);e.default=function(i,n,r){var s=function(t){for(var e=void 0;t.hasNode(e=u.default.uniqueId("_root")););return e}(i),o=new l.Graph({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(function(t){return i.node(t)});return u.default.each(i.nodes(),function(a){var t=i.node(a),e=i.parent(a);(t.rank===n||t.minRank<=n&&n<=t.maxRank)&&(o.setNode(a),o.setParent(a,e||s),u.default.each(i[r](a),function(t){var e=t.v===a?t.w:t.v,n=o.edge(e,a),r=u.default.isUndefined(n)?0:n.weight;o.setEdge(e,a,{weight:i.edge(t).weight+r})}),u.default.has(t,"minRank")&&o.setNode(a,{borderLeft:t.borderLeft[n],borderRight:t.borderRight[n]}))}),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};e.default=function(a,i,t){var s={},o=void 0;u.default.each(t,function(t){for(var e=a.parent(t),n=void 0,r=void 0;e;){if((n=a.parent(e))?(r=s[n],s[n]=e):(r=o,o=e),r&&r!==e)return void i.setEdge(r,e);e=n}})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=r(n(0)),o=r(n(1)),u=n(27);function r(t){return t&&t.__esModule?t:{default:t}}e.default=function(n){var r,t,a,i;n=o.default.asNonCompoundGraph(n),r=n,t=o.default.buildLayerMatrix(r),a=r.graph().ranksep,i=0,s.default.each(t,function(t){var e=s.default.max(s.default.map(t,function(t){return r.node(t).height}));s.default.each(t,function(t){r.node(t).y=i+e/2}),i+=e+a}),s.default.each((0,u.positionX)(n),function(t,e){n.node(e).x=t})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.positionX=i;var v=a(n(0)),M=n(2),r=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}function l(l,t){var c={};return v.default.reduce(t,function(t,r){var i=0,s=0,o=t.length,u=v.default.last(r);return v.default.each(r,function(t,e){var n=function(e,t){if(e.node(t).dummy)return v.default.find(e.predecessors(t),function(t){return e.node(t).dummy})}(l,t),a=n?l.node(n).order:o;(n||t===u)&&(v.default.each(r.slice(s,e+1),function(r){v.default.each(l.predecessors(r),function(t){var e=l.node(t),n=e.order;!(na)&&d(s,t,i)})})}return v.default.reduce(t,function(r,a){var i=-1,s=void 0,o=0;return v.default.each(a,function(t,e){if("border"===u.node(t).dummy){var n=u.predecessors(t);n.length&&(s=u.node(n[0]).order,l(a,o,e,i,s),o=e,i=s)}l(a,o,a.length,s,r.length)}),a}),s}function d(t,e,n){if(n",main:"dist/dagre-layout.js",keywords:["graph","layout","dagre"],scripts:{lint:"standard",jest:"jest --coverage",karma:"node -r babel-register node_modules/.bin/karma start",test:"yarn lint && yarn jest && yarn karma --single-run",bench:"node -r babel-register src/bench.js",build:"node -r babel-register node_modules/.bin/webpack --progress --colors","build:watch":"yarn build --watch",upgrade:"yarn-upgrade-all"},dependencies:{graphlib:"^2.1.1",lodash:"^4.17.4"},devDependencies:{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.24.1",benchmark:"^2.1.4",chai:"^4.1.2",coveralls:"^2.13.1",jest:"^21.0.1",karma:"^1.7.1","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.0.1","karma-mocha":"^1.3.0","karma-safari-launcher":"^1.0.0",mocha:"^3.5.0",sprintf:"^0.1.5",standard:"^10.0.3",webpack:"^3.5.6","webpack-node-externals":"^1.6.0","yarn-upgrade-all":"^0.1.8"},repository:{type:"git",url:"https://github.com/tylingsoft/dagre-layout.git"},license:"MIT",files:["dist/","lib/","index.js"],standard:{ignore:["dist/**/*.js","coverage/**/*.js"]},jest:{testRegex:"test/.+?-test\\.js",testPathIgnorePatterns:["test/bundle-test\\.js"]}}}]).default},t.exports=r(n(19),n(29))},function(t,e,n){var r=n(4),a=n(164);t.exports=function(e,t,n,r){return function(t,n,i,e){var s,o,u={},l=new a,r=function(t){var e=t.v!==s?t.v:t.w,n=u[e],r=i(t),a=o.distance+r;if(r<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+r);athis._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},r.prototype._heapify=function(t){var e=this._arr,n=2*t,r=n+1,a=t;n>1].prioritye[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3,15],inclusive:!1},ALIAS:{rules:[2,3,7,8],inclusive:!1},ID:{rules:[2,3,6],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!0}}};function w(){this.yy={}}return b.lexer=L,new((w.prototype=b).Parser=w)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.apply=e.setTitle=e.addNote=e.PLACEMENT=e.ARROWTYPE=e.LINETYPE=e.clear=e.getTitle=e.getActorKeys=e.getActor=e.getActors=e.getMessages=e.addSignal=e.addMessage=e.addActor=void 0;var a=n(1),i={},s=[],o=[],r="",u=e.addActor=function(t,e,n){var r=i[t];r&&e===r.name&&null==n||(null==n&&(n=e),i[t]={name:e,description:n})},l=e.addMessage=function(t,e,n,r){s.push({from:t,to:e,message:n,answer:r})},c=e.addSignal=function(t,e,n,r){a.logger.debug("Adding message from="+t+" to="+e+" message="+n+" type="+r),s.push({from:t,to:e,message:n,type:r})},d=e.getMessages=function(){return s},h=e.getActors=function(){return i},f=e.getActor=function(t){return i[t]},_=e.getActorKeys=function(){return Object.keys(i)},p=e.getTitle=function(){return r},m=e.clear=function(){i={},s=[]},y=e.LINETYPE={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21},g=e.ARROWTYPE={FILLED:0,OPEN:1},v=e.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},M=e.addNote=function(t,e,n){var r={actor:t,placement:e,message:n},a=[].concat(t,t);o.push(r),s.push({from:a[0],to:a[1],message:n,type:y.NOTE,placement:e})},k=e.setTitle=function(t){r=t},b=e.apply=function e(t){if(t instanceof Array)t.forEach(function(t){e(t)});else switch(t.type){case"addActor":u(t.actor,t.actor,t.description);break;case"activeStart":case"activeEnd":c(t.actor,void 0,void 0,t.signalType);break;case"addNote":M(t.actor,t.placement,t.text);break;case"addMessage":c(t.from,t.to,t.msg,t.signalType);break;case"loopStart":c(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":c(void 0,void 0,void 0,t.signalType);break;case"optStart":c(void 0,void 0,t.optText,t.signalType);break;case"optEnd":c(void 0,void 0,void 0,t.signalType);break;case"altStart":case"else":c(void 0,void 0,t.altText,t.signalType);break;case"altEnd":c(void 0,void 0,void 0,t.signalType);break;case"setTitle":k(t.text);break;case"parStart":case"and":c(void 0,void 0,t.parText,t.signalType);break;case"parEnd":c(void 0,void 0,void 0,t.signalType)}};e.default={addActor:u,addMessage:l,addSignal:c,getMessages:d,getActors:h,getActor:f,getActorKeys:_,getTitle:p,clear:m,LINETYPE:y,ARROWTYPE:g,PLACEMENT:v,addNote:M,setTitle:k,apply:b}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getInfo=e.setInfo=e.getMessage=e.setMessage=void 0;var r=n(1),a="",i=!1,s=e.setMessage=function(t){r.logger.debug("Setting message to: "+t),a=t},o=e.getMessage=function(){return a},u=e.setInfo=function(t){i=t},l=e.getInfo=function(){return i};e.default={setMessage:s,getMessage:o,setInfo:u,getInfo:l}},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10,12],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,message:11,say:12,TXT:13,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo",12:"say",13:"TXT"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1],[8,1],[11,2]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:return r;case 4:break;case 6:r.setInfo(!0);break;case 7:r.setMessage(i[o]);break;case 8:this.$=i[o-1].substring(1).trim().replace(/\\n/gm,"\n")}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],11:9,12:[1,10]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6]),t(e,[2,7]),{13:[1,11]},t(e,[2,8])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::[^#\n;]+)/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[10,11],inclusive:!1},struct:{rules:[5,6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],inclusive:!0}}};function L(){this.yy={}}return k.lexer=b,new((L.prototype=k).Parser=L)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.relationType=e.lineType=e.cleanupLabel=e.addMembers=e.addRelation=e.getRelations=e.getClasses=e.getClass=e.clear=e.addClass=void 0;var r=n(1),a=[],i={},s=e.addClass=function(t){void 0===i[t]&&(i[t]={id:t,methods:[],members:[]})},o=e.clear=function(){a=[],i={}},u=e.getClass=function(t){return i[t]},l=e.getClasses=function(){return i},c=e.getRelations=function(){return a},d=e.addRelation=function(t){r.logger.warn("Adding relation: "+JSON.stringify(t)),s(t.id1),s(t.id2),a.push(t)},h=e.addMembers=function(t,e){var n=i[t];"string"==typeof e&&(")"===e.substr(-1)?n.methods.push(e):n.members.push(e))},f=e.cleanupLabel=function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},_=e.lineType={LINE:0,DOTTED_LINE:1},p=e.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3};e.default={addClass:s,clear:o,getClass:u,getClasses:l,getRelations:c,addRelation:d,addMembers:h,cleanupLabel:f,lineType:_,relationType:p}},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[2,3],n=[1,7],r=[7,12,15,17,19,20,21],a=[7,11,12,15,17,19,20,21],i=[2,20],s=[1,32],o={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:return i[o-1];case 2:return r.setDirection(i[o-3]),i[o-1];case 4:r.setOptions(i[o-1]),this.$=i[o];break;case 5:i[o-1]+=i[o],this.$=i[o-1];break;case 7:this.$=[];break;case 8:i[o-1].push(i[o]),this.$=i[o-1];break;case 9:this.$=i[o-1];break;case 11:r.commit(i[o]);break;case 12:r.branch(i[o]);break;case 13:r.checkout(i[o]);break;case 14:r.merge(i[o]);break;case 15:r.reset(i[o]);break;case 16:this.$="";break;case 17:this.$=i[o];break;case 18:this.$=i[o-1]+":"+i[o];break;case 19:this.$=i[o-1]+":"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:n},{5:[1,8]},{7:[1,9]},t(r,[2,7],{10:10,11:[1,11]}),t(a,[2,6]),{6:12,7:e,9:6,12:n},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},t(a,[2,5]),{7:[1,21]},t(r,[2,8]),{12:[1,22]},t(r,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},t(r,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:i,25:31,26:s},{12:i,25:33,26:s},{12:[2,18]},{12:i,25:34,26:s},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,d={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,r={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},a=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,f=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,i=/&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g,m={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},y={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},s={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},_=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],p=String.fromCharCode,g={}.hasOwnProperty,v=function(t,e){return g.call(t,e)},M=function(t,e){if(!t)return e;var n,r={};for(n in e)r[n]=v(t,n)?t[n]:e[n];return r},k=function(t,e){var n="";return 55296<=t&&t<=57343||1114111>>10&1023|55296),t=56320|1023&t),n+=p(t))},b=function(t){return"&#x"+t.toString(16).toUpperCase()+";"},L=function(t){return"&#"+t+";"},w=function(t){throw Error("Parse error: "+t)},x=function(t,e){(e=M(e,x.options)).strict&&f.test(t)&&w("forbidden code point");var n=e.encodeEverything,r=e.useNamedReferences,a=e.allowUnsafeSymbols,i=e.decimal?L:b,s=function(t){return i(t.charCodeAt(0))};return n?(t=t.replace(u,function(t){return r&&v(d,t)?"&"+d[t]+";":s(t)}),r&&(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),r&&(t=t.replace(c,function(t){return"&"+d[t]+";"}))):r?(a||(t=t.replace(h,function(t){return"&"+d[t]+";"})),t=(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(c,function(t){return"&"+d[t]+";"})):a||(t=t.replace(h,s)),t.replace(o,function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1);return i(1024*(e-55296)+n-56320+65536)}).replace(l,s)};x.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var D=function(t,_){var p=(_=M(_,D.options)).strict;return p&&a.test(t)&&w("malformed character reference"),t.replace(i,function(t,e,n,r,a,i,s,o){var u,l,c,d,h,f;return e?(c=e,l=n,p&&!l&&w("character reference was not terminated by a semicolon"),u=parseInt(c,10),k(u,p)):r?(d=r,l=a,p&&!l&&w("character reference was not terminated by a semicolon"),u=parseInt(d,16),k(u,p)):i?v(m,h=i)?m[h]:(p&&w("named character reference was not terminated by a semicolon"),t):(h=s,(f=o)&&_.isAttributeValue?(p&&"="==f&&w("`&` did not start a character reference"),t):(p&&w("named character reference was not terminated by a semicolon"),y[h]+(f||"")))})};D.options={isAttributeValue:!1,strict:!1};var Y={version:"1.1.1",encode:x,decode:D,escape:function(t){return t.replace(h,function(t){return r[t]})},unescape:D};void 0===(S=function(){return Y}.call(E,j,E,T))||(T.exports=S)}()}).call(E,j(3)(t),j(18))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decodeEntities=e.encodeEntities=e.version=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=n(1),f=E(n(157)),_=E(n(158)),p=E(n(208)),m=E(n(222)),y=E(n(224)),r=E(n(171)),a=E(n(160)),s=E(n(161)),o=E(n(168)),u=E(n(169)),l=E(n(170)),g=E(n(225)),c=E(n(172)),d=E(n(173)),v=E(n(174)),M=E(n(226)),k=E(n(175)),b=E(n(176)),L=E(n(227)),w=E(n(201)),x=E(n(6)),D=E(n(203)),Y=E(n(346)),T=E(n(348)),A=E(n(350)),S=E(n(352));function E(t){return t&&t.__esModule?t:{default:t}}var j={dark:Y.default,default:T.default,forest:A.default,neutral:S.default},C={theme:T.default,logLevel:5,startOnLoad:!0,arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!0,useMaxWidth:!0},sequenceDiagram:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:3,axisFormatter:[["%I:%M",function(t){return t.getHours()}],["w. %U",function(t){return 1===t.getDay()}],["%a %d",function(t){return t.getDay()&&1!==t.getDate()}],["%b %d",function(t){return 1!==t.getDate()}],["%m-%y",function(t){return t.getMonth()}]]},classDiagram:{},gitGraph:{},info:{}};(0,h.setLogLevel)(C.logLevel);var F=e.version=function(){return D.default.version},O=e.encodeEntities=function(t){var e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){var e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"fl°°"+e+"¶ß":"fl°"+e+"¶ß"})},H=e.decodeEntities=function(t){var e=t;return e=(e=(e=e.replace(/fl°°/g,function(){return"&#"})).replace(/fl°/g,function(){return"&"})).replace(/¶ß/g,function(){return";"})},P=function(t,e,n,r){if(void 0!==r)r.innerHTML="",x.default.select(r).append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g");else{var a=document.querySelector("#d"+t);a&&(a.innerHTML=""),x.default.select("body").append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g")}window.txt=e,e=O(e);var i=x.default.select("#d"+t).node();switch(_.default.detectType(e)){case"gitGraph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,L.default.setConf(C.gitGraph),L.default.draw(e,t,!1);break;case"graph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,p.default.setConf(C.flowchart),p.default.draw(e,t,!1);break;case"dotGraph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,p.default.setConf(C.flowchart),p.default.draw(e,t,!0);break;case"sequenceDiagram":C.sequenceDiagram.arrowMarkerAbsolute=C.arrowMarkerAbsolute,m.default.setConf(C.sequenceDiagram),m.default.draw(e,t);break;case"gantt":C.gantt.arrowMarkerAbsolute=C.arrowMarkerAbsolute,g.default.setConf(C.gantt),g.default.draw(e,t);break;case"classDiagram":C.classDiagram.arrowMarkerAbsolute=C.arrowMarkerAbsolute,M.default.setConf(C.classDiagram),M.default.draw(e,t);break;case"info":C.info.arrowMarkerAbsolute=C.arrowMarkerAbsolute,y.default.draw(e,t,F())}var s=i.firstChild,o=document.createElement("style"),u=window.getComputedStyle(s);o.innerHTML="\n "+(j[C.theme]||T.default)+"\nsvg {\n color: "+u.color+";\n font: "+u.font+";\n}\n ",s.insertBefore(o,s.firstChild),x.default.select("#d"+t).selectAll("foreignobject div").attr("xmlns","http://www.w3.org/1999/xhtml");var l="";C.arrowMarkerAbsolute&&(l=(l=(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)"));var c=x.default.select("#d"+t).node().innerHTML.replace(/url\(#arrowhead/g,"url("+l+"#arrowhead","g");c=H(c),void 0!==n?n(c,f.default.bindFunctions):h.logger.warn("CB = undefined!");var d=x.default.select("#d"+t).node();return null!==d&&"function"==typeof d.remove&&x.default.select("#d"+t).node().remove(),c};var B=function(t){for(var e=Object.keys(t),n=0;n'});else{for(var s=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.split(/
/),u=0;u'+t.text+""):(e.labelType="text",e.style="stroke: #333; stroke-width: 1.5px;fill:none",e.label=t.text.replace(/
/g,"\n"))):e.label=t.text.replace(/
/g,"\n")),a.setEdge(t.start,t.end,e,i)})},i=e.getClasses=function(t,e){var n=void 0;Y.default.clear(),(n=e?A.default.parser:T.default.parser).yy=Y.default,n.parse(t);var r=Y.default.getClasses();return void 0===r.default&&(r.default={id:"default"},r.default.styles=[],r.default.clusterStyles=["rx:4px","fill: rgb(255, 255, 222)","rx: 4px","stroke: rgb(170, 170, 51)","stroke-width: 1px"],r.default.nodeLabelStyles=["fill:#000","stroke:none","font-weight:300",'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf',"font-size:14px"],r.default.edgeLabelStyles=["fill:#000","stroke:none","font-weight:300",'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf',"font-size:14px"]),r},s=e.draw=function(t,e,n){j.logger.debug("Drawing flowchart");var r=void 0;Y.default.clear(),(r=n?A.default.parser:T.default.parser).yy=Y.default;try{r.parse(t)}catch(t){j.logger.debug("Parsing failed")}var a=Y.default.getDirection();void 0===a&&(a="TD");for(var i=new E.default.graphlib.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:a,marginx:20,marginy:20}).setDefaultEdgeLabel(function(){return{}}),s=void 0,o=Y.default.getSubGraphs(),u=o.length-1;0<=u;u--)s=o[u],Y.default.addVertex(s.id,s.title,"group",void 0);var l=Y.default.getVertices(),c=Y.default.getEdges(),d=0;for(d=o.length-1;0<=d;d--){s=o[d],S.default.selectAll("cluster").append("text");for(var h=0;hMath.abs(a)*o?(i<0&&(o=-o),u=0===i?0:o*a/i,l=o):(a<0&&(s=-s),u=s,l=0===a?0:s*i/a),{x:n+u,y:r+l}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(1)),i=r(n(11)),s=r(n(5)),o=r(n(12)),u=r(n(14)),l=r(n(0)),c=n(27);e.default={d3:a.default,graphlib:i.default,dagre:s.default,intersect:o.default,render:u.default,util:l.default,version:c.version}},function(t,e){t.exports=n(29)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(6)),i=r(n(7)),s=r(n(3)),o=r(n(8)),u=r(n(9));e.default={node:a.default,circle:i.default,ellipse:s.default,polygon:o.default,rect:u.default}},function(t,e,n){"use strict";function y(t,e){return 0g.width?(l.remove(),s=t.append("g"),c=(l=m.default.drawText(s,u,2*i.width-g.noteMargin))[0][0].getBBox().height,o.attr("width",2*i.width),v.insert(e,n,e+2*i.width,n+2*g.noteMargin+c)):v.insert(e,n,e+i.width,n+2*g.noteMargin+c),o.attr("height",c+2*g.noteMargin),v.bumpVerticalPos(c+2*g.noteMargin)},k=e.drawActors=function(t,e,n,r){for(var a=0;an&&(r.starty=n-6,n+=12),m.default.drawActivation(d,r,n,g),v.insert(r.startx,n-10,r.stopx,n);break;case y.parser.yy.LINETYPE.LOOP_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.LOOP_END:a=v.endLoop(),m.default.drawLoop(d,a,"loop",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.OPT_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.OPT_END:a=v.endLoop(),m.default.drawLoop(d,a,"opt",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.ALT_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.ALT_ELSE:v.bumpVerticalPos(g.boxMargin),a=v.addSectionToLoop(t.message),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.ALT_END:a=v.endLoop(),m.default.drawLoop(d,a,"alt",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.PAR_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.PAR_AND:v.bumpVerticalPos(g.boxMargin),a=v.addSectionToLoop(t.message),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.PAR_END:a=v.endLoop(),m.default.drawLoop(d,a,"par",g),v.bumpVerticalPos(g.boxMargin);break;default:try{v.bumpVerticalPos(g.messageMargin);var i=b(t.from),s=b(t.to),o=i[0]<=s[0]?1:0,u=i[0]/gi," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);var i=a.append("tspan");return i.attr("x",e.x+2*e.textMargin),i.attr("fill",e.fill),i.text(r),void 0!==a.textwrap&&a.textwrap({x:e.x,y:e.y,width:n,height:1800},e.textMargin),a},o=e.drawLabel=function(t,e){var n,r,a,i,s,o=t.append("polygon");o.attr("points",(n=e.x,r=e.y,n+","+r+" "+(n+(a=50))+","+r+" "+(n+a)+","+(r+(i=20)-(s=7))+" "+(n+a-1.2*s)+","+(r+i)+" "+n+","+(r+i))),o.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,l(t,e)},c=-1,r=e.drawActor=function(t,e,n,r,a){var i=e+a.width/2,s=t.append("g");0===n&&(c++,s.append("line").attr("id","actor"+c).attr("x1",i).attr("y1",5).attr("x2",i).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));var o=_();o.x=e,o.y=n,o.fill="#eaeaea",o.width=a.width,o.height=a.height,o.class="actor",o.rx=3,o.ry=3,u(s,o),p(a)(r,s,o.x,o.y,o.width,o.height,{class:"actor"})},a=e.anchorElement=function(t){return t.append("g")},i=e.drawActivation=function(t,e,n){var r=_(),a=e.anchored;r.x=e.startx,r.y=e.starty,r.fill="#f4f4f4",r.width=e.stopx-e.startx,r.height=n-e.starty,u(a,r)},s=e.drawLoop=function(t,n,e,r){var a=t.append("g"),i=function(t,e,n,r){return a.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",r).attr("class","loopLine")};i(n.startx,n.starty,n.stopx,n.starty),i(n.stopx,n.starty,n.stopx,n.stopy),i(n.startx,n.stopy,n.stopx,n.stopy),i(n.startx,n.starty,n.startx,n.stopy),void 0!==n.sections&&n.sections.forEach(function(t){i(n.startx,t,n.stopx,t).style("stroke-dasharray","3, 3")});var s=f();s.text=e,s.x=n.startx,s.y=n.starty,s.labelMargin=15,s.class="labelText",o(a,s),(s=f()).text="[ "+n.title+" ]",s.x=n.startx+(n.stopx-n.startx)/2,s.y=n.starty+1.5*r.boxMargin,s.anchor="middle",s.class="loopText",l(a,s),void 0!==n.sectionTitles&&n.sectionTitles.forEach(function(t,e){""!==t&&(s.text="[ "+t+" ]",s.y=n.sections[e]+1.5*r.boxMargin,l(a,s))})},d=e.insertArrowHead=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},h=e.insertArrowCrossHead=function(t){var e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},f=e.getTextObj=function(){return{x:0,y:0,fill:"black","text-anchor":"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0}},_=e.getNoteRect=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},p=function(){function e(t,e,n,r,a,i,s){c(e.append("text").attr("x",n+a/2).attr("y",r+i/2+5).style("text-anchor","middle").text(t),s)}function l(t,e,n,r,a,i,s){var o=e.append("text").attr("x",n+a/2).attr("y",r).style("text-anchor","middle");if(o.append("tspan").attr("x",n+a/2).attr("dy","0").text(t),void 0!==o.textwrap){o.textwrap({x:n+a/2,y:r,width:a,height:i},0);var u=o.selectAll("tspan");0o?e+a-5:n+a+5:(n-e)/2+e+a}).attr("y",function(t,e){return e*n+y.barHeight/2+(y.fontSize/2-2)+r}).attr("text-height",e).attr("class",function(t){for(var e=h(t.startTime),n=h(t.endTime),r=this.getBBox().width,a=0,i=0;io?"taskTextOutsideLeft taskTextOutside"+a+" "+s:"taskTextOutsideRight taskTextOutside"+a+" "+s:"taskText taskText"+a+" "+s})}(t,a,i,s,r,0,e),function(r,a){for(var i=[],s=0,t=0;t "+t.w+": "+JSON.stringify(a.edge(t))),function(t,e,n){var r=function(t){switch(t){case y.default.relationType.AGGREGATION:return"aggregation";case y.default.relationType.EXTENSION:return"extension";case y.default.relationType.COMPOSITION:return"composition";case y.default.relationType.DEPENDENCY:return"dependency"}},a=e.points,i=g.default.svg.line().x(function(t){return t.x}).y(function(t){return t.y}).interpolate("basis"),s=t.append("path").attr("d",i(a)).attr("id","edge"+M).attr("class","relation"),o="";v.arrowMarkerAbsolute&&(o=(o=(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),"none"!==n.relation.type1&&s.attr("marker-start","url("+o+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&s.attr("marker-end","url("+o+"#"+r(n.relation.type2)+"End)");var u=void 0,l=void 0,c=e.points.length;if(c%2!=0){var d=e.points[Math.floor(c/2)],h=e.points[Math.ceil(c/2)];u=(d.x+h.x)/2,l=(d.y+h.y)/2}else{var f=e.points[Math.floor(c/2)];u=f.x,l=f.y}if(void 0!==n.title){var _=t.append("g").attr("class","classLabel"),p=_.append("text").attr("class","label").attr("x",u).attr("y",l).attr("fill","red").attr("text-anchor","middle").text(n.title),m=(window.label=p).node().getBBox();_.insert("rect",":first-child").attr("class","box").attr("x",m.x-v.padding/2).attr("y",m.y-v.padding/2).attr("width",m.width+v.padding).attr("height",m.height+v.padding)}M++}(r,a.edge(t),a.edge(t).relation)}),r.attr("height","100%"),r.attr("width","100%"),r.attr("viewBox","0 0 "+(a.graph().width+20)+" "+(a.graph().height+20))};e.default={setConf:a,draw:i}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.draw=e.setConf=void 0;var u=r(n(177)),l=r(n(245)),c=r(n(2)),d=r(n(265)),h=r(n(327)),f=r(n(201)),_=r(n(176)),p=r(n(6)),m=n(1);function r(t){return t&&t.__esModule?t:{default:t}}var y={},g=void 0,v={nodeSpacing:150,nodeFillColor:"yellow",nodeStrokeWidth:2,nodeStrokeColor:"grey",lineStrokeWidth:4,branchOffset:50,lineColor:"grey",leftMargin:50,branchColors:["#442f74","#983351","#609732","#AA9A39"],nodeRadius:10,nodeLabel:{width:75,height:100,x:-25,y:0}},M={},a=e.setConf=function(t){M=t};function k(t,e,n,r){r=r||"basis";var a=v.branchColors[n%v.branchColors.length],i=p.default.svg.line().x(function(t){return Math.round(t.x)}).y(function(t){return Math.round(t.y)}).interpolate(r);t.append("svg:path").attr("d",i(e)).style("stroke",a).style("stroke-width",v.lineStrokeWidth).style("fill","none")}function b(t,e){e=e||t.node().getBBox();var n=t.node().getCTM();return{left:n.e+e.x*n.a,top:n.f+e.y*n.d,width:e.width,height:e.height}}function L(t,e,n,r,a){m.logger.debug("svgDrawLineForCommits: ",e,n);var i=b(t.select("#node-"+e+" circle")),s=b(t.select("#node-"+n+" circle"));switch(r){case"LR":if(i.left-s.left>v.nodeSpacing){var o={x:i.left-v.nodeSpacing,y:s.top+s.height/2};k(t,[o,{x:s.left+s.width,y:s.top+s.height/2}],a,"linear"),k(t,[{x:i.left,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:o.y},o],a)}else k(t,[{x:i.left,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:s.top+s.height/2},{x:s.left+s.width,y:s.top+s.height/2}],a);break;case"BT":if(s.top-i.top>v.nodeSpacing){var u={x:s.left+s.width/2,y:i.top+i.height+v.nodeSpacing};k(t,[u,{x:s.left+s.width/2,y:s.top}],a,"linear"),k(t,[{x:i.left+i.width/2,y:i.top+i.height},{x:i.left+i.width/2,y:i.top+i.height+v.nodeSpacing/2},{x:s.left+s.width/2,y:u.y-v.nodeSpacing/2},u],a)}else k(t,[{x:i.left+i.width/2,y:i.top+i.height},{x:i.left+i.width/2,y:i.top+v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top-v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top}],a)}}var i=e.draw=function(t,e,n){try{var r=_.default.parser;r.yy=f.default,m.logger.debug("in gitgraph renderer",t,e,n),r.parse(t+"\n"),v=(0,l.default)(v,M,f.default.getOptions()),m.logger.debug("effective options",v);var a=f.default.getDirection();y=f.default.getCommits();var i=f.default.getBranchesAsObjArray();"BT"===a&&(v.nodeLabel.x=i.length*v.branchOffset,v.nodeLabel.width="100%",v.nodeLabel.y=-2*v.nodeRadius);var s=p.default.select("#"+e);(o=s).append("defs").append("g").attr("id","def-commit").append("circle").attr("r",v.nodeRadius).attr("cx",0).attr("cy",0),o.select("#def-commit").append("foreignObject").attr("width",v.nodeLabel.width).attr("height",v.nodeLabel.height).attr("x",v.nodeLabel.x).attr("y",v.nodeLabel.y).attr("class","node-label").attr("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility").append("xhtml:p").html(""),g=1,(0,u.default)(i,function(t){!function t(e,n,r,a){var i=void 0,s=Object.keys(y).length;if((0,h.default)(n))do{if(i=y[n],m.logger.debug("in renderCommitHistory",i.id,i.seq),0=i)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}},function(t,e,n){var a=n(22),i=n(13),s=n(31),o=n(14);t.exports=function(t,e,n){if(!o(n))return!1;var r=typeof e;return!!("number"==r?i(n)&&s(e,n.length):"string"==r&&e in n)&&a(n[e],t)}},function(t,e,n){var r=n(179),a=n(263),i=n(13);t.exports=function(t){return i(t)?r(t,!0):a(t)}},function(t,e,n){var a=n(14),i=n(185),s=n(264),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return s(t);var e=i(t),n=[];for(var r in t)("constructor"!=r||!e&&o.call(t,r))&&n.push(r);return n}},function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},function(t,e,n){var r=n(266)(n(323));t.exports=r},function(t,e,n){var o=n(15),u=n(13),l=n(20);t.exports=function(s){return function(t,e,n){var r=Object(t);if(!u(t)){var a=o(e,3);t=l(t),e=function(t){return a(r[t],t,r)}}var i=s(t,e,n);return-1 + +
+ +
+
+ + + +
+
+ +
+ \ No newline at end of file diff --git a/GraphEditor/build/release/GraphEditor.zip b/GraphEditor/build/release/GraphEditor.zip new file mode 100644 index 0000000000000000000000000000000000000000..fa12cd69c226428147e31caa5d8c7a3b7471debe GIT binary patch literal 910867 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%0DH6k=v3QMw!*8{a|o)WnCF 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⁣l}8h$N=|g* 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%0AD zb7OMPe({By+w$_W-f;HY%2)O-{C$3^Arlsra14G$j{DQf^74bH+l}v+m%sSpiCazA zjv*e{E&9CFDy3bct#wV@-OZEiUAc>k6rMwf1h^$-STq&06cs1KQ-3?e*OPH)E;3<7IW1wSJwwKOOg8_j_-uyI;KhqQXC2;*t&&2l{Z(JKMCP zjzZ@&$XatkXc-?s$6ow}aNPhk!Mss252xA7_a8DGjeLJLopM&(A3u@;Mp<)%@d0`o z)6r>5=*k8X3in4ebK-*ceDT49AR{i}eaCJcGM|YMt9&{}14x=GX1e)djpr78e>$`U z;|TZ0)!i%grj02HZe(-!b8d>mvx2drpAu3i7Q`*>55>(g_!O=F7ogSu`d|O6O81}r z;ure=zXqxZPy9pYsJHr;$!O>XSOvDKt!jc~t99$GI_#YE!kdc2zu}b;~3Tc&A1GDys`#(|5Z@zo_dZTJ{dGDu0^k+rsV$5r+ z1deEQ!id1fy`$0ioHx%83E$caFZvt-3mT{v4@nW)AyhO6rgIuh5`%86 zF55D^?*APJ?|nk#v>X5H*1!Az{$I|w{{OGojf6tn&mZ&3;$vQ6!%UKESNHa6wr>@O z1(vF;es@ZG>f5*0sudRqxm_j8YW26a4A#jpUX$)o3#)(b1IAg0>X{9#{`US2$_q6$ zN`IQ%7rw(=)e7~Kw}tO=Jp{~@uah5182mad$F<0xu=&rei3IE9KK#28`MZbJO59O$ z$GQFNb;bwBjZ<iEPb!EgTI}zXN}Qi<9A!CWvUoJ*f0K5 zw$%rn;p-0cJJ1`L5)M5MKz>8~&I4$Qk4`4OfQ=+h8aTKX+$y?tb+G4tXEg1%-~Ild z{qz6w7a247KmHHZ|K;EP`(OS-|Nobqll(tM8UHdVepKWjvyc9Fnu+{m@v|b`%|81N z|KXRB3a4L{;nnP`jsN49IV@ZJvWNq+FaPKN^Oq?``0n@r;y=;Lf5E^173ll_{=a^y G$NwK!gVZ + +# AnTOS Web desktop is is licensed under the GNU General Public +# License v3.0, see the LICENCE file for more information + +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +#along with this program. If not, see https://www.gnu.org/licenses/. +class GraphEditor extends this.OS.GUI.BaseApplication + constructor: ( args ) -> + super "GraphEditor", args + + main: () -> + me = @ + #mermaid.initialize { startOnLoad: false } + mermaid.initialize { + theme: 'forest' + } + @currfile = if @args and @args.length > 0 then @args[0].asFileHandler() else "Untitled".asFileHandler() + @currfile.dirty = false + @datarea = @find "datarea" + @preview = @find "preview" + @btctn = @find "btn-container" + @.editor = ace.edit @datarea + @.editor.setOptions { + enableBasicAutocompletion: true, + enableLiveAutocompletion: true, + fontSize: "10pt" + } + #@.editor.completers.push { getCompletions: ( editor, session, pos, prefix, callback ) -> } + @editor.getSession().setUseWrapMode true + @editor.session.setMode "ace/mode/text" + @editor.setTheme "ace/theme/monokai" + @editor.on "input", () -> + if me.editormux + me.editormux = false + return false + if not me.currfile.dirty + me.currfile.dirty = true + + + if not me.currfile.basename + me.editormux = true + me.editor.setValue GraphEditor.dummymermaid + me.renderSVG false + + + @editor.container.addEventListener "keydown", (e) -> + me.renderSVG true if e.keyCode is 13 + , true + + @bindKey "CTRL-R", () -> me.renderSVG false + @bindKey "ALT-G", () -> me.export "SVG" + @bindKey "ALT-P", () -> me.export "PNG" + @bindKey "ALT-N", () -> me.actionFile "#{me.name}-New" + @bindKey "ALT-O", () -> me.actionFile "#{me.name}-Open" + @bindKey "CTRL-S", () -> me.actionFile "#{me.name}-Save" + @bindKey "ALT-W", () -> me.actionFile "#{me.name}-Saveas" + @bindKey "CTRL-M", () -> me.svgToCanvas(()->) + + @on "hboxchange", () -> + me.editor.resize() + me.calibrate() + @on "focus", () -> me.editor.focus() + (@find "btn-zoomin").set "onbtclick", (e) -> + me.pan.zoomIn() if me.pan + (@find "btn-zoomout").set "onbtclick", (e) -> + me.pan.zoomOut() if me.pan + (@find "btn-reset").set "onbtclick", (e) -> + me.pan.resetZoom() if me.pan + + @open @currfile + + menu: () -> + me = @ + menu = [{ + text: "__(File)", + child: [ + { text: "__(New)", dataid: "#{@name}-New", shortcut: "A-N" }, + { text: "__(Open)", dataid: "#{@name}-Open", shortcut: "A-O" }, + { text: "__(Save)", dataid: "#{@name}-Save", shortcut: "C-S" }, + { text: "__(Save as)",dataid: "#{@name}-Saveas" , shortcut: "A-W" }, + { text: "__(Render)", dataid: "#{@name}-Render", shortcut: "C-R" }, + { + text: "__(Export as)", + child: [ + { text: "SVG", shortcut: "A-G" }, + { text: "PNG", shortcut: "A-P" } + ], + onmenuselect: (e) -> me.export e.item.data.text + }, + ], + onmenuselect: (e) -> me.actionFile e.item.data.dataid + }] + menu + open: (file) -> + return if file.path is "Untitled" + me = @ + file.dirty = false + file.read (d) -> + me.currfile = file + me.editormux = true + me.currfile.dirty = false + me.editor.setValue d + me.scheme.set "apptitle", "#{me.currfile.basename}" + me.renderSVG false + save: (file) -> + me = @ + file.write "text/plain", (d) -> + return me.error __("Error saving file {0}", file.basename) if d.error + file.dirty = false + file.text = file.basename + me.scheme.set "apptitle", "#{me.currfile.basename}" + + actionFile: (e) -> + me = @ + saveas = () -> + me.openDialog "FileDiaLog", (d, n) -> + me.currfile.setPath "#{d}/#{n}" + me.save me.currfile + , __("Save as"), { file: me.currfile } + switch e + when "#{@name}-Open" + @openDialog "FileDiaLog", ( d, f ) -> + me.open "#{d}/#{f}".asFileHandler() + , __("Open file") + when "#{@name}-Save" + @currfile.cache = @editor.getValue() + return @save @currfile if @currfile.basename + saveas() + when "#{@name}-Saveas" + @currfile.cache = @editor.getValue() + saveas() + when "#{@name}-Render" + me.renderSVG false + when "#{@name}-New" + @currfile = "Untitled".asFileHandler() + @currfile.cache = "" + @currfile.dirty = false + @editormux = true + @editor.setValue("") + + export: (t) -> + me = @ + me.openDialog "FileDiaLog", (d, n) -> + fp = "#{d}/#{n}".asFileHandler() + try + switch t + when "SVG" + fp.cache = me.svgtext() + fp.write "text/plain", (r) -> + return me.error __("Cannot export to {0}: {1}", t, r.error) if r.error + me.notify __("File exported") + when "PNG" + # toDataURL("image/png") + me.svgToCanvas (canvas) -> + try + fp.cache = canvas.toDataURL "image/png" + fp.write "base64", (r) -> + return me.error __("Cannot export to {0}: {1}", t, r.error) if r.error + me.notify __("File exported") + catch e + me.error __("Cannot export to PNG in this browser: {0}", e.message) + catch e + me.error __("Cannot export: {0}", e.message) + , __("Export as"), { file: me.currfile } + + + renderSVG: (silent) -> + me = @ + id = Math.floor(Math.random() * 100000) + 1 + #if silent + # mermaid.parseError = (e, h) -> + #else + # mermaid.parseError = (e, h) -> + # me.error e + text = @editor.getValue() + try + mermaid.parse text + catch e + me.error __("Syntax error: {0}", e.str) if not silent + return + mermaid.render "c#{id}", text, (text, f) -> + me.preview.innerHTML = text + $(me.preview).append me.btctn + me.calibrate() + svg = $(me.preview).children("svg")[0] + $(svg).attr("style", "") + me.pan = svgPanZoom svg, { + zoomEnabled: true, + controlIconsEnabled: false, + fit: true, + center: true, + minZoom: 0.1 + } + #rd $($.parseHTML text). + , me.preview + + svgtext: () -> + svg = $(@preview).children("svg")[0] + $("g.label",svg).each (i) -> + $(@) + .css("font-family","Ubuntu") + .css("font-size", "13px") + $("text", svg).each (j) -> + $(@) + .css("font-family","Ubuntu") + .css("font-size", "13px") + serializer = new XMLSerializer() + return serializer.serializeToString(svg) + + svgToCanvas: (f) -> + me = @ + img = new Image() + svgStr = @svgtext() + DOMURL = window.URL || window.webkitURL || window + svgBlob = new Blob [svgStr], { type: 'image/svg+xml;charset=utf-8' } + url = DOMURL.createObjectURL svgBlob + img.onload = () -> + canvas = me.find "offscreen" + canvas.width = img.width + canvas.height = img.height + canvas.getContext("2d").drawImage img, 0, 0, img.width, img.height + f(canvas) + img.src = url + + calibrate: () -> + svg = ($ @preview).children("svg")[0] + if svg + prs = [$(@preview).width(), $(@preview).height()] + $(svg).attr "width", prs[0] + "px" + $(svg).attr "height", prs[1] + "px" + + cleanup: (evt) -> + return unless @currfile + return unless @currfile.dirty + me = @ + evt.preventDefault() + @.openDialog "YesNoDialog", (d) -> + if d + me.currfile.dirty = false + me.quit() + , __("Quit"), { text: __("Quit without saving ?") } + +GraphEditor.dummymermaid = """ +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +""" +GraphEditor.dependencies = [ + "ace/ace" +] +this.OS.register "GraphEditor", GraphEditor diff --git a/GraphEditor/css/main.css b/GraphEditor/css/main.css new file mode 100644 index 0000000..b1e78f8 --- /dev/null +++ b/GraphEditor/css/main.css @@ -0,0 +1,22 @@ +afx-app-window[data-id="graph_editor_win"] div[data-id="preview"] +{ + display: flex; + align-items: center; + justify-content: center; +} +afx-app-window[data-id="graph_editor_win"] afx-button button +{ + border-radius: 0; + padding-top:2px; + padding-bottom: 2px; +} +afx-app-window[data-id="graph_editor_win"] afx-resizer{ + background-color: transparent; +} +afx-app-window[data-id="graph_editor_win"] div[data-id="btn-container"]{ + background-color: transparent; + position: absolute; + bottom:10px; + right: 10px; + display: inline; +} diff --git a/GraphEditor/javascripts/mermaidAPI.min.js b/GraphEditor/javascripts/mermaidAPI.min.js new file mode 100644 index 0000000..b24ed70 --- /dev/null +++ b/GraphEditor/javascripts/mermaidAPI.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,function(){return function(n){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}return a.m=n,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=204)}([function(t,e,qn){(function(Wn){var t;t=function(){"use strict";var t,a;function h(){return t.apply(null,arguments)}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function u(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function l(t){return void 0===t}function c(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function d(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var n,r=[];for(n=0;n>>0,r=0;rLt(t)?(i=t+1,s=o-Lt(t)):(i=t,s=o),{year:i,dayOfYear:s}}function zt(t,e,n){var r,a,i=It(t.year(),e,n),s=Math.floor((t.dayOfYear()-i-1)/7)+1;return s<1?r=s+Wt(a=t.year()-1,e,n):s>Wt(t.year(),e,n)?(r=s-Wt(t.year(),e,n),a=t.year()+1):(a=t.year(),r=s),{week:r,year:a}}function Wt(t,e,n){var r=It(t,e,n),a=It(t+1,e,n);return(Lt(t)-r+a)/7}z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),j("week","w"),j("isoWeek","W"),H("week",5),H("isoWeek",5),ut("w",Z),ut("ww",Z,V),ut("W",Z),ut("WW",Z,V),ft(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=w(t)});z("d",0,"do","day"),z("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),z("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),z("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),j("day","d"),j("weekday","e"),j("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),ut("d",Z),ut("e",Z),ut("E",Z),ut("dd",function(t,e){return e.weekdaysMinRegex(t)}),ut("ddd",function(t,e){return e.weekdaysShortRegex(t)}),ut("dddd",function(t,e){return e.weekdaysRegex(t)}),ft(["dd","ddd","dddd"],function(t,e,n,r){var a=n._locale.weekdaysParse(t,r,n._strict);null!=a?e.d=a:y(n).invalidWeekday=t}),ft(["d","e","E"],function(t,e,n,r){e[r]=w(t)});var qt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ut="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Vt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $t=st;var Gt=st;var Jt=st;function Zt(){function t(t,e){return e.length-t.length}var e,n,r,a,i,s=[],o=[],u=[],l=[];for(e=0;e<7;e++)n=m([2e3,1]).day(e),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),s.push(r),o.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(s.sort(t),o.sort(t),u.sort(t),l.sort(t),e=0;e<7;e++)o[e]=ct(o[e]),u[e]=ct(u[e]),l[e]=ct(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Kt(){return this.hours()%12||12}function Xt(t,e){z(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Qt(t,e){return e._meridiemParse}z("H",["HH",2],0,"hour"),z("h",["hh",2],0,Kt),z("k",["kk",2],0,function(){return this.hours()||24}),z("hmm",0,0,function(){return""+Kt.apply(this)+P(this.minutes(),2)}),z("hmmss",0,0,function(){return""+Kt.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)}),z("Hmm",0,0,function(){return""+this.hours()+P(this.minutes(),2)}),z("Hmmss",0,0,function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)}),Xt("a",!0),Xt("A",!1),j("hour","h"),H("hour",13),ut("a",Qt),ut("A",Qt),ut("H",Z),ut("h",Z),ut("k",Z),ut("HH",Z,V),ut("hh",Z,V),ut("kk",Z,V),ut("hmm",K),ut("hmmss",X),ut("Hmm",K),ut("Hmmss",X),ht(["H","HH"],yt),ht(["k","kk"],function(t,e,n){var r=w(t);e[yt]=24===r?0:r}),ht(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),ht(["h","hh"],function(t,e,n){e[yt]=w(t),y(n).bigHour=!0}),ht("hmm",function(t,e,n){var r=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r)),y(n).bigHour=!0}),ht("hmmss",function(t,e,n){var r=t.length-4,a=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r,2)),e[vt]=w(t.substr(a)),y(n).bigHour=!0}),ht("Hmm",function(t,e,n){var r=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r))}),ht("Hmmss",function(t,e,n){var r=t.length-4,a=t.length-2;e[yt]=w(t.substr(0,r)),e[gt]=w(t.substr(r,2)),e[vt]=w(t.substr(a))});var te,ee=Yt("Hours",!0),ne={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:jt,monthsShort:Ct,week:{dow:0,doy:6},weekdays:qt,weekdaysMin:Vt,weekdaysShort:Ut,meridiemParse:/[ap]\.?m?\.?/i},re={},ae={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function se(t){var e=null;if(!re[t]&&void 0!==Wn&&Wn&&Wn.exports)try{e=te._abbr;qn(207)("./"+t),oe(e)}catch(t){}return re[t]}function oe(t,e){var n;return t&&(n=l(e)?le(t):ue(t,e))&&(te=n),te._abbr}function ue(t,e){if(null!==e){var n=ne;if(e.abbr=t,null!=re[t])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=re[t]._config;else if(null!=e.parentLocale){if(null==re[e.parentLocale])return ae[e.parentLocale]||(ae[e.parentLocale]=[]),ae[e.parentLocale].push({name:t,config:e}),null;n=re[e.parentLocale]._config}return re[t]=new S(A(n,e)),ae[t]&&ae[t].forEach(function(t){ue(t.name,t.config)}),oe(t),re[t]}return delete re[t],null}function le(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return te;if(!o(t)){if(e=se(t))return e;t=[t]}return function(t){for(var e,n,r,a,i=0;i=e&&s(a,n,!0)>=e-1)break;e--}i++}return null}(t)}function ce(t){var e,n=t._a;return n&&-2===y(t).overflow&&(e=n[pt]<0||11St(n[_t],n[pt])?mt:n[yt]<0||24Wt(n,i,s)?y(t)._overflowWeeks=!0:null!=u?y(t)._overflowWeekday=!0:(o=Rt(n,r,a,i,s),t._a[_t]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(i=de(t._a[_t],r[_t]),(t._dayOfYear>Lt(i)||0===t._dayOfYear)&&(y(t)._overflowDayOfYear=!0),n=Nt(i,0,t._dayOfYear),t._a[pt]=n.getUTCMonth(),t._a[mt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=r[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[yt]&&0===t._a[gt]&&0===t._a[vt]&&0===t._a[Mt]&&(t._nextDay=!0,t._a[yt]=0),t._d=(t._useUTC?Nt:function(t,e,n,r,a,i,s){var o=new Date(t,e,n,r,a,i,s);return t<100&&0<=t&&isFinite(o.getFullYear())&&o.setFullYear(t),o}).apply(null,s),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[yt]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(y(t).weekdayMismatch=!0)}}var fe=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,pe=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ye=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ge=/^\/?Date\((\-?\d+)/i;function ve(t){var e,n,r,a,i,s,o=t._i,u=fe.exec(o)||_e.exec(o);if(u){for(y(t).iso=!0,e=0,n=me.length;en.valueOf():n.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Ie,ln.isUTC=Ie,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Ot),ln.years=n("years accessor is deprecated. Use year instead",Dt),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var t={};if(M(t,this),(t=xe(t))._a){var e=t._isUTC?m(t._a):Ye(t._a);this._isDSTShifted=this.isValid()&&0Y.width){var l=a.text();if(a.text(""),l){var c,d;if(-1!==l.indexOf(" "))c=" ",d=l.split(" ");else{c="";var h,f,_=l.length,p=Math.ceil(s/Y.width),m=Math.floor(_/p);_<=m*p||p++,d=[];for(var y=0;yY.width&&w&&""!==w&&(k={string:w,width:x,offset:M+=x},v.push(k),a.text(""),a.text(L),y===d.length-1&&(b=L,a.text(b),D=n.getComputedTextLength())),y===d.length-1){a.text("");b&&""!==b&&(0>>1,Os=[["ary",vs],["bind",hs],["bindKey",fs],["curry",ps],["curryRight",ms],["flip",ks],["partial",ys],["partialRight",gs],["rearg",Ms]],Hs="[object Arguments]",Ps="[object Array]",Bs="[object AsyncFunction]",Ns="[object Boolean]",Is="[object Date]",Rs="[object DOMException]",zs="[object Error]",Ws="[object Function]",qs="[object GeneratorFunction]",Us="[object Map]",Vs="[object Number]",$s="[object Null]",Gs="[object Object]",Js="[object Promise]",Zs="[object Proxy]",Ks="[object RegExp]",Xs="[object Set]",Qs="[object String]",to="[object Symbol]",eo="[object Undefined]",no="[object WeakMap]",ro="[object WeakSet]",ao="[object ArrayBuffer]",io="[object DataView]",so="[object Float32Array]",oo="[object Float64Array]",uo="[object Int8Array]",lo="[object Int16Array]",co="[object Int32Array]",ho="[object Uint8Array]",fo="[object Uint8ClampedArray]",_o="[object Uint16Array]",po="[object Uint32Array]",mo=/\b__p \+= '';/g,yo=/\b(__p \+=) '' \+/g,go=/(__e\(.*?\)|\b__t\)) \+\n'';/g,vo=/&(?:amp|lt|gt|quot|#39);/g,Mo=/[&<>"']/g,ko=RegExp(vo.source),bo=RegExp(Mo.source),Lo=/<%-([\s\S]+?)%>/g,wo=/<%([\s\S]+?)%>/g,xo=/<%=([\s\S]+?)%>/g,Do=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yo=/^\w*$/,To=/^\./,Ao=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,So=/[\\^$.*+?()[\]{}|]/g,Eo=RegExp(So.source),jo=/^\s+|\s+$/g,Co=/^\s+/,Fo=/\s+$/,Oo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ho=/\{\n\/\* \[wrapped with (.+)\] \*/,Po=/,? & /,Bo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,No=/\\(\\)?/g,Io=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ro=/\w*$/,zo=/^[-+]0x[0-9a-f]+$/i,Wo=/^0b[01]+$/i,qo=/^\[object .+?Constructor\]$/,Uo=/^0o[0-7]+$/i,Vo=/^(?:0|[1-9]\d*)$/,$o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Go=/($^)/,Jo=/['\n\r\u2028\u2029\\]/g,t="\\ud800-\\udfff",e="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",n="\\u2700-\\u27bf",r="a-z\\xdf-\\xf6\\xf8-\\xff",a="A-Z\\xc0-\\xd6\\xd8-\\xde",i="\\ufe0e\\ufe0f",s="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",o="['’]",u="["+t+"]",l="["+s+"]",c="["+e+"]",d="\\d+",h="["+n+"]",f="["+r+"]",_="[^"+t+s+d+n+r+a+"]",p="\\ud83c[\\udffb-\\udfff]",m="[^"+t+"]",y="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",v="["+a+"]",M="\\u200d",k="(?:"+f+"|"+_+")",b="(?:"+v+"|"+_+")",L="(?:['’](?:d|ll|m|re|s|t|ve))?",w="(?:['’](?:D|LL|M|RE|S|T|VE))?",x="(?:"+c+"|"+p+")"+"?",D="["+i+"]?",Y=D+x+("(?:"+M+"(?:"+[m,y,g].join("|")+")"+D+x+")*"),T="(?:"+[h,y,g].join("|")+")"+Y,A="(?:"+[m+c+"?",c,y,g,u].join("|")+")",Zo=RegExp(o,"g"),Ko=RegExp(c,"g"),S=RegExp(p+"(?="+p+")|"+A+Y,"g"),Xo=RegExp([v+"?"+f+"+"+L+"(?="+[l,v,"$"].join("|")+")",b+"+"+w+"(?="+[l,v+k,"$"].join("|")+")",v+"?"+k+"+"+L,v+"+"+w,"\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",d,T].join("|"),"g"),E=RegExp("["+M+t+e+i+"]"),Qo=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eu=-1,nu={};nu[so]=nu[oo]=nu[uo]=nu[lo]=nu[co]=nu[ho]=nu[fo]=nu[_o]=nu[po]=!0,nu[Hs]=nu[Ps]=nu[ao]=nu[Ns]=nu[io]=nu[Is]=nu[zs]=nu[Ws]=nu[Us]=nu[Vs]=nu[Gs]=nu[Ks]=nu[Xs]=nu[Qs]=nu[no]=!1;var ru={};ru[Hs]=ru[Ps]=ru[ao]=ru[io]=ru[Ns]=ru[Is]=ru[so]=ru[oo]=ru[uo]=ru[lo]=ru[co]=ru[Us]=ru[Vs]=ru[Gs]=ru[Ks]=ru[Xs]=ru[Qs]=ru[to]=ru[ho]=ru[fo]=ru[_o]=ru[po]=!0,ru[zs]=ru[Ws]=ru[no]=!1;var j={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},au=parseFloat,iu=parseInt,C="object"==typeof R&&R&&R.Object===Object&&R,F="object"==typeof self&&self&&self.Object===Object&&self,su=C||F||Function("return this")(),O="object"==typeof W&&W&&!W.nodeType&&W,H=O&&"object"==typeof z&&z&&!z.nodeType&&z,ou=H&&H.exports===O,P=ou&&C.process,B=function(){try{return P&&P.binding&&P.binding("util")}catch(t){}}(),uu=B&&B.isArrayBuffer,lu=B&&B.isDate,cu=B&&B.isMap,du=B&&B.isRegExp,hu=B&&B.isSet,fu=B&&B.isTypedArray;function _u(t,e){return t.set(e[0],e[1]),t}function pu(t,e){return t.add(e),t}function mu(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function yu(t,e,n,r){for(var a=-1,i=null==t?0:t.length;++a":">",'"':""","'":"'"});function Vu(t){return"\\"+j[t]}function $u(t){return E.test(t)}function Gu(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function Ju(e,n){return function(t){return e(n(t))}}function Zu(t,e){for(var n=-1,r=t.length,a=0,i=[];++n",""":'"',"'":"'"});var el=function t(e){var n,T=(e=null==e?su:el.defaults(su.Object(),e,el.pick(su,tu))).Array,r=e.Date,a=e.Error,m=e.Function,i=e.Math,w=e.Object,y=e.RegExp,c=e.String,A=e.TypeError,s=T.prototype,o=m.prototype,u=w.prototype,l=e["__core-js_shared__"],d=o.toString,x=u.hasOwnProperty,h=0,f=(n=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",_=u.toString,p=d.call(w),g=su._,v=y("^"+d.call(x).replace(So,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),M=ou?e.Buffer:ts,k=e.Symbol,b=e.Uint8Array,L=M?M.allocUnsafe:ts,D=Ju(w.getPrototypeOf,w),Y=w.create,S=u.propertyIsEnumerable,E=s.splice,j=k?k.isConcatSpreadable:ts,C=k?k.iterator:ts,F=k?k.toStringTag:ts,O=function(){try{var t=In(w,"defineProperty");return t({},"",{}),t}catch(t){}}(),H=e.clearTimeout!==su.clearTimeout&&e.clearTimeout,P=r&&r.now!==su.Date.now&&r.now,B=e.setTimeout!==su.setTimeout&&e.setTimeout,N=i.ceil,I=i.floor,R=w.getOwnPropertySymbols,z=M?M.isBuffer:ts,W=e.isFinite,q=s.join,U=Ju(w.keys,w),V=i.max,$=i.min,G=r.now,J=e.parseInt,Z=i.random,K=s.reverse,X=In(e,"DataView"),Q=In(e,"Map"),tt=In(e,"Promise"),et=In(e,"Set"),nt=In(e,"WeakMap"),rt=In(w,"create"),at=nt&&new nt,it={},st=fr(X),ot=fr(Q),ut=fr(tt),lt=fr(et),ct=fr(nt),dt=k?k.prototype:ts,ht=dt?dt.valueOf:ts,ft=dt?dt.toString:ts;function _t(t){if(Sa(t)&&!va(t)&&!(t instanceof gt)){if(t instanceof yt)return t;if(x.call(t,"__wrapped__"))return _r(t)}return new yt(t)}var pt=function(){function n(){}return function(t){if(!Aa(t))return{};if(Y)return Y(t);n.prototype=t;var e=new n;return n.prototype=ts,e}}();function mt(){}function yt(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=ts}function gt(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=js,this.__views__=[]}function vt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=es&&(i=Ru,s=!1,e=new bt(e));t:for(;++a>>0,e>>>=0;for(var i=T(a);++r>>1,s=t[i];null!==s&&!Pa(s)&&(n?s<=e:s=ws)return arguments[0]}else r=0;return n.apply(ts,arguments)}}function ur(t,e){var n=-1,r=t.length,a=r-1;for(e=e===ts?r:e;++n>>0)?(t=$a(t))&&("string"==typeof e||null!=e&&!Fa(e))&&!(e=Pe(e))&&$u(t)?Je(Qu(t),0,n):t.split(e,n):[]},_t.spread=function(r,a){if("function"!=typeof r)throw new A(rs);return a=null==a?0:V(Wa(a),0),we(function(t){var e=t[a],n=Je(t,0,a);return e&&xu(n,e),mu(r,this,n)})},_t.tail=function(t){var e=null==t?0:t.length;return e?Ee(t,1,e):[]},_t.take=function(t,e,n){return t&&t.length?Ee(t,0,(e=n||e===ts?1:Wa(e))<0?0:e):[]},_t.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?Ee(t,(e=r-(e=n||e===ts?1:Wa(e)))<0?0:e,r):[]},_t.takeRightWhile=function(t,e){return t&&t.length?Re(t,Pn(e,3),!1,!0):[]},_t.takeWhile=function(t,e){return t&&t.length?Re(t,Pn(e,3)):[]},_t.tap=function(t,e){return e(t),t},_t.throttle=function(t,e,n){var r=!0,a=!0;if("function"!=typeof t)throw new A(rs);return Aa(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),sa(t,e,{leading:r,maxWait:e,trailing:a})},_t.thru=zr,_t.toArray=Ra,_t.toPairs=fi,_t.toPairsIn=_i,_t.toPath=function(t){return va(t)?wu(t,hr):Pa(t)?[t]:rn(dr($a(t)))},_t.toPlainObject=Va,_t.transform=function(t,r,a){var e=va(t),n=e||La(t)||Ba(t);if(r=Pn(r,4),null==a){var i=t&&t.constructor;a=n?e?new i:[]:Aa(t)&&Da(i)?pt(D(t)):{}}return(n?gu:Gt)(t,function(t,e,n){return r(a,t,e,n)}),a},_t.unary=function(t){return na(t,1)},_t.union=Sr,_t.unionBy=Er,_t.unionWith=jr,_t.uniq=function(t){return t&&t.length?Be(t):[]},_t.uniqBy=function(t,e){return t&&t.length?Be(t,Pn(e,2)):[]},_t.uniqWith=function(t,e){return e="function"==typeof e?e:ts,t&&t.length?Be(t,ts,e):[]},_t.unset=function(t,e){return null==t||Ne(t,e)},_t.unzip=Cr,_t.unzipWith=Fr,_t.update=function(t,e,n){return null==t?t:Ie(t,e,Ve(n))},_t.updateWith=function(t,e,n,r){return r="function"==typeof r?r:ts,null==t?t:Ie(t,e,Ve(n),r)},_t.values=pi,_t.valuesIn=function(t){return null==t?[]:Iu(t,oi(t))},_t.without=Or,_t.words=Di,_t.wrap=function(t,e){return ha(Ve(e),t)},_t.xor=Hr,_t.xorBy=Pr,_t.xorWith=Br,_t.zip=Nr,_t.zipObject=function(t,e){return qe(t||[],e||[],At)},_t.zipObjectDeep=function(t,e){return qe(t||[],e||[],Ye)},_t.zipWith=Ir,_t.entries=fi,_t.entriesIn=_i,_t.extend=Ja,_t.extendWith=Za,Hi(_t,_t),_t.add=Vi,_t.attempt=Yi,_t.camelCase=mi,_t.capitalize=yi,_t.ceil=$i,_t.clamp=function(t,e,n){return n===ts&&(n=e,e=ts),n!==ts&&(n=(n=Ua(n))==n?n:0),e!==ts&&(e=(e=Ua(e))==e?e:0),Ot(Ua(t),e,n)},_t.clone=function(t){return Ht(t,ls)},_t.cloneDeep=function(t){return Ht(t,os|ls)},_t.cloneDeepWith=function(t,e){return Ht(t,os|ls,e="function"==typeof e?e:ts)},_t.cloneWith=function(t,e){return Ht(t,ls,e="function"==typeof e?e:ts)},_t.conformsTo=function(t,e){return null==e||Pt(t,e,si(e))},_t.deburr=gi,_t.defaultTo=function(t,e){return null==t||t!=t?e:t},_t.divide=Gi,_t.endsWith=function(t,e,n){t=$a(t),e=Pe(e);var r=t.length,a=n=n===ts?r:Ot(Wa(n),0,r);return 0<=(n-=e.length)&&t.slice(n,a)==e},_t.eq=pa,_t.escape=function(t){return(t=$a(t))&&bo.test(t)?t.replace(Mo,Uu):t},_t.escapeRegExp=function(t){return(t=$a(t))&&Eo.test(t)?t.replace(So,"\\$&"):t},_t.every=function(t,e,n){var r=va(t)?Mu:zt;return n&&Gn(t,e,n)&&(e=ts),r(t,Pn(e,3))},_t.find=Ur,_t.findIndex=gr,_t.findKey=function(t,e){return Au(t,Pn(e,3),Gt)},_t.findLast=Vr,_t.findLastIndex=vr,_t.findLastKey=function(t,e){return Au(t,Pn(e,3),Jt)},_t.floor=Ji,_t.forEach=$r,_t.forEachRight=Gr,_t.forIn=function(t,e){return null==t?t:Vt(t,Pn(e,3),oi)},_t.forInRight=function(t,e){return null==t?t:$t(t,Pn(e,3),oi)},_t.forOwn=function(t,e){return t&&Gt(t,Pn(e,3))},_t.forOwnRight=function(t,e){return t&&Jt(t,Pn(e,3))},_t.get=ei,_t.gt=ma,_t.gte=ya,_t.has=function(t,e){return null!=t&&qn(t,e,ee)},_t.hasIn=ni,_t.head=kr,_t.identity=ji,_t.includes=function(t,e,n,r){t=ka(t)?t:pi(t),n=n&&!r?Wa(n):0;var a=t.length;return n<0&&(n=V(a+n,0)),Ha(t)?n<=a&&-1=$(a=e,i=n)&&r=this.__values__.length;return{done:t,value:t?ts:this.__values__[this.__index__++]}},_t.prototype.plant=function(t){for(var e,n=this;n instanceof mt;){var r=_r(n);r.__index__=0,r.__values__=ts,e?a.__wrapped__=r:e=r;var a=r;n=n.__wrapped__}return a.__wrapped__=t,e},_t.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof gt){var e=t;return this.__actions__.length&&(e=new gt(this)),(e=e.reverse()).__actions__.push({func:zr,args:[Ar],thisArg:ts}),new yt(e,this.__chain__)}return this.thru(Ar)},_t.prototype.toJSON=_t.prototype.valueOf=_t.prototype.value=function(){return ze(this.__wrapped__,this.__actions__)},_t.prototype.first=_t.prototype.head,C&&(_t.prototype[C]=function(){return this}),_t}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(su._=el,define(function(){return el})):H?((H.exports=el)._=el,O._=el):su._=el}).call(this)}).call(W,e(18),e(3)(t))},function(t,e,n){var r=n(179),a=n(240),i=n(13);t.exports=function(t){return i(t)?r(t):a(t)}},function(t,e,n){var r=n(5).Symbol;t.exports=r},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(269),a=n(270),i=n(271),s=n(272),o=n(273);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e>>1;i(t[a],e)<0?n=a+1:r=a}return n},right:function(t,e,n,r){for(arguments.length<3&&(n=0),arguments.length<4&&(r=t.length);n>>1;0e;)a.push(r/i);else for(;(r=t+n*++s)=_.length)return h?h.call(f,t):d?t.sort(d):t;for(var e,a,i,s,o=-1,u=t.length,l=_[r++],c=new g;++o=_.length)return t;var a=[],i=e[r++];return t.forEach(function(t,e){a.push({key:t,values:n(e,r)})}),i?a.sort(function(t,e){return i(t.key,e.key)}):a}(p(F.map,t,0),0)},f.key=function(t){return _.push(t),f},f.sortKeys=function(t){return e[_.length-1]=t,f},f.sortValues=function(t){return d=t,f},f.rollup=function(t){return h=t,f},f},F.set=function(t){var e=new D;if(t)for(var n=0,r=t.length;n>16,t>>8&255,255&t)}function se(t){return ie(t)+""}Xt.brighter=function(t){return new $t(Math.min(100,this.l+Gt*(arguments.length?t:1)),this.a,this.b)},Xt.darker=function(t){return new $t(Math.max(0,this.l-Gt*(arguments.length?t:1)),this.a,this.b)},Xt.rgb=function(){return Qt(this.l,this.a,this.b)};var oe=(F.rgb=ae).prototype=new It;function ue(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function le(t,e,n){var r,a,i,s=0,o=0,u=0;if(r=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(a=r[2].split(","),r[1]){case"hsl":return n(parseFloat(a[0]),parseFloat(a[1])/100,parseFloat(a[2])/100);case"rgb":return e(fe(a[0]),fe(a[1]),fe(a[2]))}return(i=_e.get(t))?e(i.r,i.g,i.b):(null==t||"#"!==t.charAt(0)||isNaN(i=parseInt(t.slice(1),16))||(4===t.length?(s=(3840&i)>>4,s|=s>>4,o=240&i,o|=o>>4,u=15&i,u|=u<<4):7===t.length&&(s=(16711680&i)>>16,o=(65280&i)>>8,u=255&i)),e(s,o,u))}function ce(t,e,n){var r,a,i=Math.min(t/=255,e/=255,n/=255),s=Math.max(t,e,n),o=s-i,u=(s+i)/2;return o?(a=u<.5?o/(s+i):o/(2-s-i),r=t==s?(e-n)/o+(e=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function De(){for(var t,e=ge,n=1/0;e;)e.c?(e.t=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Se=F.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(t,e){return(t=F.round(t,Ye(t,e))).toFixed(Math.max(0,Math.min(20,Ye(t*(1+1e-15),e))))}});function Ee(t){return t+""}var je=F.time={},Ce=Date;function Fe(){this._=new Date(1e));)i=u[a=(a+1)%u.length];return r.reverse().join(o)}:H,function(t){var e=Ae.exec(t),c=e[1]||" ",d=e[2]||">",h=e[3]||"-",n=e[4]||"",f=e[5],_=+e[6],p=e[7],m=e[8],y=e[9],g=1,v="",M="",k=!1,b=!0;switch(m&&(m=+m.substring(1)),(f||"0"===c&&"="===d)&&(f=c="0",d="="),y){case"n":p=!0,y="g";break;case"%":g=100,M="%",y="f";break;case"p":g=100,M="%",y="r";break;case"b":case"o":case"x":case"X":"#"===n&&(v="0"+y.toLowerCase());case"c":b=!1;case"d":k=!0,m=0;break;case"s":g=-1,y="r"}"$"===n&&(v=r[0],M=r[1]),"r"!=y||m||(y="g"),null!=m&&("g"==y?m=Math.max(1,Math.min(21,m)):"e"!=y&&"f"!=y||(m=Math.max(0,Math.min(20,m)))),y=Se.get(y)||Ee;var L=f&&p;return function(t){var e=M;if(k&&t%1)return"";var n=t<0||0===t&&1/t<0?(t=-t,"-"):"-"===h?"":h;if(g<0){var r=F.formatPrefix(t,m);t=r.scale(t),e=r.symbol+M}else t*=g;var a,i,s=(t=y(t,m)).lastIndexOf(".");if(s<0){var o=b?t.lastIndexOf("e"):-1;o<0?(a=t,i=""):(a=t.substring(0,o),i=t.substring(o))}else a=t.substring(0,s),i=w+t.substring(s+1);!f&&p&&(a=x(a,1/0));var u=v.length+a.length+i.length+(L?0:n.length),l=u<_?new Array(u=_-u+1).join(c):"";return L&&(a=x(l+a,l.length?_-i.length:1/0)),n+=v,t=a+i,("<"===d?n+t+l:">"===d?l+n+t:"^"===d?l.substring(0,u>>=1)+n+t+l.substring(u):n+(L?t:l+t))+e}}),timeFormat:function(t){var e=t.dateTime,n=t.date,r=t.time,a=t.periods,i=t.days,s=t.shortDays,o=t.months,u=t.shortMonths;function l(o){var u=o.length;function t(t){for(var e,n,r,a=[],i=-1,s=0;++iv(c,h)&&(h=t):v(t,h)>v(c,h)&&(c=t):c<=h?(tv(c,h)&&(h=t):v(t,h)>v(c,h)&&(c=t)}else y(t,e);p=n,_=t}function t(){m.point=s}function e(){l[0]=c,l[1]=h,m.point=y,p=null}function n(t,e){if(p){var n=t-_;i+=180bt&&(c=-(h=180)),l[0]=c,l[1]=h,p=null}function v(t,e){return(e-=t)<0?e+360:e}function M(t,e){return t[0]-e[0]}function k(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:tv(o[0],o[1])&&(o[1]=i[1]),v(i[0],o[1])>v(o[0],o[1])&&(o[0]=i[0])):n.push(o=i);for(var r,a,i,s=-1/0,o=(e=0,n[a=n.length-1]);e<=a;o=i,++e)i=n[e],(r=v(o[1],i[0]))>s&&(s=r,c=i[0],h=o[1])}return u=l=null,c===1/0||d===1/0?[[NaN,NaN],[NaN,NaN]]:[[c,d],[h,f]]}}(),F.geo.centroid=function(t){yn=gn=vn=Mn=kn=bn=Ln=wn=xn=Dn=Yn=0,F.geo.stream(t,Nn);var e=xn,n=Dn,r=Yn,a=e*e+n*n+r*r;return abt?Math.atan((Math.sin(r)*(o=Math.cos(i))*Math.sin(a)-Math.sin(i)*(s=Math.cos(r))*Math.sin(n))/(s*o*u)):(r+i)/2,d.point(p,_),d.lineEnd(),d.lineStart(),d.point(l,_),h=0),d.point(f=t,_=e),p=l},lineEnd:function(){d.lineEnd(),f=_=NaN},clean:function(){return 2-h}}},function(t,e,n,r){var a;if(null==t)a=n*Yt,r.point(-wt,a),r.point(0,a),r.point(wt,a),r.point(wt,0),r.point(wt,-a),r.point(0,-a),r.point(-wt,-a),r.point(-wt,0),r.point(-wt,a);else if(C(t[0]-e[0])>bt){var i=t[0]r&&0bt;return Zn(p,function(o){var u,l,c,d,h;return{lineStart:function(){d=c=!1,h=1},point:function(t,e){var n,r=[t,e],a=p(t,e),i=f?a?0:y(t,e):a?y(t+(t<0?wt:-wt),e):0;if(!u&&(d=c=a)&&o.lineStart(),a!==c&&(n=m(u,r),(Bn(u,n)||Bn(r,n))&&(r[0]+=bt,r[1]+=bt,a=p(r[0],r[1]))),a!==c)h=0,a?(o.lineStart(),n=m(r,u),o.point(n[0],n[1])):(n=m(u,r),o.point(n[0],n[1]),o.lineEnd()),u=n;else if(_&&u&&f^a){var s;i&l||!(s=m(r,u,!0))||(h=0,f?(o.lineStart(),o.point(s[0][0],s[0][1]),o.point(s[1][0],s[1][1]),o.lineEnd()):(o.point(s[1][0],s[1][1]),o.lineEnd(),o.lineStart(),o.point(s[0][0],s[0][1])))}!a||u&&Bn(u,r)||o.point(r[0],r[1]),u=r,c=a,l=i},lineEnd:function(){c&&o.lineEnd(),u=null},clean:function(){return h|(d&&c)<<1}}},Fr(a,6*Tt),f?[0,-a]:[-wt,a-wt]);function p(t,e){return Math.cos(t)*Math.cos(e)>D}function m(t,e,n){var r=[1,0,0],a=Cn(En(t),En(e)),i=jn(a,a),s=a[0],o=i-s*s;if(!o)return!n&&t;var u=D*i/o,l=-D*s/o,c=Cn(r,a),d=On(r,u);Fn(d,On(a,l));var h=c,f=jn(d,h),_=jn(h,h),p=f*f-_*(jn(d,d)-1);if(!(p<0)){var m=Math.sqrt(p),y=On(h,(-f-m)/_);if(Fn(y,d),y=Pn(y),!n)return y;var g,v=t[0],M=e[0],k=t[1],b=e[1];Mbt}).map(l)).concat(F.range(Math.ceil(s/_)*_,i,_).filter(function(t){return C(t%m)>bt}).map(c))}return g.lines=function(){return t().map(function(t){return{type:"LineString",coordinates:t}})},g.outline=function(){return{type:"Polygon",coordinates:[d(a).concat(h(o).slice(1),d(r).reverse().slice(1),h(u).reverse().slice(1))]}},g.extent=function(t){return arguments.length?g.majorExtent(t).minorExtent(t):g.minorExtent()},g.majorExtent=function(t){return arguments.length?(a=+t[0][0],r=+t[1][0],u=+t[0][1],o=+t[1][1],r=l)return}else i={x:m,y:u};n={x:m,y:l}}else{if(i){if(i.y=l)return}else i={x:(u-a)/r,y:u};n={x:(l-a)/r,y:l}}else{if(i){if(i.y=o)return}else i={x:s,y:r*s+a};n={x:o,y:r*o+a}}else{if(i){if(i.xbt||C(a-n)>bt)&&(o.splice(s,0,new Ya((y=i.site,g=c,v=C(r-d)=s&&r.x<=u&&r.y>=o&&r.y<=l?[[s,l],[u,l],[u,o],[s,o]]:[]).point=a[e]}),i}function d(t){return t.map(function(t,e){return{x:Math.round(r(t,e)/bt)*bt,y:Math.round(a(t,e)/bt)*bt,i:e}})}return i.links=function(e){return Ca(d(e)).edges.filter(function(t){return t.l&&t.r}).map(function(t){return{source:e[t.l.i],target:e[t.r.i]}})},i.triangles=function(h){var f=[];return Ca(d(h)).cells.forEach(function(t,e){for(var n,r,a,i,s=t.site,o=t.edges.sort(Ma),u=-1,l=o.length,c=o[l-1].edge,d=c.l===s?c.r:c.l;++ui&&(a=r.slice(i,a),o[s]?o[s]+=a:o[++s]=a),(e=e[0])===(n=n[0])?o[s]?o[s]+=n:o[++s]=n:(o[++s]=null,u.push({i:s,x:Ia(e,n)})),i=Wa.lastIndex;return iu&&(u=e.x),e.y>l&&(l=e.y),n.push(e.x),r.push(e.y);else for(a=0;aa&&(r=n,a=e);return r}function Bi(t){return t.reduce(Ni,0)}function Ni(t,e){return t+e[1]}function Ii(t,e){return Ri(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ri(t,e){for(var n=-1,r=+t[0],a=(t[1]-r)/e,i=[];++n<=e;)i[n]=a*n+r;return i}function zi(t){return[F.min(t),F.max(t)]}function Wi(t,e){return t.value-e.value}function qi(t,e){var n=t._pack_next;(t._pack_next=e)._pack_prev=t,(e._pack_next=n)._pack_prev=e}function Ui(t,e){(t._pack_next=e)._pack_prev=t}function Vi(t,e){var n=e.x-t.x,r=e.y-t.y,a=t.r+e.r;return n*n+r*r<.999*a*a}function $i(t){if((e=t.children)&&(u=e.length)){var e,n,r,a,i,s,o,u,l=1/0,c=-1/0,d=1/0,h=-1/0;if(e.forEach(Gi),(n=e[0]).x=-n.r,n.y=0,v(n),1=s[0]&&r<=s[1]&&((n=a[F.bisect(o,r,1,l)-1]).y+=c,n.push(t[e]));return a}return n.value=function(t){return arguments.length?(h=t,n):h},n.range=function(t){return arguments.length?(f=pe(t),n):f},n.bins=function(e){return arguments.length?(_="number"==typeof e?function(t){return Ri(t,e)}:pe(e),n):_},n.frequency=function(t){return arguments.length?(d=!!t,n):d},n},F.layout.pack=function(){var u,l=F.layout.hierarchy().sort(Wi),c=0,d=[1,1];function e(t,e){var n=l.call(this,t,e),r=n[0],a=d[0],i=d[1],s=null==u?Math.sqrt:"function"==typeof u?u:function(){return u};if(r.x=r.y=0,wi(r,function(t){t.r=+s(t.value)}),wi(r,$i),c){var o=c*(u?1:Math.max(2*r.r/a,2*r.r/i))/2;wi(r,function(t){t.r+=o}),wi(r,$i),wi(r,function(t){t.r-=o})}return function t(e,n,r,a){var i=e.children;e.x=n+=a*e.x;e.y=r+=a*e.y;e.r*=a;if(i)for(var s=-1,o=i.length;++ss.x&&(s=t),t.depth>o.depth&&(o=t)});var u=p(i,s)/2-i.x,l=h[0]/(s.x+p(s,i)/2+u),c=h[1]/(o.depth||1);Li(r,function(t){t.x=(t.x+u)*l,t.y=t.depth*c})}return n}function _(t){var e=t.children,n=t.parent.children,r=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,n=0,r=0,a=t.children,i=a.length;for(;0<=--i;)(e=a[i]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;r?(t.z=r.z+p(t._,r._),t.m=t.z-a):t.z=a}else r&&(t.z=r.z+p(t._,r._));t.parent.A=function(t,e,n){if(e){for(var r,a=t,i=t,s=e,o=a.parent.children[0],u=a.m,l=i.m,c=s.m,d=o.m;s=Qi(s),a=Xi(a),s&&a;)o=Xi(o),(i=Qi(i)).a=t,0<(r=s.z+c-a.z-u+p(s._,a._))&&(ts((f=t,_=n,(h=s).a.parent===f.parent?h.a:_),t,r),u+=r,l+=r),c+=s.m,u+=a.m,d+=o.m,l+=i.m;s&&!Qi(i)&&(i.t=s,i.m+=c-l),a&&!Xi(o)&&(o.t=a,o.m+=u-d,n=t)}var h,f,_;return n}(t,r,t.parent.A||n[0])}function m(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function y(t){t.x*=h[0],t.y=t.depth*h[1]}return e.separation=function(t){return arguments.length?(p=t,e):p},e.size=function(t){return arguments.length?(f=null==(h=t)?y:null,e):f?null:h},e.nodeSize=function(t){return arguments.length?(f=null==(h=t)?null:y,e):f?h:null},bi(e,d)},F.layout.cluster=function(){var c=F.layout.hierarchy().sort(null).value(null),d=Ki,h=[1,1],f=!1;function e(t,e){var a,n=c.call(this,t,e),r=n[0],i=0;wi(r,function(t){var e,n,r=t.children;r&&r.length?(t.x=(n=r).reduce(function(t,e){return t+e.x},0)/n.length,t.y=(e=r,1+F.max(e,function(t){return t.y}))):(t.x=a?i+=d(t,a):0,t.y=0,a=t)});var s=function t(e){var n=e.children;return n&&n.length?t(n[0]):e}(r),o=function t(e){var n,r=e.children;return r&&(n=r.length)?t(r[n-1]):e}(r),u=s.x-d(s,o)/2,l=o.x+d(o,s)/2;return wi(r,f?function(t){t.x=(t.x-r.x)*h[0],t.y=(r.y-t.y)*h[1]}:function(t){t.x=(t.x-u)/(l-u)*h[0],t.y=(1-(r.y?t.y/r.y:1))*h[1]}),n}return e.separation=function(t){return arguments.length?(d=t,e):d},e.size=function(t){return arguments.length?(f=null==(h=t),e):f?null:h},e.nodeSize=function(t){return arguments.length?(f=null!=(h=t),e):f?h:null},bi(e,c)},F.layout.treemap=function(){var r,a=F.layout.hierarchy(),c=Math.round,i=[1,1],s=null,d=es,o=!1,h="squarify",u=.5*(1+Math.sqrt(5));function f(t,e){for(var n,r,a=-1,i=t.length;++an.dy)&&(l=n.dy);++in.dx)&&(l=n.dx);++ir;i--);e=e.slice(a,i)}return e};a.tickFormat=function(t,n){if(!arguments.length)return ys;arguments.length<2?n=ys:"function"!=typeof n&&(n=F.format(n));var r=Math.max(1,u*t/a.ticks().length);return function(t){var e=t/h(Math.round(d(t)));return e*urect,.s>rect").attr("width",L[1]-L[0])}function S(t){t.select(".extent").attr("y",w[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",w[1]-w[0])}function o(){var d,n,r=this,t=F.select(F.event.target),a=M.of(r,arguments),i=F.select(r),e=t.datum(),s=!/^(n|s)$/.test(e)&&k,o=!/^(e|w)$/.test(e)&&b,h=t.classed("extent"),u=gt(r),f=F.mouse(r),l=F.select(O(r)).on("keydown.brush",function(){32==F.event.keyCode&&(h||(d=null,f[0]-=L[1],f[1]-=w[1],h=2),P())}).on("keyup.brush",function(){32==F.event.keyCode&&2==h&&(f[0]+=L[1],f[1]+=w[1],h=0,P())});if(F.event.changedTouches?l.on("touchmove.brush",p).on("touchend.brush",y):l.on("mousemove.brush",p).on("mouseup.brush",y),i.interrupt().selectAll("*").interrupt(),h)f[0]=L[0]-f[0],f[1]=w[0]-f[1];else if(e){var c=+/w$/.test(e),_=+/^n/.test(e);n=[L[1-c]-f[0],w[1-_]-f[1]],f[0]=L[c],f[1]=w[_]}else F.event.altKey&&(d=f.slice());function p(){var t=F.mouse(r),e=!1;n&&(t[0]+=n[0],t[1]+=n[1]),h||(F.event.altKey?(d||(d=[(L[0]+L[1])/2,(w[0]+w[1])/2]),f[0]=L[+(t[0]e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:\^)/,/^(?:v\b)/,/^(?:\s*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[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])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:\n+)/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],inclusive:!0}}};function Yt(){this.yy={}}return xt.lexer=Dt,new((Yt.prototype=xt).Parser=Yt)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,5],n=[1,6],r=[1,12],a=[1,13],i=[1,14],s=[1,15],o=[1,16],u=[1,17],l=[1,18],c=[1,19],d=[1,20],h=[1,21],f=[1,22],_=[8,16,17,18,19,20,21,22,23,24,25,26],p=[1,37],m=[1,33],y=[1,34],g=[1,35],v=[1,36],M=[8,10,16,17,18,19,20,21,22,23,24,25,26,28,32,37,39,40,45,57,58],k=[10,28],b=[10,28,37,57,58],L=[2,49],w=[1,45],x=[1,48],D=[1,49],Y=[1,52],T=[2,65],A=[1,65],S=[1,66],E=[1,67],j=[1,68],C=[1,69],F=[1,70],O=[1,71],H=[1,72],P=[1,73],B=[8,16,17,18,19,20,21,22,23,24,25,26,47],N=[10,28,37],I={trace:function(){},yy:{},symbols_:{error:2,expressions:3,graph:4,EOF:5,graphStatement:6,idStatement:7,"{":8,stmt_list:9,"}":10,strict:11,GRAPH:12,DIGRAPH:13,textNoTags:14,textNoTagsToken:15,ALPHA:16,NUM:17,COLON:18,PLUS:19,EQUALS:20,MULT:21,DOT:22,BRKT:23,SPACE:24,MINUS:25,keywords:26,stmt:27,";":28,node_stmt:29,edge_stmt:30,attr_stmt:31,"=":32,subgraph:33,attr_list:34,NODE:35,EDGE:36,"[":37,a_list:38,"]":39,",":40,edgeRHS:41,node_id:42,edgeop:43,port:44,":":45,compass_pt:46,SUBGRAPH:47,n:48,ne:49,e:50,se:51,s:52,sw:53,w:54,nw:55,c:56,ARROW_POINT:57,ARROW_OPEN:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"{",10:"}",11:"strict",12:"GRAPH",13:"DIGRAPH",16:"ALPHA",17:"NUM",18:"COLON",19:"PLUS",20:"EQUALS",21:"MULT",22:"DOT",23:"BRKT",24:"SPACE",25:"MINUS",26:"keywords",28:";",32:"=",35:"NODE",36:"EDGE",37:"[",39:"]",40:",",45:":",47:"SUBGRAPH",48:"n",49:"ne",50:"e",51:"se",52:"s",53:"sw",54:"w",55:"nw",56:"c",57:"ARROW_POINT",58:"ARROW_OPEN"},productions_:[0,[3,2],[4,5],[4,6],[4,4],[6,1],[6,1],[7,1],[14,1],[14,2],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[9,1],[9,3],[27,1],[27,1],[27,1],[27,3],[27,1],[31,2],[31,2],[31,2],[34,4],[34,3],[34,3],[34,2],[38,5],[38,5],[38,3],[30,3],[30,3],[30,2],[30,2],[41,3],[41,3],[41,2],[41,2],[29,2],[29,1],[42,2],[42,1],[44,4],[44,2],[44,2],[33,5],[33,4],[33,3],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,0],[43,1],[43,1]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:this.$=i[o-1];break;case 2:this.$=i[o-4];break;case 3:this.$=i[o-5];break;case 4:this.$=i[o-3];break;case 8:case 10:case 11:this.$=i[o];break;case 9:this.$=i[o-1]+""+i[o];break;case 12:case 13:case 14:case 15:case 16:case 18:case 19:case 20:this.$=i[o];break;case 17:this.$="
";break;case 39:this.$="oy";break;case 40:r.addLink(i[o-1],i[o].id,i[o].op),this.$="oy";break;case 42:r.addLink(i[o-1],i[o].id,i[o].op),this.$={op:i[o-2],id:i[o-1]};break;case 44:this.$={op:i[o-1],id:i[o]};break;case 48:r.addVertex(i[o-1]),this.$=i[o-1];break;case 49:r.addVertex(i[o]),this.$=i[o];break;case 66:this.$="arrow";break;case 67:this.$="arrow_open"}},table:[{3:1,4:2,6:3,11:[1,4],12:e,13:n},{1:[3]},{5:[1,7]},{7:8,8:[1,9],14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{6:23,12:e,13:n},t(_,[2,5]),t(_,[2,6]),{1:[2,1]},{8:[1,24]},{7:30,8:p,9:25,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},t([8,10,28,32,37,39,40,45,57,58],[2,7],{15:38,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f}),t(M,[2,8]),t(M,[2,10]),t(M,[2,11]),t(M,[2,12]),t(M,[2,13]),t(M,[2,14]),t(M,[2,15]),t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),t(M,[2,19]),t(M,[2,20]),{7:39,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{7:30,8:p,9:40,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,41]},{10:[2,21],28:[1,42]},t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),t(b,L,{44:44,32:[1,43],45:w}),t(k,[2,27],{41:46,43:47,57:x,58:D}),t(k,[2,47],{43:47,34:50,41:51,37:Y,57:x,58:D}),{34:53,37:Y},{34:54,37:Y},{34:55,37:Y},{7:56,8:[1,57],14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{7:30,8:p,9:58,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},t(M,[2,9]),{8:[1,59]},{10:[1,60]},{5:[2,4]},{7:30,8:p,9:61,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{7:62,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},t(b,[2,48]),t(b,T,{14:10,15:11,7:63,46:64,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,48:A,49:S,50:E,51:j,52:C,53:F,54:O,55:H,56:P}),t(k,[2,41],{34:74,37:Y}),{7:77,8:p,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,33:76,42:75,47:v},t(B,[2,66]),t(B,[2,67]),t(k,[2,46]),t(k,[2,40],{34:78,37:Y}),{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:79,39:[1,80]},t(k,[2,28]),t(k,[2,29]),t(k,[2,30]),{8:[1,82]},{7:30,8:p,9:83,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,84]},{7:30,8:p,9:85,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{5:[2,2]},{10:[2,22]},t(k,[2,26]),t(b,[2,51],{45:[1,86]}),t(b,[2,52]),t(b,[2,56]),t(b,[2,57]),t(b,[2,58]),t(b,[2,59]),t(b,[2,60]),t(b,[2,61]),t(b,[2,62]),t(b,[2,63]),t(b,[2,64]),t(k,[2,38]),t(N,[2,44],{43:47,41:87,57:x,58:D}),t(N,[2,45],{43:47,41:88,57:x,58:D}),t(b,L,{44:44,45:w}),t(k,[2,39]),{39:[1,89]},t(k,[2,34],{34:90,37:Y}),{32:[1,91]},{7:30,8:p,9:92,12:m,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,27:26,29:27,30:28,31:29,33:31,35:y,36:g,42:32,47:v},{10:[1,93]},t(b,[2,55]),{10:[1,94]},t(b,T,{46:95,48:A,49:S,50:E,51:j,52:C,53:F,54:O,55:H,56:P}),t(N,[2,42]),t(N,[2,43]),t(k,[2,33],{34:96,37:Y}),t(k,[2,32]),{7:97,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f},{10:[1,98]},t(b,[2,54]),{5:[2,3]},t(b,[2,50]),t(k,[2,31]),{28:[1,99],39:[2,37],40:[1,100]},t(b,[2,53]),{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:101},{7:81,14:10,15:11,16:r,17:a,18:i,19:s,20:o,21:u,22:l,23:c,24:d,25:h,26:f,38:102},{39:[2,35]},{39:[2,36]}],defaultActions:{7:[2,1],41:[2,4],60:[2,2],61:[2,22],94:[2,3],101:[2,35],102:[2,36]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:--[o])/,/^(?:--)/,/^(?:-)/,/^(?:\+)/,/^(?:=)/,/^(?:[\u0021-\u0027\u002A-\u002E\u003F\u0041-\u005A\u0061-\u007A\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)/,/^(?:\n)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!0}}};function z(){this.yy={}}return I.lexer=R,new((z.prototype=I).Parser=z)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){var r;r=function(t,e){return function(n){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}return a.m=n,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=5)}([function(t,e){t.exports=n(19)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.addDummyNode=s,e.simplify=u,e.asNonCompoundGraph=l,e.successorWeights=c,e.predecessorWeights=d,e.intersectRect=h,e.buildLayerMatrix=f,e.normalizeRanks=_,e.removeEmptyRanks=p,e.addBorderNode=m,e.maxRank=y,e.partition=g,e.time=v,e.notime=M;var r,a=n(0),o=(r=a)&&r.__esModule?r:{default:r},i=n(2);function s(t,e,n,r){for(var a=void 0;a=o.default.uniqueId(r),t.hasNode(a););return n.dummy=e,t.setNode(a,n),a}function u(r){var a=(new i.Graph).setGraph(r.graph());return o.default.each(r.nodes(),function(t){a.setNode(t,r.node(t))}),o.default.each(r.edges(),function(t){var e=a.edge(t.v,t.w)||{weight:0,minlen:1},n=r.edge(t);a.setEdge(t.v,t.w,{weight:e.weight+n.weight,minlen:Math.max(e.minlen,n.minlen)})}),a}function l(e){var n=new i.Graph({multigraph:e.isMultigraph()}).setGraph(e.graph());return o.default.each(e.nodes(),function(t){e.children(t).length||n.setNode(t,e.node(t))}),o.default.each(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function c(n){var t=o.default.map(n.nodes(),function(t){var e={};return o.default.each(n.outEdges(t),function(t){e[t.w]=(e[t.w]||0)+n.edge(t).weight}),e});return o.default.zipObject(n.nodes(),t)}function d(n){var t=o.default.map(n.nodes(),function(t){var e={};return o.default.each(n.inEdges(t),function(t){e[t.v]=(e[t.v]||0)+n.edge(t).weight}),e});return o.default.zipObject(n.nodes(),t)}function h(t,e){var n=t.x,r=t.y,a=e.x-n,i=e.y-r,s=t.width/2,o=t.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var u=void 0,l=void 0;return Math.abs(i)*s>Math.abs(a)*o?(i<0&&(o=-o),u=o*a/i,l=o):(a<0&&(s=-s),l=(u=s)*i/a),{x:n+u,y:r+l}}function f(r){var a=o.default.map(o.default.range(y(r)+1),function(){return[]});return o.default.each(r.nodes(),function(t){var e=r.node(t),n=e.rank;o.default.isUndefined(n)||(a[n][e.order]=t)}),a}function _(n){var r=o.default.min(o.default.map(n.nodes(),function(t){return n.node(t).rank}));o.default.each(n.nodes(),function(t){var e=n.node(t);o.default.has(e,"rank")&&(e.rank-=r)})}function p(n){var r=o.default.min(o.default.map(n.nodes(),function(t){return n.node(t).rank})),a=[];o.default.each(n.nodes(),function(t){var e=n.node(t).rank-r;a[e]||(a[e]=[]),a[e].push(t)});var i=0,s=n.graph().nodeRankFactor;o.default.each(a,function(t,e){o.default.isUndefined(t)&&e%s!=0?--i:i&&o.default.each(t,function(t){n.node(t).rank+=i})})}function m(t,e,n,r){var a={width:0,height:0};return 4<=arguments.length&&(a.rank=n,a.order=r),s(t,"border",a,e)}function y(n){return o.default.max(o.default.map(n.nodes(),function(t){var e=n.node(t).rank;if(!o.default.isUndefined(e))return e}))}function g(t,e){var n={lhs:[],rhs:[]};return o.default.each(t,function(t){e(t)?n.lhs.push(t):n.rhs.push(t)}),n}function v(t,e){var n=o.default.now();try{return e()}finally{console.log(t+" time: "+(o.default.now()-n)+"ms")}}function M(t,e){return e()}e.default={addDummyNode:s,simplify:u,asNonCompoundGraph:l,successorWeights:c,predecessorWeights:d,intersectRect:h,buildLayerMatrix:f,normalizeRanks:_,removeEmptyRanks:p,addBorderNode:m,maxRank:y,partition:g,time:v,notime:M}},function(t,e){t.exports=n(29)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.longestPath=i,e.slack=o;var r,a=n(0),s=(r=a)&&r.__esModule?r:{default:r};function i(a){var i={};s.default.each(a.sources(),function e(t){var n=a.node(t);if(s.default.has(i,t))return n.rank;i[t]=!0;var r=s.default.min(s.default.map(a.outEdges(t),function(t){return e(t.w)-a.edge(t).minlen}))||0;return n.rank=r})}function o(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}e.default={longestPath:i,slack:o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),o=(r=a)&&r.__esModule?r:{default:r},i=n(2),u=n(3);function s(i,s){return o.default.each(i.nodes(),function r(a){o.default.each(s.nodeEdges(a),function(t){var e=t.v,n=a===e?t.w:e;i.hasNode(n)||(0,u.slack)(s,t)||(i.setNode(n,{}),i.setEdge(a,n,{}),r(n))})}),i.nodeCount()}function l(e,n){return o.default.minBy(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return(0,u.slack)(n,t)})}function c(t,e,n){o.default.each(t.nodes(),function(t){e.node(t).rank+=n})}e.default=function(t){var e=new i.Graph({directed:!1}),n=t.nodes()[0],r=t.nodeCount();e.setNode(n,{});for(var a=void 0;s(e,t)s.lim&&(o=s,u=!0);var l=_.default.filter(n.edges(),function(t){return u===g(e,e.node(t.v),o)&&u!==g(e,e.node(t.w),o)});return _.default.minBy(l,function(t){return(0,c.slack)(n,t)})}function y(t,e,n,r){var a,i,s,o,u=n.v,l=n.w;t.removeEdge(u,l),t.setEdge(r.v,r.w,{}),f(t),h(t,e),a=t,i=e,s=_.default.find(a.nodes(),function(t){return!i.node(t).parent}),o=(o=d(a,s)).slice(1),_.default.each(o,function(t){var e=a.node(t).parent,n=i.edge(t,e),r=!1;n||(n=i.edge(e,t),r=!0),i.node(t).rank=i.node(e).rank+(r?n.minlen:-n.minlen)})}function g(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}u.initLowLimValues=f,u.initCutValues=h,u.calcCutValue=l,u.leaveEdge=p,u.enterEdge=m,u.exchangeEdges=y,e.default=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),s=(r=a)&&r.__esModule?r:{default:r};e.default=function(l){var r,a,i,c=(r=l,a={},i=0,s.default.each(r.children(),function t(e){var n=i;s.default.each(r.children(e),t),a[e]={low:n,lim:i++}}),a);s.default.each(l.graph().dummyChains,function(t){for(var e=l.node(t),n=e.edgeObj,r=function(t,e,n,r){var a=[],i=[],s=Math.min(e[n].low,e[r].low),o=Math.max(e[n].lim,e[r].lim),u=void 0,l=void 0;for(u=n;u=t.parent(u),a.push(u),u&&(e[u].low>s||o>e[u].lim););for(l=u,u=r;(u=t.parent(u))!==l;)i.push(u);return{path:a.concat(i.reverse()),lca:l}}(l,c,n.v,n.w),a=r.path,i=r.lca,s=0,o=a[s],u=!0;t!==n.w;){if(e=l.node(t),u){for(;(o=a[s])!==i&&l.node(o).maxRank>1]+=t.weight;u+=t.weight*n})),u}e.default=function(t,e){for(var n=0,r=1;r=i.barycenter)&&(n=t,a=r=0,(e=i).weight&&(r+=e.barycenter*e.weight,a+=e.weight),n.weight&&(r+=n.barycenter*n.weight,a+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/a,e.weight=a,e.i=Math.min(n.i,e.i),n.merged=!0)}}function r(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var a=n.pop();t.push(a),s.default.each(a.in.reverse(),e(a)),s.default.each(a.out,r(a))}return s.default.chain(t).filter(function(t){return!t.merged}).map(function(t){return s.default.pick(t,["vs","i","barycenter","weight"])}).value()}(s.default.filter(r,function(t){return!t.indegree}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var d=r(n(0)),h=r(n(1));function r(t){return t&&t.__esModule?t:{default:t}}function f(t,e,n){for(var r=void 0;e.length&&(r=d.default.last(e)).i<=n;)e.pop(),t.push(r.vs),n++;return n}e.default=function(t,e){var n,r=h.default.partition(t,function(t){return d.default.has(t,"barycenter")}),a=r.lhs,i=d.default.sortBy(r.rhs,function(t){return-t.i}),s=[],o=0,u=0,l=0;a.sort((n=!!e,function(t,e){return t.barycentere.barycenter?1:n?e.i-t.i:t.i-e.i})),l=f(s,i,l),d.default.each(a,function(t){l+=t.vs.length,s.push(t.vs),o+=t.barycenter*t.weight,u+=t.weight,l=f(s,i,l)});var c={vs:d.default.flatten(s,!0)};return u&&(c.barycenter=o/u,c.weight=u),c}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r},l=n(2);e.default=function(i,n,r){var s=function(t){for(var e=void 0;t.hasNode(e=u.default.uniqueId("_root")););return e}(i),o=new l.Graph({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(function(t){return i.node(t)});return u.default.each(i.nodes(),function(a){var t=i.node(a),e=i.parent(a);(t.rank===n||t.minRank<=n&&n<=t.maxRank)&&(o.setNode(a),o.setParent(a,e||s),u.default.each(i[r](a),function(t){var e=t.v===a?t.w:t.v,n=o.edge(e,a),r=u.default.isUndefined(n)?0:n.weight;o.setEdge(e,a,{weight:i.edge(t).weight+r})}),u.default.has(t,"minRank")&&o.setNode(a,{borderLeft:t.borderLeft[n],borderRight:t.borderRight[n]}))}),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(0),u=(r=a)&&r.__esModule?r:{default:r};e.default=function(a,i,t){var s={},o=void 0;u.default.each(t,function(t){for(var e=a.parent(t),n=void 0,r=void 0;e;){if((n=a.parent(e))?(r=s[n],s[n]=e):(r=o,o=e),r&&r!==e)return void i.setEdge(r,e);e=n}})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=r(n(0)),o=r(n(1)),u=n(27);function r(t){return t&&t.__esModule?t:{default:t}}e.default=function(n){var r,t,a,i;n=o.default.asNonCompoundGraph(n),r=n,t=o.default.buildLayerMatrix(r),a=r.graph().ranksep,i=0,s.default.each(t,function(t){var e=s.default.max(s.default.map(t,function(t){return r.node(t).height}));s.default.each(t,function(t){r.node(t).y=i+e/2}),i+=e+a}),s.default.each((0,u.positionX)(n),function(t,e){n.node(e).x=t})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.positionX=i;var v=a(n(0)),M=n(2),r=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}function l(l,t){var c={};return v.default.reduce(t,function(t,r){var i=0,s=0,o=t.length,u=v.default.last(r);return v.default.each(r,function(t,e){var n=function(e,t){if(e.node(t).dummy)return v.default.find(e.predecessors(t),function(t){return e.node(t).dummy})}(l,t),a=n?l.node(n).order:o;(n||t===u)&&(v.default.each(r.slice(s,e+1),function(r){v.default.each(l.predecessors(r),function(t){var e=l.node(t),n=e.order;!(na)&&d(s,t,i)})})}return v.default.reduce(t,function(r,a){var i=-1,s=void 0,o=0;return v.default.each(a,function(t,e){if("border"===u.node(t).dummy){var n=u.predecessors(t);n.length&&(s=u.node(n[0]).order,l(a,o,e,i,s),o=e,i=s)}l(a,o,a.length,s,r.length)}),a}),s}function d(t,e,n){if(n",main:"dist/dagre-layout.js",keywords:["graph","layout","dagre"],scripts:{lint:"standard",jest:"jest --coverage",karma:"node -r babel-register node_modules/.bin/karma start",test:"yarn lint && yarn jest && yarn karma --single-run",bench:"node -r babel-register src/bench.js",build:"node -r babel-register node_modules/.bin/webpack --progress --colors","build:watch":"yarn build --watch",upgrade:"yarn-upgrade-all"},dependencies:{graphlib:"^2.1.1",lodash:"^4.17.4"},devDependencies:{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.24.1",benchmark:"^2.1.4",chai:"^4.1.2",coveralls:"^2.13.1",jest:"^21.0.1",karma:"^1.7.1","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.0.1","karma-mocha":"^1.3.0","karma-safari-launcher":"^1.0.0",mocha:"^3.5.0",sprintf:"^0.1.5",standard:"^10.0.3",webpack:"^3.5.6","webpack-node-externals":"^1.6.0","yarn-upgrade-all":"^0.1.8"},repository:{type:"git",url:"https://github.com/tylingsoft/dagre-layout.git"},license:"MIT",files:["dist/","lib/","index.js"],standard:{ignore:["dist/**/*.js","coverage/**/*.js"]},jest:{testRegex:"test/.+?-test\\.js",testPathIgnorePatterns:["test/bundle-test\\.js"]}}}]).default},t.exports=r(n(19),n(29))},function(t,e,n){var r=n(4),a=n(164);t.exports=function(e,t,n,r){return function(t,n,i,e){var s,o,u={},l=new a,r=function(t){var e=t.v!==s?t.v:t.w,n=u[e],r=i(t),a=o.distance+r;if(r<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+r);athis._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},r.prototype._heapify=function(t){var e=this._arr,n=2*t,r=n+1,a=t;n>1].prioritye[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3,15],inclusive:!1},ALIAS:{rules:[2,3,7,8],inclusive:!1},ID:{rules:[2,3,6],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!0}}};function w(){this.yy={}}return b.lexer=L,new((w.prototype=b).Parser=w)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.apply=e.setTitle=e.addNote=e.PLACEMENT=e.ARROWTYPE=e.LINETYPE=e.clear=e.getTitle=e.getActorKeys=e.getActor=e.getActors=e.getMessages=e.addSignal=e.addMessage=e.addActor=void 0;var a=n(1),i={},s=[],o=[],r="",u=e.addActor=function(t,e,n){var r=i[t];r&&e===r.name&&null==n||(null==n&&(n=e),i[t]={name:e,description:n})},l=e.addMessage=function(t,e,n,r){s.push({from:t,to:e,message:n,answer:r})},c=e.addSignal=function(t,e,n,r){a.logger.debug("Adding message from="+t+" to="+e+" message="+n+" type="+r),s.push({from:t,to:e,message:n,type:r})},d=e.getMessages=function(){return s},h=e.getActors=function(){return i},f=e.getActor=function(t){return i[t]},_=e.getActorKeys=function(){return Object.keys(i)},p=e.getTitle=function(){return r},m=e.clear=function(){i={},s=[]},y=e.LINETYPE={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21},g=e.ARROWTYPE={FILLED:0,OPEN:1},v=e.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},M=e.addNote=function(t,e,n){var r={actor:t,placement:e,message:n},a=[].concat(t,t);o.push(r),s.push({from:a[0],to:a[1],message:n,type:y.NOTE,placement:e})},k=e.setTitle=function(t){r=t},b=e.apply=function e(t){if(t instanceof Array)t.forEach(function(t){e(t)});else switch(t.type){case"addActor":u(t.actor,t.actor,t.description);break;case"activeStart":case"activeEnd":c(t.actor,void 0,void 0,t.signalType);break;case"addNote":M(t.actor,t.placement,t.text);break;case"addMessage":c(t.from,t.to,t.msg,t.signalType);break;case"loopStart":c(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":c(void 0,void 0,void 0,t.signalType);break;case"optStart":c(void 0,void 0,t.optText,t.signalType);break;case"optEnd":c(void 0,void 0,void 0,t.signalType);break;case"altStart":case"else":c(void 0,void 0,t.altText,t.signalType);break;case"altEnd":c(void 0,void 0,void 0,t.signalType);break;case"setTitle":k(t.text);break;case"parStart":case"and":c(void 0,void 0,t.parText,t.signalType);break;case"parEnd":c(void 0,void 0,void 0,t.signalType)}};e.default={addActor:u,addMessage:l,addSignal:c,getMessages:d,getActors:h,getActor:f,getActorKeys:_,getTitle:p,clear:m,LINETYPE:y,ARROWTYPE:g,PLACEMENT:v,addNote:M,setTitle:k,apply:b}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getInfo=e.setInfo=e.getMessage=e.setMessage=void 0;var r=n(1),a="",i=!1,s=e.setMessage=function(t){r.logger.debug("Setting message to: "+t),a=t},o=e.getMessage=function(){return a},u=e.setInfo=function(t){i=t},l=e.getInfo=function(){return i};e.default={setMessage:s,getMessage:o,setInfo:u,getInfo:l}},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10,12],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,message:11,say:12,TXT:13,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo",12:"say",13:"TXT"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1],[8,1],[11,2]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:return r;case 4:break;case 6:r.setInfo(!0);break;case 7:r.setMessage(i[o]);break;case 8:this.$=i[o-1].substring(1).trim().replace(/\\n/gm,"\n")}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],11:9,12:[1,10]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6]),t(e,[2,7]),{13:[1,11]},t(e,[2,8])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::[^#\n;]+)/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[10,11],inclusive:!1},struct:{rules:[5,6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],inclusive:!0}}};function L(){this.yy={}}return k.lexer=b,new((L.prototype=k).Parser=L)}();r.parser=e,r.Parser=e.Parser,r.parse=function(){return e.parse.apply(e,arguments)},r.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),n.exit(1));var e=a(8).readFileSync(a(9).normalize(t[1]),"utf8");return r.parser.parse(e)},void 0!==t&&a.c[a.s]===t&&r.main(n.argv.slice(1))}).call(r,a(7),a(3)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.relationType=e.lineType=e.cleanupLabel=e.addMembers=e.addRelation=e.getRelations=e.getClasses=e.getClass=e.clear=e.addClass=void 0;var r=n(1),a=[],i={},s=e.addClass=function(t){void 0===i[t]&&(i[t]={id:t,methods:[],members:[]})},o=e.clear=function(){a=[],i={}},u=e.getClass=function(t){return i[t]},l=e.getClasses=function(){return i},c=e.getRelations=function(){return a},d=e.addRelation=function(t){r.logger.warn("Adding relation: "+JSON.stringify(t)),s(t.id1),s(t.id2),a.push(t)},h=e.addMembers=function(t,e){var n=i[t];"string"==typeof e&&(")"===e.substr(-1)?n.methods.push(e):n.members.push(e))},f=e.cleanupLabel=function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},_=e.lineType={LINE:0,DOTTED_LINE:1},p=e.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3};e.default={addClass:s,clear:o,getClass:u,getClasses:l,getRelations:c,addRelation:d,addMembers:h,cleanupLabel:f,lineType:_,relationType:p}},function(t,r,a){"use strict";(function(n,t){var e=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[2,3],n=[1,7],r=[7,12,15,17,19,20,21],a=[7,11,12,15,17,19,20,21],i=[2,20],s=[1,32],o={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,e,n,r,a,i,s){var o=i.length-1;switch(a){case 1:return i[o-1];case 2:return r.setDirection(i[o-3]),i[o-1];case 4:r.setOptions(i[o-1]),this.$=i[o];break;case 5:i[o-1]+=i[o],this.$=i[o-1];break;case 7:this.$=[];break;case 8:i[o-1].push(i[o]),this.$=i[o-1];break;case 9:this.$=i[o-1];break;case 11:r.commit(i[o]);break;case 12:r.branch(i[o]);break;case 13:r.checkout(i[o]);break;case 14:r.merge(i[o]);break;case 15:r.reset(i[o]);break;case 16:this.$="";break;case 17:this.$=i[o];break;case 18:this.$=i[o-1]+":"+i[o];break;case 19:this.$=i[o-1]+":"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:n},{5:[1,8]},{7:[1,9]},t(r,[2,7],{10:10,11:[1,11]}),t(a,[2,6]),{6:12,7:e,9:6,12:n},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},t(a,[2,5]),{7:[1,21]},t(r,[2,8]),{12:[1,22]},t(r,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},t(r,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:i,25:31,26:s},{12:i,25:33,26:s},{12:[2,18]},{12:i,25:34,26:s},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,e){if(!e.recoverable){var n=function(t,e){this.message=t,this.hash=e};throw n.prototype=Error,new n(t,e)}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],a=[null],i=[],s=this.table,o="",u=0,l=0,c=0,d=1,h=i.slice.call(arguments,1),f=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);f.setInput(t,_.yy),_.yy.lexer=f,_.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var m=f.yylloc;i.push(m);var y=f.options&&f.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,M,k,b,L,w,x,D,Y,T={};;){if(M=n[n.length-1],this.defaultActions[M]?k=this.defaultActions[M]:(null==g&&(Y=void 0,"number"!=typeof(Y=r.pop()||f.lex()||d)&&(Y instanceof Array&&(Y=(r=Y).pop()),Y=e.symbols_[Y]||Y),g=Y),k=s[M]&&s[M][g]),void 0===k||!k.length||!k[0]){var A="";for(L in D=[],s[M])this.terminals_[L]&&2e[0].length)){if(e=n,r=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return 0\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,d={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,r={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},a=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,f=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,i=/&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g,m={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},y={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},s={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},_=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],p=String.fromCharCode,g={}.hasOwnProperty,v=function(t,e){return g.call(t,e)},M=function(t,e){if(!t)return e;var n,r={};for(n in e)r[n]=v(t,n)?t[n]:e[n];return r},k=function(t,e){var n="";return 55296<=t&&t<=57343||1114111>>10&1023|55296),t=56320|1023&t),n+=p(t))},b=function(t){return"&#x"+t.toString(16).toUpperCase()+";"},L=function(t){return"&#"+t+";"},w=function(t){throw Error("Parse error: "+t)},x=function(t,e){(e=M(e,x.options)).strict&&f.test(t)&&w("forbidden code point");var n=e.encodeEverything,r=e.useNamedReferences,a=e.allowUnsafeSymbols,i=e.decimal?L:b,s=function(t){return i(t.charCodeAt(0))};return n?(t=t.replace(u,function(t){return r&&v(d,t)?"&"+d[t]+";":s(t)}),r&&(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),r&&(t=t.replace(c,function(t){return"&"+d[t]+";"}))):r?(a||(t=t.replace(h,function(t){return"&"+d[t]+";"})),t=(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(c,function(t){return"&"+d[t]+";"})):a||(t=t.replace(h,s)),t.replace(o,function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1);return i(1024*(e-55296)+n-56320+65536)}).replace(l,s)};x.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var D=function(t,_){var p=(_=M(_,D.options)).strict;return p&&a.test(t)&&w("malformed character reference"),t.replace(i,function(t,e,n,r,a,i,s,o){var u,l,c,d,h,f;return e?(c=e,l=n,p&&!l&&w("character reference was not terminated by a semicolon"),u=parseInt(c,10),k(u,p)):r?(d=r,l=a,p&&!l&&w("character reference was not terminated by a semicolon"),u=parseInt(d,16),k(u,p)):i?v(m,h=i)?m[h]:(p&&w("named character reference was not terminated by a semicolon"),t):(h=s,(f=o)&&_.isAttributeValue?(p&&"="==f&&w("`&` did not start a character reference"),t):(p&&w("named character reference was not terminated by a semicolon"),y[h]+(f||"")))})};D.options={isAttributeValue:!1,strict:!1};var Y={version:"1.1.1",encode:x,decode:D,escape:function(t){return t.replace(h,function(t){return r[t]})},unescape:D};void 0===(S=function(){return Y}.call(E,j,E,T))||(T.exports=S)}()}).call(E,j(3)(t),j(18))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decodeEntities=e.encodeEntities=e.version=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=n(1),f=E(n(157)),_=E(n(158)),p=E(n(208)),m=E(n(222)),y=E(n(224)),r=E(n(171)),a=E(n(160)),s=E(n(161)),o=E(n(168)),u=E(n(169)),l=E(n(170)),g=E(n(225)),c=E(n(172)),d=E(n(173)),v=E(n(174)),M=E(n(226)),k=E(n(175)),b=E(n(176)),L=E(n(227)),w=E(n(201)),x=E(n(6)),D=E(n(203)),Y=E(n(346)),T=E(n(348)),A=E(n(350)),S=E(n(352));function E(t){return t&&t.__esModule?t:{default:t}}var j={dark:Y.default,default:T.default,forest:A.default,neutral:S.default},C={theme:T.default,logLevel:5,startOnLoad:!0,arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!0,useMaxWidth:!0},sequenceDiagram:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:3,axisFormatter:[["%I:%M",function(t){return t.getHours()}],["w. %U",function(t){return 1===t.getDay()}],["%a %d",function(t){return t.getDay()&&1!==t.getDate()}],["%b %d",function(t){return 1!==t.getDate()}],["%m-%y",function(t){return t.getMonth()}]]},classDiagram:{},gitGraph:{},info:{}};(0,h.setLogLevel)(C.logLevel);var F=e.version=function(){return D.default.version},O=e.encodeEntities=function(t){var e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){var e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"fl°°"+e+"¶ß":"fl°"+e+"¶ß"})},H=e.decodeEntities=function(t){var e=t;return e=(e=(e=e.replace(/fl°°/g,function(){return"&#"})).replace(/fl°/g,function(){return"&"})).replace(/¶ß/g,function(){return";"})},P=function(t,e,n,r){if(void 0!==r)r.innerHTML="",x.default.select(r).append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g");else{var a=document.querySelector("#d"+t);a&&(a.innerHTML=""),x.default.select("body").append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g")}window.txt=e,e=O(e);var i=x.default.select("#d"+t).node();switch(_.default.detectType(e)){case"gitGraph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,L.default.setConf(C.gitGraph),L.default.draw(e,t,!1);break;case"graph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,p.default.setConf(C.flowchart),p.default.draw(e,t,!1);break;case"dotGraph":C.flowchart.arrowMarkerAbsolute=C.arrowMarkerAbsolute,p.default.setConf(C.flowchart),p.default.draw(e,t,!0);break;case"sequenceDiagram":C.sequenceDiagram.arrowMarkerAbsolute=C.arrowMarkerAbsolute,m.default.setConf(C.sequenceDiagram),m.default.draw(e,t);break;case"gantt":C.gantt.arrowMarkerAbsolute=C.arrowMarkerAbsolute,g.default.setConf(C.gantt),g.default.draw(e,t);break;case"classDiagram":C.classDiagram.arrowMarkerAbsolute=C.arrowMarkerAbsolute,M.default.setConf(C.classDiagram),M.default.draw(e,t);break;case"info":C.info.arrowMarkerAbsolute=C.arrowMarkerAbsolute,y.default.draw(e,t,F())}var s=i.firstChild,o=document.createElement("style"),u=window.getComputedStyle(s);o.innerHTML="\n "+(j[C.theme]||T.default)+"\nsvg {\n color: "+u.color+";\n font: "+u.font+";\n}\n ",s.insertBefore(o,s.firstChild),x.default.select("#d"+t).selectAll("foreignobject div").attr("xmlns","http://www.w3.org/1999/xhtml");var l="";C.arrowMarkerAbsolute&&(l=(l=(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)"));var c=x.default.select("#d"+t).node().innerHTML.replace(/url\(#arrowhead/g,"url("+l+"#arrowhead","g");c=H(c),void 0!==n?n(c,f.default.bindFunctions):h.logger.warn("CB = undefined!");var d=x.default.select("#d"+t).node();return null!==d&&"function"==typeof d.remove&&x.default.select("#d"+t).node().remove(),c};var B=function(t){for(var e=Object.keys(t),n=0;n
'});else{for(var s=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.split(/
/),u=0;u'+t.text+""):(e.labelType="text",e.style="stroke: #333; stroke-width: 1.5px;fill:none",e.label=t.text.replace(/
/g,"\n"))):e.label=t.text.replace(/
/g,"\n")),a.setEdge(t.start,t.end,e,i)})},i=e.getClasses=function(t,e){var n=void 0;Y.default.clear(),(n=e?A.default.parser:T.default.parser).yy=Y.default,n.parse(t);var r=Y.default.getClasses();return void 0===r.default&&(r.default={id:"default"},r.default.styles=[],r.default.clusterStyles=["rx:4px","fill: rgb(255, 255, 222)","rx: 4px","stroke: rgb(170, 170, 51)","stroke-width: 1px"],r.default.nodeLabelStyles=["fill:#000","stroke:none","font-weight:300",'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf',"font-size:14px"],r.default.edgeLabelStyles=["fill:#000","stroke:none","font-weight:300",'font-family:"Helvetica Neue",Helvetica,Arial,sans-serf',"font-size:14px"]),r},s=e.draw=function(t,e,n){j.logger.debug("Drawing flowchart");var r=void 0;Y.default.clear(),(r=n?A.default.parser:T.default.parser).yy=Y.default;try{r.parse(t)}catch(t){j.logger.debug("Parsing failed")}var a=Y.default.getDirection();void 0===a&&(a="TD");for(var i=new E.default.graphlib.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:a,marginx:20,marginy:20}).setDefaultEdgeLabel(function(){return{}}),s=void 0,o=Y.default.getSubGraphs(),u=o.length-1;0<=u;u--)s=o[u],Y.default.addVertex(s.id,s.title,"group",void 0);var l=Y.default.getVertices(),c=Y.default.getEdges(),d=0;for(d=o.length-1;0<=d;d--){s=o[d],S.default.selectAll("cluster").append("text");for(var h=0;hMath.abs(a)*o?(i<0&&(o=-o),u=0===i?0:o*a/i,l=o):(a<0&&(s=-s),u=s,l=0===a?0:s*i/a),{x:n+u,y:r+l}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(1)),i=r(n(11)),s=r(n(5)),o=r(n(12)),u=r(n(14)),l=r(n(0)),c=n(27);e.default={d3:a.default,graphlib:i.default,dagre:s.default,intersect:o.default,render:u.default,util:l.default,version:c.version}},function(t,e){t.exports=n(29)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(6)),i=r(n(7)),s=r(n(3)),o=r(n(8)),u=r(n(9));e.default={node:a.default,circle:i.default,ellipse:s.default,polygon:o.default,rect:u.default}},function(t,e,n){"use strict";function y(t,e){return 0g.width?(l.remove(),s=t.append("g"),c=(l=m.default.drawText(s,u,2*i.width-g.noteMargin))[0][0].getBBox().height,o.attr("width",2*i.width),v.insert(e,n,e+2*i.width,n+2*g.noteMargin+c)):v.insert(e,n,e+i.width,n+2*g.noteMargin+c),o.attr("height",c+2*g.noteMargin),v.bumpVerticalPos(c+2*g.noteMargin)},k=e.drawActors=function(t,e,n,r){for(var a=0;an&&(r.starty=n-6,n+=12),m.default.drawActivation(d,r,n,g),v.insert(r.startx,n-10,r.stopx,n);break;case y.parser.yy.LINETYPE.LOOP_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.LOOP_END:a=v.endLoop(),m.default.drawLoop(d,a,"loop",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.OPT_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.OPT_END:a=v.endLoop(),m.default.drawLoop(d,a,"opt",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.ALT_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.ALT_ELSE:v.bumpVerticalPos(g.boxMargin),a=v.addSectionToLoop(t.message),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.ALT_END:a=v.endLoop(),m.default.drawLoop(d,a,"alt",g),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.PAR_START:v.bumpVerticalPos(g.boxMargin),v.newLoop(t.message),v.bumpVerticalPos(g.boxMargin+g.boxTextMargin);break;case y.parser.yy.LINETYPE.PAR_AND:v.bumpVerticalPos(g.boxMargin),a=v.addSectionToLoop(t.message),v.bumpVerticalPos(g.boxMargin);break;case y.parser.yy.LINETYPE.PAR_END:a=v.endLoop(),m.default.drawLoop(d,a,"par",g),v.bumpVerticalPos(g.boxMargin);break;default:try{v.bumpVerticalPos(g.messageMargin);var i=b(t.from),s=b(t.to),o=i[0]<=s[0]?1:0,u=i[0]/gi," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);var i=a.append("tspan");return i.attr("x",e.x+2*e.textMargin),i.attr("fill",e.fill),i.text(r),void 0!==a.textwrap&&a.textwrap({x:e.x,y:e.y,width:n,height:1800},e.textMargin),a},o=e.drawLabel=function(t,e){var n,r,a,i,s,o=t.append("polygon");o.attr("points",(n=e.x,r=e.y,n+","+r+" "+(n+(a=50))+","+r+" "+(n+a)+","+(r+(i=20)-(s=7))+" "+(n+a-1.2*s)+","+(r+i)+" "+n+","+(r+i))),o.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,l(t,e)},c=-1,r=e.drawActor=function(t,e,n,r,a){var i=e+a.width/2,s=t.append("g");0===n&&(c++,s.append("line").attr("id","actor"+c).attr("x1",i).attr("y1",5).attr("x2",i).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));var o=_();o.x=e,o.y=n,o.fill="#eaeaea",o.width=a.width,o.height=a.height,o.class="actor",o.rx=3,o.ry=3,u(s,o),p(a)(r,s,o.x,o.y,o.width,o.height,{class:"actor"})},a=e.anchorElement=function(t){return t.append("g")},i=e.drawActivation=function(t,e,n){var r=_(),a=e.anchored;r.x=e.startx,r.y=e.starty,r.fill="#f4f4f4",r.width=e.stopx-e.startx,r.height=n-e.starty,u(a,r)},s=e.drawLoop=function(t,n,e,r){var a=t.append("g"),i=function(t,e,n,r){return a.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",r).attr("class","loopLine")};i(n.startx,n.starty,n.stopx,n.starty),i(n.stopx,n.starty,n.stopx,n.stopy),i(n.startx,n.stopy,n.stopx,n.stopy),i(n.startx,n.starty,n.startx,n.stopy),void 0!==n.sections&&n.sections.forEach(function(t){i(n.startx,t,n.stopx,t).style("stroke-dasharray","3, 3")});var s=f();s.text=e,s.x=n.startx,s.y=n.starty,s.labelMargin=15,s.class="labelText",o(a,s),(s=f()).text="[ "+n.title+" ]",s.x=n.startx+(n.stopx-n.startx)/2,s.y=n.starty+1.5*r.boxMargin,s.anchor="middle",s.class="loopText",l(a,s),void 0!==n.sectionTitles&&n.sectionTitles.forEach(function(t,e){""!==t&&(s.text="[ "+t+" ]",s.y=n.sections[e]+1.5*r.boxMargin,l(a,s))})},d=e.insertArrowHead=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},h=e.insertArrowCrossHead=function(t){var e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},f=e.getTextObj=function(){return{x:0,y:0,fill:"black","text-anchor":"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0}},_=e.getNoteRect=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},p=function(){function e(t,e,n,r,a,i,s){c(e.append("text").attr("x",n+a/2).attr("y",r+i/2+5).style("text-anchor","middle").text(t),s)}function l(t,e,n,r,a,i,s){var o=e.append("text").attr("x",n+a/2).attr("y",r).style("text-anchor","middle");if(o.append("tspan").attr("x",n+a/2).attr("dy","0").text(t),void 0!==o.textwrap){o.textwrap({x:n+a/2,y:r,width:a,height:i},0);var u=o.selectAll("tspan");0o?e+a-5:n+a+5:(n-e)/2+e+a}).attr("y",function(t,e){return e*n+y.barHeight/2+(y.fontSize/2-2)+r}).attr("text-height",e).attr("class",function(t){for(var e=h(t.startTime),n=h(t.endTime),r=this.getBBox().width,a=0,i=0;io?"taskTextOutsideLeft taskTextOutside"+a+" "+s:"taskTextOutsideRight taskTextOutside"+a+" "+s:"taskText taskText"+a+" "+s})}(t,a,i,s,r,0,e),function(r,a){for(var i=[],s=0,t=0;t "+t.w+": "+JSON.stringify(a.edge(t))),function(t,e,n){var r=function(t){switch(t){case y.default.relationType.AGGREGATION:return"aggregation";case y.default.relationType.EXTENSION:return"extension";case y.default.relationType.COMPOSITION:return"composition";case y.default.relationType.DEPENDENCY:return"dependency"}},a=e.points,i=g.default.svg.line().x(function(t){return t.x}).y(function(t){return t.y}).interpolate("basis"),s=t.append("path").attr("d",i(a)).attr("id","edge"+M).attr("class","relation"),o="";v.arrowMarkerAbsolute&&(o=(o=(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),"none"!==n.relation.type1&&s.attr("marker-start","url("+o+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&s.attr("marker-end","url("+o+"#"+r(n.relation.type2)+"End)");var u=void 0,l=void 0,c=e.points.length;if(c%2!=0){var d=e.points[Math.floor(c/2)],h=e.points[Math.ceil(c/2)];u=(d.x+h.x)/2,l=(d.y+h.y)/2}else{var f=e.points[Math.floor(c/2)];u=f.x,l=f.y}if(void 0!==n.title){var _=t.append("g").attr("class","classLabel"),p=_.append("text").attr("class","label").attr("x",u).attr("y",l).attr("fill","red").attr("text-anchor","middle").text(n.title),m=(window.label=p).node().getBBox();_.insert("rect",":first-child").attr("class","box").attr("x",m.x-v.padding/2).attr("y",m.y-v.padding/2).attr("width",m.width+v.padding).attr("height",m.height+v.padding)}M++}(r,a.edge(t),a.edge(t).relation)}),r.attr("height","100%"),r.attr("width","100%"),r.attr("viewBox","0 0 "+(a.graph().width+20)+" "+(a.graph().height+20))};e.default={setConf:a,draw:i}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.draw=e.setConf=void 0;var u=r(n(177)),l=r(n(245)),c=r(n(2)),d=r(n(265)),h=r(n(327)),f=r(n(201)),_=r(n(176)),p=r(n(6)),m=n(1);function r(t){return t&&t.__esModule?t:{default:t}}var y={},g=void 0,v={nodeSpacing:150,nodeFillColor:"yellow",nodeStrokeWidth:2,nodeStrokeColor:"grey",lineStrokeWidth:4,branchOffset:50,lineColor:"grey",leftMargin:50,branchColors:["#442f74","#983351","#609732","#AA9A39"],nodeRadius:10,nodeLabel:{width:75,height:100,x:-25,y:0}},M={},a=e.setConf=function(t){M=t};function k(t,e,n,r){r=r||"basis";var a=v.branchColors[n%v.branchColors.length],i=p.default.svg.line().x(function(t){return Math.round(t.x)}).y(function(t){return Math.round(t.y)}).interpolate(r);t.append("svg:path").attr("d",i(e)).style("stroke",a).style("stroke-width",v.lineStrokeWidth).style("fill","none")}function b(t,e){e=e||t.node().getBBox();var n=t.node().getCTM();return{left:n.e+e.x*n.a,top:n.f+e.y*n.d,width:e.width,height:e.height}}function L(t,e,n,r,a){m.logger.debug("svgDrawLineForCommits: ",e,n);var i=b(t.select("#node-"+e+" circle")),s=b(t.select("#node-"+n+" circle"));switch(r){case"LR":if(i.left-s.left>v.nodeSpacing){var o={x:i.left-v.nodeSpacing,y:s.top+s.height/2};k(t,[o,{x:s.left+s.width,y:s.top+s.height/2}],a,"linear"),k(t,[{x:i.left,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:o.y},o],a)}else k(t,[{x:i.left,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:i.top+i.height/2},{x:i.left-v.nodeSpacing/2,y:s.top+s.height/2},{x:s.left+s.width,y:s.top+s.height/2}],a);break;case"BT":if(s.top-i.top>v.nodeSpacing){var u={x:s.left+s.width/2,y:i.top+i.height+v.nodeSpacing};k(t,[u,{x:s.left+s.width/2,y:s.top}],a,"linear"),k(t,[{x:i.left+i.width/2,y:i.top+i.height},{x:i.left+i.width/2,y:i.top+i.height+v.nodeSpacing/2},{x:s.left+s.width/2,y:u.y-v.nodeSpacing/2},u],a)}else k(t,[{x:i.left+i.width/2,y:i.top+i.height},{x:i.left+i.width/2,y:i.top+v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top-v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top}],a)}}var i=e.draw=function(t,e,n){try{var r=_.default.parser;r.yy=f.default,m.logger.debug("in gitgraph renderer",t,e,n),r.parse(t+"\n"),v=(0,l.default)(v,M,f.default.getOptions()),m.logger.debug("effective options",v);var a=f.default.getDirection();y=f.default.getCommits();var i=f.default.getBranchesAsObjArray();"BT"===a&&(v.nodeLabel.x=i.length*v.branchOffset,v.nodeLabel.width="100%",v.nodeLabel.y=-2*v.nodeRadius);var s=p.default.select("#"+e);(o=s).append("defs").append("g").attr("id","def-commit").append("circle").attr("r",v.nodeRadius).attr("cx",0).attr("cy",0),o.select("#def-commit").append("foreignObject").attr("width",v.nodeLabel.width).attr("height",v.nodeLabel.height).attr("x",v.nodeLabel.x).attr("y",v.nodeLabel.y).attr("class","node-label").attr("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility").append("xhtml:p").html(""),g=1,(0,u.default)(i,function(t){!function t(e,n,r,a){var i=void 0,s=Object.keys(y).length;if((0,h.default)(n))do{if(i=y[n],m.logger.debug("in renderCommitHistory",i.id,i.seq),0=i)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}},function(t,e,n){var a=n(22),i=n(13),s=n(31),o=n(14);t.exports=function(t,e,n){if(!o(n))return!1;var r=typeof e;return!!("number"==r?i(n)&&s(e,n.length):"string"==r&&e in n)&&a(n[e],t)}},function(t,e,n){var r=n(179),a=n(263),i=n(13);t.exports=function(t){return i(t)?r(t,!0):a(t)}},function(t,e,n){var a=n(14),i=n(185),s=n(264),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return s(t);var e=i(t),n=[];for(var r in t)("constructor"!=r||!e&&o.call(t,r))&&n.push(r);return n}},function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},function(t,e,n){var r=n(266)(n(323));t.exports=r},function(t,e,n){var o=n(15),u=n(13),l=n(20);t.exports=function(s){return function(t,e,n){var r=Object(t);if(!u(t)){var a=o(e,3);t=l(t),e=function(t){return a(r[t],t,r)}}var i=s(t,e,n);return-1= 0; i--) { + if (this.eventListeners.hasOwnProperty(haltEventListeners[i])) { + delete this.eventListeners[haltEventListeners[i]] + } + } + } + } + + // Bind eventListeners + for (var event in this.eventListeners) { + // Attach event to eventsListenerElement or SVG if not available + (this.options.eventsListenerElement || this.svg) + .addEventListener(event, this.eventListeners[event], false) + } + + // Zoom using mouse wheel + if (this.options.mouseWheelZoomEnabled) { + this.options.mouseWheelZoomEnabled = false // set to false as enable will set it back to true + this.enableMouseWheelZoom() + } +} + +/** + * Enable ability to zoom using mouse wheel + */ +SvgPanZoom.prototype.enableMouseWheelZoom = function() { + if (!this.options.mouseWheelZoomEnabled) { + var that = this + + // Mouse wheel listener + this.wheelListener = function(evt) { + return that.handleMouseWheel(evt); + } + + // Bind wheelListener + Wheel.on(this.options.eventsListenerElement || this.svg, this.wheelListener, false) + + this.options.mouseWheelZoomEnabled = true + } +} + +/** + * Disable ability to zoom using mouse wheel + */ +SvgPanZoom.prototype.disableMouseWheelZoom = function() { + if (this.options.mouseWheelZoomEnabled) { + Wheel.off(this.options.eventsListenerElement || this.svg, this.wheelListener, false) + this.options.mouseWheelZoomEnabled = false + } +} + +/** + * Handle mouse wheel event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseWheel = function(evt) { + if (!this.options.zoomEnabled || this.state !== 'none') { + return; + } + + if (this.options.preventMouseEventsDefault){ + if (evt.preventDefault) { + evt.preventDefault(); + } else { + evt.returnValue = false; + } + } + + // Default delta in case that deltaY is not available + var delta = evt.deltaY || 1 + , timeDelta = Date.now() - this.lastMouseWheelEventTime + , divider = 3 + Math.max(0, 30 - timeDelta) + + // Update cache + this.lastMouseWheelEventTime = Date.now() + + // Make empirical adjustments for browsers that give deltaY in pixels (deltaMode=0) + if ('deltaMode' in evt && evt.deltaMode === 0 && evt.wheelDelta) { + delta = evt.deltaY === 0 ? 0 : Math.abs(evt.wheelDelta) / evt.deltaY + } + + delta = -0.3 < delta && delta < 0.3 ? delta : (delta > 0 ? 1 : -1) * Math.log(Math.abs(delta) + 10) / divider + + var inversedScreenCTM = this.svg.getScreenCTM().inverse() + , relativeMousePoint = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(inversedScreenCTM) + , zoom = Math.pow(1 + this.options.zoomScaleSensitivity, (-1) * delta); // multiplying by neg. 1 so as to make zoom in/out behavior match Google maps behavior + + this.zoomAtPoint(zoom, relativeMousePoint) +} + +/** + * Zoom in at a SVG point + * + * @param {SVGPoint} point + * @param {Float} zoomScale Number representing how much to zoom + * @param {Boolean} zoomAbsolute Default false. If true, zoomScale is treated as an absolute value. + * Otherwise, zoomScale is treated as a multiplied (e.g. 1.10 would zoom in 10%) + */ +SvgPanZoom.prototype.zoomAtPoint = function(zoomScale, point, zoomAbsolute) { + var originalState = this.viewport.getOriginalState() + + if (!zoomAbsolute) { + // Fit zoomScale in set bounds + if (this.getZoom() * zoomScale < this.options.minZoom * originalState.zoom) { + zoomScale = (this.options.minZoom * originalState.zoom) / this.getZoom() + } else if (this.getZoom() * zoomScale > this.options.maxZoom * originalState.zoom) { + zoomScale = (this.options.maxZoom * originalState.zoom) / this.getZoom() + } + } else { + // Fit zoomScale in set bounds + zoomScale = Math.max(this.options.minZoom * originalState.zoom, Math.min(this.options.maxZoom * originalState.zoom, zoomScale)) + // Find relative scale to achieve desired scale + zoomScale = zoomScale/this.getZoom() + } + + var oldCTM = this.viewport.getCTM() + , relativePoint = point.matrixTransform(oldCTM.inverse()) + , modifier = this.svg.createSVGMatrix().translate(relativePoint.x, relativePoint.y).scale(zoomScale).translate(-relativePoint.x, -relativePoint.y) + , newCTM = oldCTM.multiply(modifier) + + if (newCTM.a !== oldCTM.a) { + this.viewport.setCTM(newCTM) + } +} + +/** + * Zoom at center point + * + * @param {Float} scale + * @param {Boolean} absolute Marks zoom scale as relative or absolute + */ +SvgPanZoom.prototype.zoom = function(scale, absolute) { + this.zoomAtPoint(scale, SvgUtils.getSvgCenterPoint(this.svg, this.width, this.height), absolute) +} + +/** + * Zoom used by public instance + * + * @param {Float} scale + * @param {Boolean} absolute Marks zoom scale as relative or absolute + */ +SvgPanZoom.prototype.publicZoom = function(scale, absolute) { + if (absolute) { + scale = this.computeFromRelativeZoom(scale) + } + + this.zoom(scale, absolute) +} + +/** + * Zoom at point used by public instance + * + * @param {Float} scale + * @param {SVGPoint|Object} point An object that has x and y attributes + * @param {Boolean} absolute Marks zoom scale as relative or absolute + */ +SvgPanZoom.prototype.publicZoomAtPoint = function(scale, point, absolute) { + if (absolute) { + // Transform zoom into a relative value + scale = this.computeFromRelativeZoom(scale) + } + + // If not a SVGPoint but has x and y then create a SVGPoint + if (Utils.getType(point) !== 'SVGPoint') { + if('x' in point && 'y' in point) { + point = SvgUtils.createSVGPoint(this.svg, point.x, point.y) + } else { + throw new Error('Given point is invalid') + } + } + + this.zoomAtPoint(scale, point, absolute) +} + +/** + * Get zoom scale + * + * @return {Float} zoom scale + */ +SvgPanZoom.prototype.getZoom = function() { + return this.viewport.getZoom() +} + +/** + * Get zoom scale for public usage + * + * @return {Float} zoom scale + */ +SvgPanZoom.prototype.getRelativeZoom = function() { + return this.viewport.getRelativeZoom() +} + +/** + * Compute actual zoom from public zoom + * + * @param {Float} zoom + * @return {Float} zoom scale + */ +SvgPanZoom.prototype.computeFromRelativeZoom = function(zoom) { + return zoom * this.viewport.getOriginalState().zoom +} + +/** + * Set zoom to initial state + */ +SvgPanZoom.prototype.resetZoom = function() { + var originalState = this.viewport.getOriginalState() + + this.zoom(originalState.zoom, true); +} + +/** + * Set pan to initial state + */ +SvgPanZoom.prototype.resetPan = function() { + this.pan(this.viewport.getOriginalState()); +} + +/** + * Set pan and zoom to initial state + */ +SvgPanZoom.prototype.reset = function() { + this.resetZoom() + this.resetPan() +} + +/** + * Handle double click event + * See handleMouseDown() for alternate detection method + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleDblClick = function(evt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + // Check if target was a control button + if (this.options.controlIconsEnabled) { + var targetClass = evt.target.getAttribute('class') || '' + if (targetClass.indexOf('svg-pan-zoom-control') > -1) { + return false + } + } + + var zoomFactor + + if (evt.shiftKey) { + zoomFactor = 1/((1 + this.options.zoomScaleSensitivity) * 2) // zoom out when shift key pressed + } else { + zoomFactor = (1 + this.options.zoomScaleSensitivity) * 2 + } + + var point = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.svg.getScreenCTM().inverse()) + this.zoomAtPoint(zoomFactor, point) +} + +/** + * Handle click event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseDown = function(evt, prevEvt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + Utils.mouseAndTouchNormalize(evt, this.svg) + + // Double click detection; more consistent than ondblclick + if (this.options.dblClickZoomEnabled && Utils.isDblClick(evt, prevEvt)){ + this.handleDblClick(evt) + } else { + // Pan mode + this.state = 'pan' + this.firstEventCTM = this.viewport.getCTM() + this.stateOrigin = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.firstEventCTM.inverse()) + } +} + +/** + * Handle mouse move event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseMove = function(evt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + if (this.state === 'pan' && this.options.panEnabled) { + // Pan mode + var point = SvgUtils.getEventPoint(evt, this.svg).matrixTransform(this.firstEventCTM.inverse()) + , viewportCTM = this.firstEventCTM.translate(point.x - this.stateOrigin.x, point.y - this.stateOrigin.y) + + this.viewport.setCTM(viewportCTM) + } +} + +/** + * Handle mouse button release event + * + * @param {Event} evt + */ +SvgPanZoom.prototype.handleMouseUp = function(evt) { + if (this.options.preventMouseEventsDefault) { + if (evt.preventDefault) { + evt.preventDefault() + } else { + evt.returnValue = false + } + } + + if (this.state === 'pan') { + // Quit pan mode + this.state = 'none' + } +} + +/** + * Adjust viewport size (only) so it will fit in SVG + * Does not center image + */ +SvgPanZoom.prototype.fit = function() { + var viewBox = this.viewport.getViewBox() + , newScale = Math.min(this.width/viewBox.width, this.height/viewBox.height) + + this.zoom(newScale, true) +} + +/** + * Adjust viewport size (only) so it will contain the SVG + * Does not center image + */ +SvgPanZoom.prototype.contain = function() { + var viewBox = this.viewport.getViewBox() + , newScale = Math.max(this.width/viewBox.width, this.height/viewBox.height) + + this.zoom(newScale, true) +} + +/** + * Adjust viewport pan (only) so it will be centered in SVG + * Does not zoom/fit/contain image + */ +SvgPanZoom.prototype.center = function() { + var viewBox = this.viewport.getViewBox() + , offsetX = (this.width - (viewBox.width + viewBox.x * 2) * this.getZoom()) * 0.5 + , offsetY = (this.height - (viewBox.height + viewBox.y * 2) * this.getZoom()) * 0.5 + + this.getPublicInstance().pan({x: offsetX, y: offsetY}) +} + +/** + * Update content cached BorderBox + * Use when viewport contents change + */ +SvgPanZoom.prototype.updateBBox = function() { + this.viewport.simpleViewBoxCache() +} + +/** + * Pan to a rendered position + * + * @param {Object} point {x: 0, y: 0} + */ +SvgPanZoom.prototype.pan = function(point) { + var viewportCTM = this.viewport.getCTM() + viewportCTM.e = point.x + viewportCTM.f = point.y + this.viewport.setCTM(viewportCTM) +} + +/** + * Relatively pan the graph by a specified rendered position vector + * + * @param {Object} point {x: 0, y: 0} + */ +SvgPanZoom.prototype.panBy = function(point) { + var viewportCTM = this.viewport.getCTM() + viewportCTM.e += point.x + viewportCTM.f += point.y + this.viewport.setCTM(viewportCTM) +} + +/** + * Get pan vector + * + * @return {Object} {x: 0, y: 0} + */ +SvgPanZoom.prototype.getPan = function() { + var state = this.viewport.getState() + + return {x: state.x, y: state.y} +} + +/** + * Recalculates cached svg dimensions and controls position + */ +SvgPanZoom.prototype.resize = function() { + // Get dimensions + var boundingClientRectNormalized = SvgUtils.getBoundingClientRectNormalized(this.svg) + this.width = boundingClientRectNormalized.width + this.height = boundingClientRectNormalized.height + + // Recalculate original state + var viewport = this.viewport + viewport.options.width = this.width + viewport.options.height = this.height + viewport.processCTM() + + // Reposition control icons by re-enabling them + if (this.options.controlIconsEnabled) { + this.getPublicInstance().disableControlIcons() + this.getPublicInstance().enableControlIcons() + } +} + +/** + * Unbind mouse events, free callbacks and destroy public instance + */ +SvgPanZoom.prototype.destroy = function() { + var that = this + + // Free callbacks + this.beforeZoom = null + this.onZoom = null + this.beforePan = null + this.onPan = null + this.onUpdatedCTM = null + + // Destroy custom event handlers + if (this.options.customEventsHandler != null) { // jshint ignore:line + this.options.customEventsHandler.destroy({ + svgElement: this.svg + , eventsListenerElement: this.options.eventsListenerElement + , instance: this.getPublicInstance() + }) + } + + // Unbind eventListeners + for (var event in this.eventListeners) { + (this.options.eventsListenerElement || this.svg) + .removeEventListener(event, this.eventListeners[event], false) + } + + // Unbind wheelListener + this.disableMouseWheelZoom() + + // Remove control icons + this.getPublicInstance().disableControlIcons() + + // Reset zoom and pan + this.reset() + + // Remove instance from instancesStore + instancesStore = instancesStore.filter(function(instance){ + return instance.svg !== that.svg + }) + + // Delete options and its contents + delete this.options + + // Delete viewport to make public shadow viewport functions uncallable + delete this.viewport + + // Destroy public instance and rewrite getPublicInstance + delete this.publicInstance + delete this.pi + this.getPublicInstance = function(){ + return null + } +} + +/** + * Returns a public instance object + * + * @return {Object} Public instance object + */ +SvgPanZoom.prototype.getPublicInstance = function() { + var that = this + + // Create cache + if (!this.publicInstance) { + this.publicInstance = this.pi = { + // Pan + enablePan: function() {that.options.panEnabled = true; return that.pi} + , disablePan: function() {that.options.panEnabled = false; return that.pi} + , isPanEnabled: function() {return !!that.options.panEnabled} + , pan: function(point) {that.pan(point); return that.pi} + , panBy: function(point) {that.panBy(point); return that.pi} + , getPan: function() {return that.getPan()} + // Pan event + , setBeforePan: function(fn) {that.options.beforePan = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + , setOnPan: function(fn) {that.options.onPan = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + // Zoom and Control Icons + , enableZoom: function() {that.options.zoomEnabled = true; return that.pi} + , disableZoom: function() {that.options.zoomEnabled = false; return that.pi} + , isZoomEnabled: function() {return !!that.options.zoomEnabled} + , enableControlIcons: function() { + if (!that.options.controlIconsEnabled) { + that.options.controlIconsEnabled = true + ControlIcons.enable(that) + } + return that.pi + } + , disableControlIcons: function() { + if (that.options.controlIconsEnabled) { + that.options.controlIconsEnabled = false; + ControlIcons.disable(that) + } + return that.pi + } + , isControlIconsEnabled: function() {return !!that.options.controlIconsEnabled} + // Double click zoom + , enableDblClickZoom: function() {that.options.dblClickZoomEnabled = true; return that.pi} + , disableDblClickZoom: function() {that.options.dblClickZoomEnabled = false; return that.pi} + , isDblClickZoomEnabled: function() {return !!that.options.dblClickZoomEnabled} + // Mouse wheel zoom + , enableMouseWheelZoom: function() {that.enableMouseWheelZoom(); return that.pi} + , disableMouseWheelZoom: function() {that.disableMouseWheelZoom(); return that.pi} + , isMouseWheelZoomEnabled: function() {return !!that.options.mouseWheelZoomEnabled} + // Zoom scale and bounds + , setZoomScaleSensitivity: function(scale) {that.options.zoomScaleSensitivity = scale; return that.pi} + , setMinZoom: function(zoom) {that.options.minZoom = zoom; return that.pi} + , setMaxZoom: function(zoom) {that.options.maxZoom = zoom; return that.pi} + // Zoom event + , setBeforeZoom: function(fn) {that.options.beforeZoom = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + , setOnZoom: function(fn) {that.options.onZoom = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + // Zooming + , zoom: function(scale) {that.publicZoom(scale, true); return that.pi} + , zoomBy: function(scale) {that.publicZoom(scale, false); return that.pi} + , zoomAtPoint: function(scale, point) {that.publicZoomAtPoint(scale, point, true); return that.pi} + , zoomAtPointBy: function(scale, point) {that.publicZoomAtPoint(scale, point, false); return that.pi} + , zoomIn: function() {this.zoomBy(1 + that.options.zoomScaleSensitivity); return that.pi} + , zoomOut: function() {this.zoomBy(1 / (1 + that.options.zoomScaleSensitivity)); return that.pi} + , getZoom: function() {return that.getRelativeZoom()} + // CTM update + , setOnUpdatedCTM: function(fn) {that.options.onUpdatedCTM = fn === null ? null : Utils.proxy(fn, that.publicInstance); return that.pi} + // Reset + , resetZoom: function() {that.resetZoom(); return that.pi} + , resetPan: function() {that.resetPan(); return that.pi} + , reset: function() {that.reset(); return that.pi} + // Fit, Contain and Center + , fit: function() {that.fit(); return that.pi} + , contain: function() {that.contain(); return that.pi} + , center: function() {that.center(); return that.pi} + // Size and Resize + , updateBBox: function() {that.updateBBox(); return that.pi} + , resize: function() {that.resize(); return that.pi} + , getSizes: function() { + return { + width: that.width + , height: that.height + , realZoom: that.getZoom() + , viewBox: that.viewport.getViewBox() + } + } + // Destroy + , destroy: function() {that.destroy(); return that.pi} + } + } + + return this.publicInstance +} + +/** + * Stores pairs of instances of SvgPanZoom and SVG + * Each pair is represented by an object {svg: SVGSVGElement, instance: SvgPanZoom} + * + * @type {Array} + */ +var instancesStore = [] + +var svgPanZoom = function(elementOrSelector, options){ + var svg = Utils.getSvg(elementOrSelector) + + if (svg === null) { + return null + } else { + // Look for existent instance + for(var i = instancesStore.length - 1; i >= 0; i--) { + if (instancesStore[i].svg === svg) { + return instancesStore[i].instance.getPublicInstance() + } + } + + // If instance not found - create one + instancesStore.push({ + svg: svg + , instance: new SvgPanZoom(svg, options) + }) + + // Return just pushed instance + return instancesStore[instancesStore.length - 1].instance.getPublicInstance() + } +} + +module.exports = svgPanZoom; + +},{"./control-icons":2,"./shadow-viewport":3,"./svg-utilities":5,"./uniwheel":6,"./utilities":7}],5:[function(require,module,exports){ +var Utils = require('./utilities') + , _browser = 'unknown' + ; + +// http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser +if (/*@cc_on!@*/false || !!document.documentMode) { // internet explorer + _browser = 'ie'; +} + +module.exports = { + svgNS: 'http://www.w3.org/2000/svg' +, xmlNS: 'http://www.w3.org/XML/1998/namespace' +, xmlnsNS: 'http://www.w3.org/2000/xmlns/' +, xlinkNS: 'http://www.w3.org/1999/xlink' +, evNS: 'http://www.w3.org/2001/xml-events' + + /** + * Get svg dimensions: width and height + * + * @param {SVGSVGElement} svg + * @return {Object} {width: 0, height: 0} + */ +, getBoundingClientRectNormalized: function(svg) { + if (svg.clientWidth && svg.clientHeight) { + return {width: svg.clientWidth, height: svg.clientHeight} + } else if (!!svg.getBoundingClientRect()) { + return svg.getBoundingClientRect(); + } else { + throw new Error('Cannot get BoundingClientRect for SVG.'); + } + } + + /** + * Gets g element with class of "viewport" or creates it if it doesn't exist + * + * @param {SVGSVGElement} svg + * @return {SVGElement} g (group) element + */ +, getOrCreateViewport: function(svg, selector) { + var viewport = null + + if (Utils.isElement(selector)) { + viewport = selector + } else { + viewport = svg.querySelector(selector) + } + + // Check if there is just one main group in SVG + if (!viewport) { + var childNodes = Array.prototype.slice.call(svg.childNodes || svg.children).filter(function(el){ + return el.nodeName !== 'defs' && el.nodeName !== '#text' + }) + + // Node name should be SVGGElement and should have no transform attribute + // Groups with transform are not used as viewport because it involves parsing of all transform possibilities + if (childNodes.length === 1 && childNodes[0].nodeName === 'g' && childNodes[0].getAttribute('transform') === null) { + viewport = childNodes[0] + } + } + + // If no favorable group element exists then create one + if (!viewport) { + var viewportId = 'viewport-' + new Date().toISOString().replace(/\D/g, ''); + viewport = document.createElementNS(this.svgNS, 'g'); + viewport.setAttribute('id', viewportId); + + // Internet Explorer (all versions?) can't use childNodes, but other browsers prefer (require?) using childNodes + var svgChildren = svg.childNodes || svg.children; + if (!!svgChildren && svgChildren.length > 0) { + for (var i = svgChildren.length; i > 0; i--) { + // Move everything into viewport except defs + if (svgChildren[svgChildren.length - i].nodeName !== 'defs') { + viewport.appendChild(svgChildren[svgChildren.length - i]); + } + } + } + svg.appendChild(viewport); + } + + // Parse class names + var classNames = []; + if (viewport.getAttribute('class')) { + classNames = viewport.getAttribute('class').split(' ') + } + + // Set class (if not set already) + if (!~classNames.indexOf('svg-pan-zoom_viewport')) { + classNames.push('svg-pan-zoom_viewport') + viewport.setAttribute('class', classNames.join(' ')) + } + + return viewport + } + + /** + * Set SVG attributes + * + * @param {SVGSVGElement} svg + */ + , setupSvgAttributes: function(svg) { + // Setting default attributes + svg.setAttribute('xmlns', this.svgNS); + svg.setAttributeNS(this.xmlnsNS, 'xmlns:xlink', this.xlinkNS); + svg.setAttributeNS(this.xmlnsNS, 'xmlns:ev', this.evNS); + + // Needed for Internet Explorer, otherwise the viewport overflows + if (svg.parentNode !== null) { + var style = svg.getAttribute('style') || ''; + if (style.toLowerCase().indexOf('overflow') === -1) { + svg.setAttribute('style', 'overflow: hidden; ' + style); + } + } + } + +/** + * How long Internet Explorer takes to finish updating its display (ms). + */ +, internetExplorerRedisplayInterval: 300 + +/** + * Forces the browser to redisplay all SVG elements that rely on an + * element defined in a 'defs' section. It works globally, for every + * available defs element on the page. + * The throttling is intentionally global. + * + * This is only needed for IE. It is as a hack to make markers (and 'use' elements?) + * visible after pan/zoom when there are multiple SVGs on the page. + * See bug report: https://connect.microsoft.com/IE/feedback/details/781964/ + * also see svg-pan-zoom issue: https://github.com/ariutta/svg-pan-zoom/issues/62 + */ +, refreshDefsGlobal: Utils.throttle(function() { + var allDefs = document.querySelectorAll('defs'); + var allDefsCount = allDefs.length; + for (var i = 0; i < allDefsCount; i++) { + var thisDefs = allDefs[i]; + thisDefs.parentNode.insertBefore(thisDefs, thisDefs); + } + }, this.internetExplorerRedisplayInterval) + + /** + * Sets the current transform matrix of an element + * + * @param {SVGElement} element + * @param {SVGMatrix} matrix CTM + * @param {SVGElement} defs + */ +, setCTM: function(element, matrix, defs) { + var that = this + , s = 'matrix(' + matrix.a + ',' + matrix.b + ',' + matrix.c + ',' + matrix.d + ',' + matrix.e + ',' + matrix.f + ')'; + + element.setAttributeNS(null, 'transform', s); + if ('transform' in element.style) { + element.style.transform = s; + } else if ('-ms-transform' in element.style) { + element.style['-ms-transform'] = s; + } else if ('-webkit-transform' in element.style) { + element.style['-webkit-transform'] = s; + } + + // IE has a bug that makes markers disappear on zoom (when the matrix "a" and/or "d" elements change) + // see http://stackoverflow.com/questions/17654578/svg-marker-does-not-work-in-ie9-10 + // and http://srndolha.wordpress.com/2013/11/25/svg-line-markers-may-disappear-in-internet-explorer-11/ + if (_browser === 'ie' && !!defs) { + // this refresh is intended for redisplaying the SVG during zooming + defs.parentNode.insertBefore(defs, defs); + // this refresh is intended for redisplaying the other SVGs on a page when panning a given SVG + // it is also needed for the given SVG itself, on zoomEnd, if the SVG contains any markers that + // are located under any other element(s). + window.setTimeout(function() { + that.refreshDefsGlobal(); + }, that.internetExplorerRedisplayInterval); + } + } + + /** + * Instantiate an SVGPoint object with given event coordinates + * + * @param {Event} evt + * @param {SVGSVGElement} svg + * @return {SVGPoint} point + */ +, getEventPoint: function(evt, svg) { + var point = svg.createSVGPoint() + + Utils.mouseAndTouchNormalize(evt, svg) + + point.x = evt.clientX + point.y = evt.clientY + + return point + } + + /** + * Get SVG center point + * + * @param {SVGSVGElement} svg + * @return {SVGPoint} + */ +, getSvgCenterPoint: function(svg, width, height) { + return this.createSVGPoint(svg, width / 2, height / 2) + } + + /** + * Create a SVGPoint with given x and y + * + * @param {SVGSVGElement} svg + * @param {Number} x + * @param {Number} y + * @return {SVGPoint} + */ +, createSVGPoint: function(svg, x, y) { + var point = svg.createSVGPoint() + point.x = x + point.y = y + + return point + } +} + +},{"./utilities":7}],6:[function(require,module,exports){ +// uniwheel 0.1.2 (customized) +// A unified cross browser mouse wheel event handler +// https://github.com/teemualap/uniwheel + +module.exports = (function(){ + + //Full details: https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel + + var prefix = "", _addEventListener, _removeEventListener, onwheel, support, fns = []; + + // detect event model + if ( window.addEventListener ) { + _addEventListener = "addEventListener"; + _removeEventListener = "removeEventListener"; + } else { + _addEventListener = "attachEvent"; + _removeEventListener = "detachEvent"; + prefix = "on"; + } + + // detect available wheel event + support = "onwheel" in document.createElement("div") ? "wheel" : // Modern browsers support "wheel" + document.onmousewheel !== undefined ? "mousewheel" : // Webkit and IE support at least "mousewheel" + "DOMMouseScroll"; // let's assume that remaining browsers are older Firefox + + + function createCallback(element,callback,capture) { + + var fn = function(originalEvent) { + + !originalEvent && ( originalEvent = window.event ); + + // create a normalized event object + var event = { + // keep a ref to the original event object + originalEvent: originalEvent, + target: originalEvent.target || originalEvent.srcElement, + type: "wheel", + deltaMode: originalEvent.type == "MozMousePixelScroll" ? 0 : 1, + deltaX: 0, + delatZ: 0, + preventDefault: function() { + originalEvent.preventDefault ? + originalEvent.preventDefault() : + originalEvent.returnValue = false; + } + }; + + // calculate deltaY (and deltaX) according to the event + if ( support == "mousewheel" ) { + event.deltaY = - 1/40 * originalEvent.wheelDelta; + // Webkit also support wheelDeltaX + originalEvent.wheelDeltaX && ( event.deltaX = - 1/40 * originalEvent.wheelDeltaX ); + } else { + event.deltaY = originalEvent.detail; + } + + // it's time to fire the callback + return callback( event ); + + }; + + fns.push({ + element: element, + fn: fn, + capture: capture + }); + + return fn; + } + + function getCallback(element,capture) { + for (var i = 0; i < fns.length; i++) { + if (fns[i].element === element && fns[i].capture === capture) { + return fns[i].fn; + } + } + return function(){}; + } + + function removeCallback(element,capture) { + for (var i = 0; i < fns.length; i++) { + if (fns[i].element === element && fns[i].capture === capture) { + return fns.splice(i,1); + } + } + } + + function _addWheelListener( elem, eventName, callback, useCapture ) { + + var cb; + + if (support === "wheel") { + cb = callback; + } else { + cb = createCallback(elem,callback,useCapture); + } + + elem[ _addEventListener ]( prefix + eventName, cb, useCapture || false ); + + } + + function _removeWheelListener( elem, eventName, callback, useCapture ) { + + var cb; + + if (support === "wheel") { + cb = callback; + } else { + cb = getCallback(elem,useCapture); + } + + elem[ _removeEventListener ]( prefix + eventName, cb, useCapture || false ); + + removeCallback(elem,useCapture); + + } + + function addWheelListener( elem, callback, useCapture ) { + _addWheelListener( elem, support, callback, useCapture ); + + // handle MozMousePixelScroll in older Firefox + if( support == "DOMMouseScroll" ) { + _addWheelListener( elem, "MozMousePixelScroll", callback, useCapture); + } + } + + function removeWheelListener(elem,callback,useCapture){ + _removeWheelListener(elem,support,callback,useCapture); + + // handle MozMousePixelScroll in older Firefox + if( support == "DOMMouseScroll" ) { + _removeWheelListener(elem, "MozMousePixelScroll", callback, useCapture); + } + } + + return { + on: addWheelListener, + off: removeWheelListener + }; + +})(); + +},{}],7:[function(require,module,exports){ +module.exports = { + /** + * Extends an object + * + * @param {Object} target object to extend + * @param {Object} source object to take properties from + * @return {Object} extended object + */ + extend: function(target, source) { + target = target || {}; + for (var prop in source) { + // Go recursively + if (this.isObject(source[prop])) { + target[prop] = this.extend(target[prop], source[prop]) + } else { + target[prop] = source[prop] + } + } + return target; + } + + /** + * Checks if an object is a DOM element + * + * @param {Object} o HTML element or String + * @return {Boolean} returns true if object is a DOM element + */ +, isElement: function(o){ + return ( + o instanceof HTMLElement || o instanceof SVGElement || o instanceof SVGSVGElement || //DOM2 + (o && typeof o === 'object' && o !== null && o.nodeType === 1 && typeof o.nodeName === 'string') + ); + } + + /** + * Checks if an object is an Object + * + * @param {Object} o Object + * @return {Boolean} returns true if object is an Object + */ +, isObject: function(o){ + return Object.prototype.toString.call(o) === '[object Object]'; + } + + /** + * Checks if variable is Number + * + * @param {Integer|Float} n + * @return {Boolean} returns true if variable is Number + */ +, isNumber: function(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + } + + /** + * Search for an SVG element + * + * @param {Object|String} elementOrSelector DOM Element or selector String + * @return {Object|Null} SVG or null + */ +, getSvg: function(elementOrSelector) { + var element + , svg; + + if (!this.isElement(elementOrSelector)) { + // If selector provided + if (typeof elementOrSelector === 'string' || elementOrSelector instanceof String) { + // Try to find the element + element = document.querySelector(elementOrSelector) + + if (!element) { + throw new Error('Provided selector did not find any elements. Selector: ' + elementOrSelector) + return null + } + } else { + throw new Error('Provided selector is not an HTML object nor String') + return null + } + } else { + element = elementOrSelector + } + + if (element.tagName.toLowerCase() === 'svg') { + svg = element; + } else { + if (element.tagName.toLowerCase() === 'object') { + svg = element.contentDocument.documentElement; + } else { + if (element.tagName.toLowerCase() === 'embed') { + svg = element.getSVGDocument().documentElement; + } else { + if (element.tagName.toLowerCase() === 'img') { + throw new Error('Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.'); + } else { + throw new Error('Cannot get SVG.'); + } + return null + } + } + } + + return svg + } + + /** + * Attach a given context to a function + * @param {Function} fn Function + * @param {Object} context Context + * @return {Function} Function with certain context + */ +, proxy: function(fn, context) { + return function() { + return fn.apply(context, arguments) + } + } + + /** + * Returns object type + * Uses toString that returns [object SVGPoint] + * And than parses object type from string + * + * @param {Object} o Any object + * @return {String} Object type + */ +, getType: function(o) { + return Object.prototype.toString.apply(o).replace(/^\[object\s/, '').replace(/\]$/, '') + } + + /** + * If it is a touch event than add clientX and clientY to event object + * + * @param {Event} evt + * @param {SVGSVGElement} svg + */ +, mouseAndTouchNormalize: function(evt, svg) { + // If no clientX then fallback + if (evt.clientX === void 0 || evt.clientX === null) { + // Fallback + evt.clientX = 0 + evt.clientY = 0 + + // If it is a touch event + if (evt.touches !== void 0 && evt.touches.length) { + if (evt.touches[0].clientX !== void 0) { + evt.clientX = evt.touches[0].clientX + evt.clientY = evt.touches[0].clientY + } else if (evt.touches[0].pageX !== void 0) { + var rect = svg.getBoundingClientRect(); + + evt.clientX = evt.touches[0].pageX - rect.left + evt.clientY = evt.touches[0].pageY - rect.top + } + // If it is a custom event + } else if (evt.originalEvent !== void 0) { + if (evt.originalEvent.clientX !== void 0) { + evt.clientX = evt.originalEvent.clientX + evt.clientY = evt.originalEvent.clientY + } + } + } + } + + /** + * Check if an event is a double click/tap + * TODO: For touch gestures use a library (hammer.js) that takes in account other events + * (touchmove and touchend). It should take in account tap duration and traveled distance + * + * @param {Event} evt + * @param {Event} prevEvt Previous Event + * @return {Boolean} + */ +, isDblClick: function(evt, prevEvt) { + // Double click detected by browser + if (evt.detail === 2) { + return true; + } + // Try to compare events + else if (prevEvt !== void 0 && prevEvt !== null) { + var timeStampDiff = evt.timeStamp - prevEvt.timeStamp // should be lower than 250 ms + , touchesDistance = Math.sqrt(Math.pow(evt.clientX - prevEvt.clientX, 2) + Math.pow(evt.clientY - prevEvt.clientY, 2)) + + return timeStampDiff < 250 && touchesDistance < 10 + } + + // Nothing found + return false; + } + + /** + * Returns current timestamp as an integer + * + * @return {Number} + */ +, now: Date.now || function() { + return new Date().getTime(); + } + + // From underscore. + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. Normally, the throttled function will run + // as much as it can, without ever going more than once per `wait` duration; + // but if you'd like to disable the execution on the leading edge, pass + // `{leading: false}`. To disable execution on the trailing edge, ditto. +// jscs:disable +// jshint ignore:start +, throttle: function(func, wait, options) { + var that = this; + var context, args, result; + var timeout = null; + var previous = 0; + if (!options) options = {}; + var later = function() { + previous = options.leading === false ? 0 : that.now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + return function() { + var now = that.now(); + if (!previous && options.leading === false) previous = now; + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + } +// jshint ignore:end +// jscs:enable + + /** + * Create a requestAnimationFrame simulation + * + * @param {Number|String} refreshRate + * @return {Function} + */ +, createRequestAnimationFrame: function(refreshRate) { + var timeout = null + + // Convert refreshRate to timeout + if (refreshRate !== 'auto' && refreshRate < 60 && refreshRate > 1) { + timeout = Math.floor(1000 / refreshRate) + } + + if (timeout === null) { + return window.requestAnimationFrame || requestTimeout(33) + } else { + return requestTimeout(timeout) + } + } +} + +/** + * Create a callback that will execute after a given timeout + * + * @param {Function} timeout + * @return {Function} + */ +function requestTimeout(timeout) { + return function(callback) { + window.setTimeout(callback, timeout) + } +} + +},{}]},{},[1]); + diff --git a/GraphEditor/package.json b/GraphEditor/package.json new file mode 100644 index 0000000..83a18e2 --- /dev/null +++ b/GraphEditor/package.json @@ -0,0 +1,14 @@ +{ + "app":"GraphEditor", + "name":"Graph Editor", + "description":"Create graph with dot language or mermaid", + "info":{ + "author": "Xuan Sang LE", + "email": "xsang.le@gmail.com", + "licences": "GPLv3" + }, + "version":"0.0.4-a", + "category":"Office", + "iconclass": "fa fa-sitemap", + "mimes":["text/.*graphviz"] +} diff --git a/GraphEditor/project.apj b/GraphEditor/project.apj new file mode 100644 index 0000000..e3a0194 --- /dev/null +++ b/GraphEditor/project.apj @@ -0,0 +1 @@ +{"name":"GraphEditor","root":"home://workspace/GraphEditor","css":["css/main.css"],"javascripts":["javascripts/svg-pan-zoom.js","javascripts/mermaidAPI.min.js"],"coffees":["coffees/main.coffee"],"copies":["assets/scheme.html","package.json","README.md"]} \ No newline at end of file diff --git a/OpenPage/build/debug/OpenPage.md b/OpenPage/build/debug/OpenPage.md new file mode 100644 index 0000000..d9dfca7 --- /dev/null +++ b/OpenPage/build/debug/OpenPage.md @@ -0,0 +1,14 @@ +![](https://os.lxsang.me/repo/OpenPage/OpenPage.png) +# OpenPage: ODT (Open Document Text) editor alpha +**OpenPage** is an AntOS application developed in-browser using AntOSDK. It is a Pure Javascript based rich text editor compatible with Open Document Format. + +**Feature:** +* Open, view and edit *.odt* documents +* Offer various formatting style to text +* Define and apply paragraph styles +* Insert link, image +* Embeded fonts +* Save documents as ODF format so that it can be compatible with desktop applications like Open Office + +**Credit:** +OpenPage is heavily based on the WebODF javascript library: https://webodf.org \ No newline at end of file diff --git a/OpenPage/build/debug/blank.odt b/OpenPage/build/debug/blank.odt new file mode 100644 index 0000000000000000000000000000000000000000..2414e6f3e7842f8b5ddf78858ef321cd88331f11 GIT binary patch literal 133915 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 z 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 uRR|6vn~ div > afx-label span +{ + display: block; + padding-top: 7px; +} + +afx-app-window[data-id="FormatDialog"] div[data-id="preview"] +{ + border: 1px solid #a6a6a6; +} +afx-app-window[data-id="FormatDialog"] div[data-id="txtcolor"], +afx-app-window[data-id="FormatDialog"] div[data-id="bgcolor"] +{ + border:1px solid #a6a6a6; + display: block; +} \ No newline at end of file diff --git a/OpenPage/build/debug/main.js b/OpenPage/build/debug/main.js new file mode 100644 index 0000000..9a9b769 --- /dev/null +++ b/OpenPage/build/debug/main.js @@ -0,0 +1,2771 @@ +(function() { + var FormatDialog, HyperLinkDialog, OpenPage; + + OpenPage = class OpenPage extends this.OS.GUI.BaseApplication { + constructor(args) { + super("OpenPage", args); + } + + main() { + var me; + // load session class + //if not OpenPage.EditorSession + // require ["webodf/editor/EditorSession"], (ES) -> + // OpenPage.EditorSession = ES + me = this; + this.eventSubscriptions = new core.EventSubscriptions(); + this.initToolbox(); + this.userid = `${this.systemsetting.user.username}@${this.pid}`; + //file = "home://welcome.odt" + //file = "#{@_api.handler.get}/home://welcome.odt" + //@canvas.load file + //odfContainer = new odf.OdfContainer file, (c) -> + // me.canvas.setOdfContainer c, false + this.currentStyle = ""; + if (this.args && this.args.length > 0) { + this.open(this.args[0]); + } else { + this.newdoc(); + } + this.resource = { + fonts: [], + formats: [] + }; + this.bindKey("ALT-N", function() { + return me.actionFile(`${me.name}-New`); + }); + this.bindKey("ALT-O", function() { + return me.actionFile(`${me.name}-Open`); + }); + this.bindKey("CTRL-S", function() { + return me.actionFile(`${me.name}-Save`); + }); + return this.bindKey("ALT-W", function() { + return me.actionFile(`${me.name}-Saveas`); + }); + } + + menu() { + var me, menu; + me = this; + menu = [ + { + text: "__(File)", + child: [ + { + text: "__(New)", + dataid: `${this.name}-New`, + shortcut: "A-N" + }, + { + text: "__(Open)", + dataid: `${this.name}-Open`, + shortcut: "A-O" + }, + { + text: "__(Save)", + dataid: `${this.name}-Save`, + shortcut: "C-S" + }, + { + text: "__(Save as)", + dataid: `${this.name}-Saveas`, + shortcut: "A-W" + } + ], + onmenuselect: function(e) { + return me.actionFile(e.item.data.dataid); + } + } + ]; + return menu; + } + + actionFile(e) { + var me, saveas; + me = this; + saveas = function() { + return me.openDialog("FileDiaLog", function(d, n, p) { + me.currfile.setPath(`${d}/${n}`); + return me.save(); + }, __("Save as"), { + file: me.currfile + }); + }; + switch (e) { + case `${this.name}-Open`: + return this.openDialog("FileDiaLog", function(d, f, p) { + return me.open(p); + }, __("Open file"), { + mimes: me.meta().mimes + }); + case `${this.name}-Save`: + if (this.currfile.basename) { + //@currfile.cache = @editor.value() + return this.save(); + } + return saveas(); + case `${this.name}-Saveas`: + return saveas(); + case `${this.name}-New`: + return this.newdoc(); + } + } + + newdoc() { + var blank; + blank = `${(this.meta().path)}/blank.odt`; + return this.open(blank, true); + } + + open(p, b) { + var me; + me = this; + return this.pathAsDataURL(p).then(function(r) { + var OdfContainer; + if (me.editorSession) { + me.closeDocument(); + } + me.initCanvas(); + return OdfContainer = new odf.OdfContainer(r.data, function(c) { + me.canvas.setOdfContainer(c, false); + if (b) { + return me.currfile = "Untitled".asFileHandler(); + } + if (me.currfile) { + me.currfile.setPath(p); + } else { + me.currfile = p.asFileHandler(); + } + me.scheme.set("apptitle", me.currfile.basename); + return me.notify(__("File {0} opened", p)); + }); + }).catch(function(e) { + return me.error(__("Problem read file {0}", e)); + }); + } + + save() { + var container, me; + me = this; + if (!this.editorSession) { + return; + } + container = this.canvas.odfContainer(); + if (!container) { + return this.error(__("No document container found")); + } + return container.createByteArray(function(ba) { + // create blob + me.currfile.cache = new Blob([ba], { + type: "application/vnd.oasis.opendocument.text" + }); + return me.currfile.write("application/vnd.oasis.opendocument.text", function(r) { + if (r.error) { + return me.error(__("Cannot save file: {0}", r.error)); + } + me.notify(__("File {0} saved", me.currfile.basename)); + me.scheme.set("apptitle", me.currfile.basename); + me.currfile.dirty = false; + return me.editorFocus(); + }); + }, function(err) { + return this.error(__("Cannot create byte array from container: {0}", err || "")); + }); + } + + initToolbox() { + var el, fn, me, name, ref; + me = this; + this.basictool = { + undo: this.find("btundo"), + redo: this.find("btredo"), + bold: this.find("btbold"), + italic: this.find("btitalic"), + underline: this.find("btunderline"), + strike: this.find("btstrike"), + note: this.find("btnote"), + link: this.find("btlink"), + unlink: this.find("btunlink"), + image: this.find("btimage"), + ac: this.find("btac"), + al: this.find("btal"), + ar: this.find("btar"), + aj: this.find("btaj"), + indent: this.find("btindent"), + outdent: this.find("btoutdent"), + fonts: this.find("font-list"), + fontsize: this.find("font-size"), + styles: this.find("format-list"), + zoom: this.find("slzoom"), + format: this.find("btformat") + }; + fn = function(name, el) { + var act; + if (name === "fonts" || name === "styles") { + act = "onlistselect"; + } else if (name === "fontsize" || name === "zoom") { + act = "onchange"; + } else { + act = "onbtclick"; + } + return el.set(act, function(e) { + if (!me.directFormattingCtl) { + return; + } + if (!me[name]) { + return; + } + me[name](e); + return me.editorFocus(); + }); + }; + ref = this.basictool; + for (name in ref) { + el = ref[name]; + fn(name, el); + } + (this.find("btzoomfix")).set("onbtclick", function(e) { + return me.zoom(100); + }); + return this.basictool.zoom.set("onchanging", function(e) { + var zlb; + zlb = me.find("lbzoom"); + return zlb.set("text", Math.floor(e) + "%"); + }); + } + + initCanvas() { + var el, me; + el = this.find("odfcanvas"); + me = this; + el.setAttribute("translate", "no"); + el.classList.add("notranslate"); + this.canvas = new odf.OdfCanvas(el); + this.documentChanged = function(e) { + if (me.currfile.dirty) { + return; + } + me.currfile.dirty = true; + return me.scheme.set("apptitle", me.currfile.basename + "*"); + }; + //console.log e + this.metaChanged = function(e) { + if (me.currfile.dirty) { + return; + } + me.currfile.dirty = true; + return me.scheme.set("apptitle", me.currfile.basename + "*"); + }; + //console.log e + this.textStylingChanged = function(e) { + return me.updateToolbar(e); + }; + this.paragrahStyleChanged = function(e) { + var i, item, items, j, len, v; + if (e.type !== "style") { + return; + } + items = me.basictool.styles.get("items"); + for (i = j = 0, len = items.length; j < len; i = ++j) { + v = items[i]; + if (v.name === e.styleName) { + item = i; + } + } + me.currentStyle = e.styleName; + return me.basictool.styles.set("selected", item); + }; + this.styleAdded = function(e) { + var dtext, item, items, j, len, stylens, v; + if (e.family !== 'paragraph') { + return; + } + items = me.basictool.styles.get("items"); + for (j = 0, len = items.length; j < len; j++) { + v = items[j]; + if (v.name === e.name) { + item = v; + } + } + if (item) { + return; + } + stylens = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"; + el = me.editorSession.getParagraphStyleElement(e.name); + dtext = el.getAttributeNS(stylens, 'display-name'); + return me.basictool.styles.push({ + text: dtext, + name: e.name + }, true); + }; + //me.resource.formats.push {text: dtext, name:e.name} + this.updateSlider = function(v) { + var value, zlb; + value = Math.floor(v * 100); + me.basictool.zoom.set("value", value); + zlb = me.find("lbzoom"); + return zlb.set("text", value + "%"); + }; + //me.canvas.enableAnnotations true, true + return this.canvas.addListener("statereadychange", function() { + var op, viewOptions; + me.session = new ops.Session(me.canvas); + viewOptions = { + editInfoMarkersInitiallyVisible: false, + caretAvatarsInitiallyVisible: false, + caretBlinksOnRangeSelect: true + }; + me.editorSession = new OpenPage.EditorSession(me.session, me.userid, { + viewOptions: viewOptions, + directTextStylingEnabled: true, + directParagraphStylingEnabled: true, + paragraphStyleSelectingEnabled: true, + paragraphStyleEditingEnabled: true, + imageEditingEnabled: true, + hyperlinkEditingEnabled: true, + annotationsEnabled: true, + zoomingEnabled: true, + reviewModeEnabled: false + }); + me.initFontList(me.editorSession.getDeclaredFonts()); + me.initStyles(me.editorSession.getAvailableParagraphStyles()); + //fix annotation problem on canvas + //console.log $("office:body").css "background-color", "red" + // basic format + me.directFormattingCtl = me.editorSession.sessionController.getDirectFormattingController(); + me.directFormattingCtl.subscribe(gui.DirectFormattingController.textStylingChanged, me.textStylingChanged); + me.directFormattingCtl.subscribe(gui.DirectFormattingController.paragraphStylingChanged, me.textStylingChanged); + me.editorSession.subscribe(OpenPage.EditorSession.signalParagraphChanged, me.paragrahStyleChanged); + + // hyper link controller + me.hyperlinkController = me.editorSession.sessionController.getHyperlinkController(); + me.eventSubscriptions.addFrameSubscription(me.editorSession, OpenPage.EditorSession.signalCursorMoved, function() { + return me.updateHyperlinkButtons(); + }); + me.eventSubscriptions.addFrameSubscription(me.editorSession, OpenPage.EditorSession.signalParagraphChanged, function() { + return me.updateHyperlinkButtons(); + }); + me.eventSubscriptions.addFrameSubscription(me.editorSession, OpenPage.EditorSession.signalParagraphStyleModified, function() { + return me.updateHyperlinkButtons(); + }); + + //annotation controller + me.annotationController = me.editorSession.sessionController.getAnnotationController(); + + //image controller + me.imageController = me.editorSession.sessionController.getImageController(); + //imageController.subscribe(gui.ImageController.enabledChanged, enableButtons) + + //text controller + me.textController = me.editorSession.sessionController.getTextController(); + + // zoom controller + me.zoomHelper = me.editorSession.getOdfCanvas().getZoomHelper(); + me.zoomHelper.subscribe(gui.ZoomHelper.signalZoomChanged, me.updateSlider); + me.updateSlider(me.zoomHelper.getZoomLevel()); + + // format controller + me.editorSession.subscribe(OpenPage.EditorSession.signalCommonStyleCreated, me.styleAdded); + me.editorSession.sessionController.setUndoManager(new gui.TrivialUndoManager()); + me.editorSession.sessionController.getUndoManager().subscribe(gui.UndoManager.signalDocumentModifiedChanged, me.documentChanged); + me.editorSession.sessionController.getMetadataController().subscribe(gui.MetadataController.signalMetadataChanged, me.metaChanged); + op = new ops.OpAddMember(); + op.init({ + memberid: me.userid, + setProperties: { + "fullName": me.userid, + "color": "blue" + } + }); + me.session.enqueue([op]); + me.editorSession.sessionController.insertLocalCursor(); + return me.editorSession.sessionController.startEditing(); + }); + } + + //console.log me.editorSession.getDeclaredFonts() + + initFontList(list) { + var j, l, len, len1, v; + for (j = 0, len = list.length; j < len; j++) { + v = list[j]; + v.text = v.name; + } + for (l = 0, len1 = list.length; l < len1; l++) { + v = list[l]; + this.resource.fonts.push({ + text: v.text, + name: v.family + }); + } + return this.basictool.fonts.set("items", list); + } + + initStyles(list) { + var j, l, len, len1, v; + list.unshift({ + name: "", + displayName: 'Default style' + }); + for (j = 0, len = list.length; j < len; j++) { + v = list[j]; + v.text = v.displayName; + } + for (l = 0, len1 = list.length; l < len1; l++) { + v = list[l]; + this.resource.formats.push({ + text: v.text, + name: v.name + }); + } + return this.basictool.styles.set("items", list); + } + + updateToolbar(changes) { + if (changes.hasOwnProperty('isBold')) { + // basic style + this.basictool.bold.set("selected", changes.isBold); + } + if (changes.hasOwnProperty('isItalic')) { + this.basictool.italic.set("selected", changes.isItalic); + } + if (changes.hasOwnProperty('hasUnderline')) { + this.basictool.underline.set("selected", changes.hasUnderline); + } + if (changes.hasOwnProperty('hasStrikeThrough')) { + this.basictool.strike.set("selected", changes.hasStrikeThrough); + } + if (changes.hasOwnProperty("fontSize")) { + this.basictool.fontsize.set("value", changes.fontSize); + } + if (changes.hasOwnProperty("fontName")) { + this.selectFont(changes.fontName); + } + if (changes.hasOwnProperty("isAlignedLeft")) { + //pharagraph style + this.basictool.al.set("selected", changes.isAlignedLeft); + } + if (changes.hasOwnProperty("isAlignedRight")) { + this.basictool.ar.set("selected", changes.isAlignedRight); + } + if (changes.hasOwnProperty("isAlignedCenter")) { + this.basictool.ac.set("selected", changes.isAlignedCenter); + } + if (changes.hasOwnProperty("isAlignedJustified")) { + return this.basictool.aj.set("selected", changes.isAlignedJustified); + } + } + + updateHyperlinkButtons(e) { + var selectedLinks; + selectedLinks = this.editorSession.getSelectedHyperlinks(); + return this.basictool.unlink.set("enable", selectedLinks.length > 0); + } + + selectFont(name) { + var i, item, items, j, len, v; + items = this.basictool.fonts.get("items"); + for (i = j = 0, len = items.length; j < len; i = ++j) { + v = items[i]; + if (v.name === name) { + item = i; + } + } + return this.basictool.fonts.set("selected", item); + } + + editorFocus() { + return this.editorSession.sessionController.getEventManager().focus(); + } + + bold(e) { + //console.log @, e + return this.directFormattingCtl.setBold(!this.basictool.bold.get("selected")); + } + + italic(e) { + return this.directFormattingCtl.setItalic(!this.basictool.italic.get("selected")); + } + + underline(e) { + return this.directFormattingCtl.setHasUnderline(!this.basictool.underline.get("selected")); + } + + strike(e) { + return this.directFormattingCtl.setHasStrikethrough(!this.basictool.strike.get("selected")); + } + + fonts(e) { + return this.directFormattingCtl.setFontName(e.data.name); + } + + fontsize(e) { + return this.directFormattingCtl.setFontSize(e); + } + + al(e) { + return this.directFormattingCtl.alignParagraphLeft(); + } + + ar(e) { + return this.directFormattingCtl.alignParagraphRight(); + } + + ac(e) { + return this.directFormattingCtl.alignParagraphCenter(); + } + + note(e) { + return this.annotationController.addAnnotation(); + } + + aj(e) { + return this.directFormattingCtl.alignParagraphJustified(); + } + + indent(e) { + return this.directFormattingCtl.indent(); + } + + outdent(e) { + return this.directFormattingCtl.outdent(); + } + + link(e) { + var data, linkTarget, linksInSelection, me, selection, textSerializer; + // get the link first + me = this; + textSerializer = new odf.TextSerializer(); + selection = this.editorSession.getSelectedRange(); + linksInSelection = this.editorSession.getSelectedHyperlinks(); + linkTarget = linksInSelection[0] ? odf.OdfUtils.getHyperlinkTarget(linksInSelection[0]) : "http://"; + data = { + link: linkTarget, + text: "", + readonly: true, + action: "new" + }; + if (selection && selection.collapsed && linksInSelection.length === 1) { + // selection is collapsed within a single link + // text in this case is read only + data.text = textSerializer.writeToString(linksInSelection[0]); + data.action = "edit"; + } else if (selection && !selection.collapsed) { + // user select part of link or a block of text + // user convert a selection to a link + data.text = textSerializer.writeToString(selection.cloneContents()); + } else { + data.readonly = false; + } + return this.openDialog(new HyperLinkDialog(), function(d) { + var selectedLinkRange, selectionController; + selectionController = me.editorSession.sessionController.getSelectionController(); + if (d.readonly) { + // edit the existing link + if (d.action === "edit") { + selectedLinkRange = selection.cloneRange(); + selectedLinkRange.selectNode(linksInSelection[0]); + selectionController.selectRange(selectedLinkRange, true); + } + me.hyperlinkController.removeHyperlinks(); + return me.hyperlinkController.addHyperlink(d.link); + } else { + me.hyperlinkController.addHyperlink(d.link, d.text); + linksInSelection = me.editorSession.getSelectedHyperlinks(); + selectedLinkRange = selection.cloneRange(); + selectedLinkRange.selectNode(linksInSelection[0]); + return selectionController.selectRange(selectedLinkRange, true); + } + }, "__(Insert/edit link)", data); + } + + unlink(e) { + return this.hyperlinkController.removeHyperlinks(); + } + + undo(e) { + return this.editorSession.undo(); + } + + redo(e) { + return this.editorSession.redo(); + } + + pathAsDataURL(p) { + return new Promise(function(resolve, error) { + var fp; + fp = p.asFileHandler(); + return fp.read(function(data) { + var blob, reader; + blob = new Blob([data], { + type: fp.info.mime + }); + reader = new FileReader(); + reader.onloadend = function() { + if (reader.readyState !== 2) { + return error(p); + } + return resolve({ + data: reader.result, + fp: fp + }); + }; + return reader.readAsDataURL(blob); + }, "binary"); + }); + } + + /* + if not isText + + else + fp.read (data) -> + * convert to base64 + b64 = btoa data + dataurl = "data:#{fp.info.mime};base64," + b64 + resolve { reader: {result: dataurl}, fp:fp } + */ + image(e) { + var me; + me = this; + return this.openDialog("FileDiaLog", function(d, n, p) { + return me.pathAsDataURL(p).then(function(r) { + var hiddenImage; + hiddenImage = new Image(); + hiddenImage.style.position = "absolute"; + hiddenImage.style.left = "-99999px"; + document.body.appendChild(hiddenImage); + hiddenImage.onload = function() { + var content; + content = r.data.substring(r.data.indexOf(",") + 1); + //insert image + me.textController.removeCurrentSelection(); + me.imageController.insertImage(r.fp.info.mime, content, hiddenImage.width, hiddenImage.height); + return document.body.removeChild(hiddenImage); + }; + return hiddenImage.src = r.data; + }).catch(function() { + return me.error(__("Couldnt load image {0}", p)); + }); + }, __("Select image file"), { + mimes: ["image/.*"] + }); + } + + styles(e) { + if (e.data.name === this.currentStyle) { + return; + } + return this.editorSession.setCurrentParagraphStyle(e.data.name); + } + + zoom(e) { + //console.log "zooming", e + if (!this.zoomHelper) { + return; + } + return this.zoomHelper.setZoomLevel(e / 100.0); + } + + format(e) { + return this.openDialog(new FormatDialog(), function(d) {}, __("Add/Modify paragraph format"), this.resource); + } + + closeDocument(f) { + var me, op; + // finish editing + if (!(this.editorSession && this.session)) { + return; + } + me = this; + this.eventSubscriptions.unsubscribeAll(); + this.editorSession.sessionController.endEditing(); + this.editorSession.sessionController.removeLocalCursor(); + // remove user + op = new ops.OpRemoveMember(); + op.init({ + memberid: this.userid + }); + this.session.enqueue([op]); + // close the session + return this.session.close(function(e) { + if (e) { + return me.error(__("Cannot close session {0}", e)); + } + me.editorSession.sessionController.getMetadataController().unsubscribe(gui.MetadataController.signalMetadataChanged, me.metaChanged); + me.editorSession.sessionController.getUndoManager().unsubscribe(gui.UndoManager.signalDocumentModifiedChanged, me.documentChanged); + me.directFormattingCtl.unsubscribe(gui.DirectFormattingController.textStylingChanged, me.textStylingChanged); + me.directFormattingCtl.unsubscribe(gui.DirectFormattingController.paragraphStylingChanged, me.textStylingChanged); + me.editorSession.unsubscribe(OpenPage.EditorSession.signalParagraphChanged, me.paragrahStyleChanged); + me.zoomHelper.unsubscribe(gui.ZoomHelper.signalZoomChanged, me.updateSlider); + me.editorSession.unsubscribe(OpenPage.EditorSession.signalCommonStyleCreated, me.styleAdded); + // destry editorSession + return me.editorSession.destroy(function(e) { + if (e) { + return me.error(__("Cannot destroy editor session {0}", e)); + } + me.editorSession = void 0; + // destroy session + return me.session.destroy(function(e) { + if (e) { + return me.error(__("Cannot destroy document session {0}", e)); + } + core.Async.destroyAll([me.canvas.destroy], function(e) { + if (e) { + return me.error(__("Cannot destroy canvas {0}", e)); + } + me.notify("Document closed"); + if (f) { + return f(); + } + }); + me.session = void 0; + me.annotationController = void 0; + me.directFormattingCtl = void 0; + me.textController = void 0; + me.imageController = void 0; + me.ZoomHelper = void 0; + me.metaChanged = void 0; + me.documentChanged = void 0; + me.textStylingChanged = void 0; + me.paragrahStyleChanged = void 0; + me.updateSlider = void 0; + me.styleAdded = void 0; + me.basictool.fonts.set("selected", -1); + return me.basictool.styles.set("selected", -1); + }); + }); + }); + } + + + cleanup(e) { + var me; + me = this; + if (this.editorSession) { + e.preventDefault(); + return me.closeDocument(function() { + return me.quit(); + }); + } + } + + }; + + this.OS.register("OpenPage", OpenPage); + + HyperLinkDialog = class HyperLinkDialog extends this.OS.GUI.BasicDialog { + constructor() { + super("HyperLinkDialog", { + tags: [ + { + tag: "afx-label", + att: 'text="__(Text)" data-height="23" class="header"' + }, + { + tag: "input", + att: 'data-height="30"' + }, + { + tag: "afx-label", + att: 'text="__(Link)" data-height="23" class="header"' + }, + { + tag: "input", + att: 'data-height="30"' + }, + { + tag: "div", + att: ' data-height="5"' + } + ], + width: 350, + height: 150, + resizable: false, + buttons: [ + { + label: "Ok", + onclick: function(d) { + var data; + data = { + text: (d.find("content1")).value, + link: (d.find("content3")).value, + readonly: d.data.readonly, + action: d.data.action + }; + if (d.handler) { + d.handler(data); + } + return d.quit(); + } + }, + { + label: "__(Cancel)", + onclick: function(d) { + return d.quit(); + } + } + ], + filldata: function(d) { + if (!d.data) { + return; + } + (d.find("content1")).value = d.data.text; + (d.find("content3")).value = d.data.link; + return $(d.find("content1")).prop('disabled', d.data.readonly); + } + }); + } + + }; + + FormatDialog = class FormatDialog extends this.OS.GUI.BaseDialog { + constructor() { + super("FormatDialog"); + } + + init() { + return this._gui.htmlToScheme(FormatDialog.scheme, this, this.host); + } + + main() { + this.ui = { + aligment: { + left: this.find("swleft"), + right: this.find("swright"), + center: this.find("swcenter"), + justify: this.find("swjustify") + }, + spacing: { + left: this.find("spnleft"), + right: this.find("spnright"), + top: this.find("spntop"), + bottom: this.find("spnbottom"), + lineheight: this.find("spnlheight") + }, + padding: { + left: this.find("pspnleft"), + right: this.find("pspnright"), + top: this.find("pspntop"), + bottom: this.find("pspnbottom") + }, + style: { + bold: this.find("swbold"), + italic: this.find("switalic"), + underline: this.find("swunderline"), + color: this.find("txtcolor"), + bgcolor: this.find("bgcolor") + }, + font: { + family: this.find("lstfont"), + size: this.find("spnfsize") + }, + formats: this.find("lstformats") + }; + this.initStyleObject(); + this.preview = ($(this.find("preview")).find("p"))[0]; + $(this.preview).css("padding", "0").css("margin", "0"); + return this.initUIEvent(); + } + + //@previewStyle() + initStyleObject() { + // init the format object + return this.currentStyle = { + aligment: this._api.switcher("left", "right", "center", "justify"), + spacing: { + left: 0, + top: 0, + right: 0, + bottom: 0, + lineheight: 0 + }, + padding: { + left: 0, + top: 0, + right: 0, + bottom: 0 + }, + style: { + bold: false, + italic: false, + underline: false, + color: void 0, + bgcolor: void 0 + }, + font: { + family: void 0, + size: 12 + } + }; + } + + initUIEvent() { + var k, me, ref, ref1, ref2, ref3, set, v; + me = this; + set = function(e, o, k, f) { + return me.ui[o][k].set(e, function(r) { + var v; + v = r; + if (f) { + v = f(r); + } + me.currentStyle[o][k] = v; + return me.previewStyle(); + }); + }; + ref = this.ui.aligment; + for (k in ref) { + v = ref[k]; + set("onchange", "aligment", k, (function(e) { + return e.data; + })); + } + ref1 = this.ui.spacing; + for (k in ref1) { + v = ref1[k]; + set("onchange", "spacing", k); + } + ref2 = this.ui.padding; + for (k in ref2) { + v = ref2[k]; + set("onchange", "padding", k); + } + ref3 = this.ui.style; + for (k in ref3) { + v = ref3[k]; + if (k !== "color" && k !== "bgcolor") { + set("onchange", "style", k, (function(e) { + return e.data; + })); + } + } + set("onchange", "font", "size"); + $(this.ui.style.color).click(function(e) { + return me.openDialog("ColorPickerDialog", function(d) { + me.currentStyle.style.color = d; + return me.previewStyle(); + }); + }); + $(this.ui.style.bgcolor).click(function(e) { + return me.openDialog("ColorPickerDialog", function(d) { + me.currentStyle.style.bgcolor = d; + return me.previewStyle(); + }); + }); + if (this.data && this.data.fonts) { + //font + this.ui.font.family.set("items", this.data.fonts); + } + set("onlistselect", "font", "family", (function(e) { + return e.data; + })); + //format list + this.ui.formats.set("selected", -1); + if (this.data && this.data.formats) { + this.ui.formats.set("items", this.data.formats); + } + this.ui.formats.set("onlistselect", function(e) { + return me.fromODFStyleFormat(e.data); + }); + this.ui.formats.set("selected", 0); + (this.find("btok")).set("onbtclick", function(e) { + return me.saveCurrentStyle(); + }); + (this.find("btx")).set("onbtclick", function(e) { + return me.quit(); + }); + return (this.find("bt-clone")).set("onbtclick", function(e) { + return me.clone(); + }); + } + + clone() { + var me, selected; + me = this; + selected = this.ui.formats.get("selected"); + if (!selected) { + return; + } + return this.openDialog("PromptDialog", function(d) { + var newstyle; + if (!(d && d.trim() !== "")) { + return me.notify(__("Abort: no style name is specified")); + } + newstyle = me.parent.editorSession.cloneParagraphStyle(selected.name, d); + me.ui.formats.push({ + text: d, + name: newstyle + }); + me.ui.formats.set("selected", (me.ui.formats.get('count')) - 1); + return me.notify(__("New style: {0} added", newstyle)); + }, __("Clone style: {0}", selected.text), { + label: __("New style name:") + }); + } + + saveCurrentStyle() { + var odfs, selected; + selected = this.ui.formats.get("selected"); + if (!selected) { + return; + } + odfs = { + "style:paragraph-properties": { + "fo:margin-top": this.currentStyle.spacing.top + "mm", + "fo:margin-left": this.currentStyle.spacing.left + "mm", + "fo:margin-bottom": this.currentStyle.spacing.bottom + "mm", + "fo:margin-right": this.currentStyle.spacing.right + "mm", + "fo:padding-top": this.currentStyle.padding.top + "mm", + "fo:padding-left": this.currentStyle.padding.left + "mm", + "fo:padding-bottom": this.currentStyle.padding.bottom + "mm", + "fo:padding-right": this.currentStyle.padding.right + "mm", + "fo:line-height": this.currentStyle.spacing.lineheight > 0 ? this.currentStyle.spacing.lineheight + "mm" : "normal", + "fo:text-align": this.currentStyle.aligment.selected || "left" + }, + "style:text-properties": { + "fo:font-weight": this.currentStyle.style.bold ? "bold" : "normal", + "fo:font-style": this.currentStyle.style.italic ? "italic" : "normal", + "style:text-underline-style": this.currentStyle.style.underline ? "solid" : "none", + "fo:font-size": this.currentStyle.font.size + "pt", + "fo:font-name": this.currentStyle.font.family.text, + "fo:color": this.currentStyle.style.color ? this.currentStyle.style.color.hex : "#000000", + "fo:background-color": this.currentStyle.style.bgcolor ? this.currentStyle.style.bgcolor.hex : "transparent" + } + }; + this.parent.editorSession.updateParagraphStyle(selected.name, odfs); + return this.notify(__("Paragraph format [{0}] is saved", selected.text)); + } + + fromODFStyleFormat(odfs) { + var cssUnits, findFont, me, style; + me = this; + this.initStyleObject(); + cssUnits = new core.CSSUnits(); + findFont = function(name) { + var item, items, j, len, v; + items = me.ui.font.family.get("items"); + for (j = 0, len = items.length; j < len; j++) { + v = items[j]; + if (v.text === name) { + item = v; + } + } + if (!item) { + return void 0; + } + return item; + }; + // spacing + style = this.parent.editorSession.getParagraphStyleAttributes(odfs.name)['style:paragraph-properties']; + if (style) { + this.currentStyle.spacing.top = cssUnits.convertMeasure(style['fo:margin-top'], 'mm') || 0; + this.currentStyle.spacing.left = cssUnits.convertMeasure(style['fo:margin-left'], 'mm') || 0; + this.currentStyle.spacing.right = cssUnits.convertMeasure(style['fo:margin-right'], 'mm') || 0; + this.currentStyle.spacing.bottom = cssUnits.convertMeasure(style['fo:margin-bottom'], 'mm') || 0; + this.currentStyle.padding.top = cssUnits.convertMeasure(style['fo:padding-top'], 'mm') || 0; + this.currentStyle.padding.left = cssUnits.convertMeasure(style['fo:padding-left'], 'mm') || 0; + this.currentStyle.padding.right = cssUnits.convertMeasure(style['fo:padding-right'], 'mm') || 0; + this.currentStyle.padding.bottom = cssUnits.convertMeasure(style['fo:padding-bottom'], 'mm') || 0; + this.currentStyle.spacing.lineheight = cssUnits.convertMeasure(style['fo:line-height'], 'mm') || 4.2; // 1em = 4,2175176mm + if (style['fo:text-align']) { + this.currentStyle.aligment[style['fo:text-align']] = true; + } + } + style = this.parent.editorSession.getParagraphStyleAttributes(odfs.name)['style:text-properties']; + if (style) { + this.currentStyle.style.bold = style['fo:font-weight'] === 'bold'; + this.currentStyle.style.italic = style['fo:font-style'] === 'italic'; + if (style['style:text-underline-style'] && style['style:text-underline-style'] !== 'none') { + this.currentStyle.style.underline = true; + } + this.currentStyle.font.size = parseFloat(style['fo:font-size']); + this.currentStyle.font.family = findFont(style['style:font-name']); + if (style['fo:color']) { + this.currentStyle.style.color = { + hex: style['fo:color'] + }; + } + if (style['fo:background-color']) { + this.currentStyle.style.bgcolor = { + hex: style['fo:background-color'] + }; + } + } + return this.previewStyle(); + } + + previewStyle() { + var el, i, item, items, j, len, v; + //console.log "previewing" + // reset ui + this.ui.aligment.left.set("swon", this.currentStyle.aligment.left); + this.ui.aligment.right.set("swon", this.currentStyle.aligment.right); + this.ui.aligment.center.set("swon", this.currentStyle.aligment.center); + this.ui.aligment.justify.set("swon", this.currentStyle.aligment.justify); + this.ui.spacing.left.set("value", this.currentStyle.spacing.left); + this.ui.spacing.right.set("value", this.currentStyle.spacing.right); + this.ui.spacing.top.set("value", this.currentStyle.spacing.top); + this.ui.spacing.bottom.set("value", this.currentStyle.spacing.bottom); + this.ui.spacing.lineheight.set("value", this.currentStyle.spacing.lineheight); + this.ui.padding.left.set("value", this.currentStyle.padding.left); + this.ui.padding.right.set("value", this.currentStyle.padding.right); + this.ui.padding.top.set("value", this.currentStyle.padding.top); + this.ui.padding.bottom.set("value", this.currentStyle.padding.bottom); + this.ui.style.bold.set("swon", this.currentStyle.style.bold); + this.ui.style.italic.set("swon", this.currentStyle.style.italic); + this.ui.style.underline.set("swon", this.currentStyle.style.underline); + this.ui.font.size.set("value", this.currentStyle.font.size); + + //console.log @currentStyle + if (this.currentStyle.font.family) { + items = this.ui.font.family.get("items"); + for (i = j = 0, len = items.length; j < len; i = ++j) { + v = items[i]; + if (v.text === this.currentStyle.font.family.text) { + item = i; + } + } + if (item >= 0) { + this.ui.font.family.set("selected", item); + } + } + $(this.ui.style.color).css("background-color", this.currentStyle.style.color ? this.currentStyle.style.color.hex : "#000000"); + $(this.ui.style.bgcolor).css("background-color", this.currentStyle.style.bgcolor ? this.currentStyle.style.bgcolor.hex : "white"); + // set the preview css + el = $(this.preview); + el.css("text-align", this.currentStyle.aligment.selected ? this.currentStyle.aligment.selected : "left"); + el.css("margin-left", this.currentStyle.spacing.left + "mm"); + el.css("margin-right", this.currentStyle.spacing.right + "mm"); + el.css("margin-top", this.currentStyle.spacing.top + "mm"); + el.css("margin-bottom", this.currentStyle.spacing.bottom + "mm"); + el.css("padding-left", this.currentStyle.padding.left + "mm"); + el.css("padding-right", this.currentStyle.padding.right + "mm"); + el.css("padding-top", this.currentStyle.padding.top + "mm"); + el.css("padding-bottom", this.currentStyle.padding.bottom + "mm"); + el.css("font-weight", "normal").css("font-style", "normal").css("text-decoration", "none").css("line-height", "normal"); + if (this.currentStyle.style.bold) { + el.css("font-weight", "bold"); + } + if (this.currentStyle.style.italic) { + el.css("font-style", "italic"); + } + if (this.currentStyle.style.underline) { + el.css("text-decoration", "underline"); + } + el.css("color", this.currentStyle.style.color ? this.currentStyle.style.color.hex : "#000000"); + el.css("background-color", this.currentStyle.style.bgcolor ? this.currentStyle.style.bgcolor.hex : "transparent"); + el.css("font-size", this.currentStyle.font.size + "pt"); + if (this.currentStyle.font.family) { + el.css("font-family", this.currentStyle.font.family.name); + } + if (this.currentStyle.spacing.lineheight > 0) { + return el.css("line-height", this.currentStyle.spacing.lineheight + "mm"); + } + } + + }; + + FormatDialog.scheme = "\n \n

\n \n
\n \n
\n \n
\n
\n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n
\n \n
\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n \n
\n \n
\n \n
\n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n \n \n
\n \n \n
\n
\n
\n \n
\n \n
\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce laoreet diam vestibulum massa malesuada quis dignissim libero blandit. Duis sit amet volutpat nisl.

\n
\n
\n
\n \n
\n \n
\n \n
\n \n
\n
\n \n"; + +}).call(this); + +/* + + This is a generated file. DO NOT EDIT. + + Copyright (C) 2010-2015 KO GmbH + + @licstart + The code in this file is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License (GNU AGPL) + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + + The code in this file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with WebODF. If not, see . + + As additional permission under GNU AGPL version 3 section 7, you + may distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU AGPL normally + required by section 4, provided you include this license notice and a URL + through which recipients can access the Corresponding Source. + + As a special exception to the AGPL, any HTML file which merely makes function + calls to this code, and for that purpose includes it in unmodified form by reference or in-line shall be + deemed a separate work for copyright law purposes. In addition, the copyright + holders of this code give you permission to combine this code with free + software libraries that are released under the GNU LGPL. You may copy and + distribute such a system following the terms of the GNU AGPL for this code + and the LGPL for the libraries. If you modify this code, you may extend this + exception to your version of the code, but you are not obligated to do so. + If you do not wish to do so, delete this exception statement from your + version. + + This license applies to this entire compilation. + @licend + + @source: http://www.webodf.org/ + @source: https://github.com/kogmbh/WebODF/ +*/ +var webodf_version="0.5.9";function Runtime(){}Runtime.prototype.getVariable=function(g){};Runtime.prototype.toJson=function(g){};Runtime.prototype.fromJson=function(g){};Runtime.prototype.byteArrayFromString=function(g,k){};Runtime.prototype.byteArrayToString=function(g,k){};Runtime.prototype.read=function(g,k,d,b){};Runtime.prototype.readFile=function(g,k,d){};Runtime.prototype.readFileSync=function(g,k){};Runtime.prototype.loadXML=function(g,k){};Runtime.prototype.writeFile=function(g,k,d){}; +Runtime.prototype.deleteFile=function(g,k){};Runtime.prototype.log=function(g,k){};Runtime.prototype.setTimeout=function(g,k){};Runtime.prototype.clearTimeout=function(g){};Runtime.prototype.libraryPaths=function(){};Runtime.prototype.currentDirectory=function(){};Runtime.prototype.setCurrentDirectory=function(g){};Runtime.prototype.type=function(){};Runtime.prototype.getDOMImplementation=function(){};Runtime.prototype.parseXML=function(g){};Runtime.prototype.exit=function(g){}; +Runtime.prototype.getWindow=function(){};Runtime.prototype.requestAnimationFrame=function(g){};Runtime.prototype.cancelAnimationFrame=function(g){};Runtime.prototype.assert=function(g,k){};var IS_COMPILED_CODE=!0; +Runtime.byteArrayToString=function(g,k){function d(b){var d="",r,q=b.length;for(r=0;rl?e.push(l):(r+=1,a=b[r],194<=l&&224>l?e.push((l&31)<<6|a&63):(r+=1,c=b[r],224<=l&&240>l?e.push((l&15)<<12|(a&63)<<6|c&63):(r+=1,m=b[r],240<=l&&245>l&&(l=(l&7)<<18|(a&63)<<12|(c&63)<<6|m&63,l-=65536,e.push((l>>10)+55296,(l&1023)+56320))))),1E3<=e.length&& +(d+=String.fromCharCode.apply(null,e),e.length=0);return d+String.fromCharCode.apply(null,e)}var f;"utf8"===k?f=b(g):("binary"!==k&&this.log("Unsupported encoding: "+k),f=d(g));return f};Runtime.getVariable=function(g){try{return eval(g)}catch(k){}};Runtime.toJson=function(g){return JSON.stringify(g)};Runtime.fromJson=function(g){return JSON.parse(g)};Runtime.getFunctionName=function(g){return void 0===g.name?(g=/function\s+(\w+)/.exec(g))&&g[1]:g.name}; +Runtime.assert=function(g,k){if(!g)throw this.log("alert","ASSERTION FAILED:\n"+k),Error(k);}; +function BrowserRuntime(){function g(b){var e=b.length,l,a,c=0;for(l=0;la&&(c+=1,l+=1);return c}function k(b,e,l){var a=b.length,c,m;e=new Uint8Array(new ArrayBuffer(e));l?(e[0]=239,e[1]=187,e[2]=191,m=3):m=0;for(l=0;lc?(e[m]=c,m+=1):2048>c?(e[m]=192|c>>>6,e[m+1]=128|c&63,m+=2):55040>=c||57344<=c?(e[m]=224|c>>>12&15,e[m+1]=128|c>>>6&63,e[m+2]=128|c&63,m+=3):(l+=1,c=(c-55296<<10|b.charCodeAt(l)-56320)+65536, +e[m]=240|c>>>18&7,e[m+1]=128|c>>>12&63,e[m+2]=128|c>>>6&63,e[m+3]=128|c&63,m+=4);return e}function d(b){var e=b.length,l=new Uint8Array(new ArrayBuffer(e)),a;for(a=0;aa.status||0===a.status?l(null):l("Status "+String(a.status)+": "+a.responseText||a.statusText):l("File "+b+" is empty."))};c=e.buffer&&!a.sendAsBinary?e.buffer:r.byteArrayToString(e,"binary");try{a.sendAsBinary?a.sendAsBinary(c):a.send(c)}catch(m){r.log("HUH? "+ +m+" "+e),l(m.message)}};this.deleteFile=function(b,e){var l=new XMLHttpRequest;l.open("DELETE",b,!0);l.onreadystatechange=function(){4===l.readyState&&(200>l.status&&300<=l.status?e(l.responseText):e(null))};l.send(null)};this.loadXML=function(b,e){var l=new XMLHttpRequest;l.open("GET",b,!0);l.overrideMimeType&&l.overrideMimeType("text/xml");l.onreadystatechange=function(){4===l.readyState&&(0!==l.status||l.responseText?200===l.status||0===l.status?e(null,l.responseXML):e(l.responseText,null):e("File "+ +b+" is empty.",null))};try{l.send(null)}catch(a){e(a.message,null)}};this.log=b;this.enableAlerts=!0;this.assert=Runtime.assert;this.setTimeout=function(b,e){return setTimeout(function(){b()},e)};this.clearTimeout=function(b){clearTimeout(b)};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(){};this.currentDirectory=function(){return""};this.type=function(){return"BrowserRuntime"};this.getDOMImplementation=function(){return window.document.implementation};this.parseXML= +function(b){return(new DOMParser).parseFromString(b,"text/xml")};this.exit=function(d){b("Calling exit with code "+String(d)+", but exit() is not implemented.")};this.getWindow=function(){return window};this.requestAnimationFrame=function(b){var e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame,l=0;if(e)e.bind(window),l=e(b);else return setTimeout(b,15);return l};this.cancelAnimationFrame=function(b){var e=window.cancelAnimationFrame|| +window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.msCancelAnimationFrame;e?(e.bind(window),e(b)):clearTimeout(b)}} +function NodeJSRuntime(){function g(b){var e=b.length,l,a=new Uint8Array(new ArrayBuffer(e));for(l=0;l").implementation} +function RhinoRuntime(){var g=this,k={},d=k.javax.xml.parsers.DocumentBuilderFactory.newInstance(),b,f,n="";d.setValidating(!1);d.setNamespaceAware(!0);d.setExpandEntityReferences(!1);d.setSchema(null);f=k.org.xml.sax.EntityResolver({resolveEntity:function(b,d){var f=new k.java.io.FileReader(d);return new k.org.xml.sax.InputSource(f)}});b=d.newDocumentBuilder();b.setEntityResolver(f);this.byteArrayFromString=function(b,d){var f,e=b.length,l=new Uint8Array(new ArrayBuffer(e));for(f=0;f>>18],m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c>>>12&63],m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c>>>6&63],m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c& +63];h===b+1?(c=a[h]<<4,m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c>>>6],m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c&63],m+="=="):h===b&&(c=a[h]<<10|a[h+1]<<2,m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c>>>12],m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c>>>6&63],m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[c&63],m+="=");return m}function d(a){a=a.replace(/[^A-Za-z0-9+\/]+/g, +"");var c=a.length,m=new Uint8Array(new ArrayBuffer(3*c)),b=a.length%4,d=0,l,e;for(l=0;l>16,m[d+1]=e>>8&255,m[d+2]=e&255,d+=3;c=3*c-[0,0,2,1][b];return m.subarray(0,c)}function b(a){var c,m,h=a.length,b=0,d=new Uint8Array(new ArrayBuffer(3*h));for(c=0;cm?d[b++]=m:(2048>m?d[b++]=192|m>>>6:(d[b++]=224|m>>>12&15,d[b++]=128|m>>>6&63),d[b++]=128|m&63);return d.subarray(0, +b)}function f(a){var c,m,h,b,d=a.length,l=new Uint8Array(new ArrayBuffer(d)),e=0;for(c=0;cm?l[e++]=m:(c+=1,h=a[c],224>m?l[e++]=(m&31)<<6|h&63:(c+=1,b=a[c],l[e++]=(m&15)<<12|(h&63)<<6|b&63));return l.subarray(0,e)}function n(a){return k(g(a))}function p(a){return String.fromCharCode.apply(String,d(a))}function r(a){return f(g(a))}function q(a){a=f(a);for(var c="",m=0;mc?l+=String.fromCharCode(c):(d+=1,h=a.charCodeAt(d)&255,224>c?l+=String.fromCharCode((c&31)<<6|h&63):(d+=1,b=a.charCodeAt(d)&255,l+=String.fromCharCode((c&15)<<12|(h&63)<<6|b&63)));return l}function l(a,c){function m(){var d=b+1E5;d>a.length&&(d=a.length);h+=e(a,b,d);b=d;d=b===a.length;c(h,d)&&!d&&runtime.setTimeout(m,0)}var h="",b=0;1E5>a.length?c(e(a,0,a.length),!0):("string"!==typeof a&&(a=a.slice()),m())}function a(a){return b(g(a))}function c(a){return String.fromCharCode.apply(String, +b(a))}function m(a){return String.fromCharCode.apply(String,b(g(a)))}var h=function(a){var c={},m,h;m=0;for(h=a.length;m=a.compareBoundaryPoints(Range.START_TO_START,c)&&0<=a.compareBoundaryPoints(Range.END_TO_END,c)}function n(a,c){return 0>=a.compareBoundaryPoints(Range.END_TO_START,c)&&0<=a.compareBoundaryPoints(Range.START_TO_END,c)}function p(a,c){var b=null;a.nodeType===Node.TEXT_NODE&&(0===a.length?(a.parentNode.removeChild(a),c.nodeType===Node.TEXT_NODE&&(b=c)):(c.nodeType===Node.TEXT_NODE&&(a.appendData(c.data),c.parentNode.removeChild(c)),b=a));return b} +function r(a){for(var c=a.parentNode;a.firstChild;)c.insertBefore(a.firstChild,a);c.removeChild(a);return c}function q(a,c){var b=a.parentNode,d=a.firstChild,l=c(a),e;if(l===NodeFilter.FILTER_SKIP)return b;for(;d;)e=d.nextSibling,q(d,c),d=e;b&&l===NodeFilter.FILTER_REJECT&&r(a);return b}function e(a,c){return a===c||Boolean(a.compareDocumentPosition(c)&Node.DOCUMENT_POSITION_CONTAINED_BY)}function l(a,c){return g().unscaledRangeClientRects?a:a/c}function a(c,h,b){Object.keys(h).forEach(function(d){var l= +d.split(":"),e=l[1],f=b(l[0]),l=h[d],n=typeof l;"object"===n?Object.keys(l).length&&(d=f?c.getElementsByTagNameNS(f,e)[0]||c.ownerDocument.createElementNS(f,d):c.getElementsByTagName(e)[0]||c.ownerDocument.createElement(d),c.appendChild(d),a(d,l,b)):f&&(runtime.assert("number"===n||"string"===n,"attempting to map unsupported type '"+n+"' (key: "+d+")"),c.setAttributeNS(f,d,String(l)))})}var c=null;this.splitBoundaries=function(a){var c,d=[],l,e,f;if(a.startContainer.nodeType===Node.TEXT_NODE||a.endContainer.nodeType=== +Node.TEXT_NODE){l=a.endContainer;e=a.endContainer.nodeType!==Node.TEXT_NODE?a.endOffset===a.endContainer.childNodes.length:!1;f=a.endOffset;c=a.endContainer;if(fg))throw runtime.log("alert","watchdog timeout"),"timeout!";if(0k))throw runtime.log("alert","watchdog loop overflow"),"loop overflow";}};core.NodeFilterChain=function(g){var k=NodeFilter.FILTER_REJECT,d=NodeFilter.FILTER_ACCEPT;this.acceptNode=function(b){var f;for(f=0;f "+c.length),runtime.assert(0<=b,"Error in setPosition: "+b+" < 0"),b===c.length&&(l.nextSibling()?a=0:l.parentNode()?a=1:runtime.assert(!1,"Error in setUnfilteredPosition: position not valid."))):ba.value||"%"===a.unit)?null:a}function L(a){return(a=I(a))&&"%"!==a.unit?null:a}function E(a){switch(a.namespaceURI){case odf.Namespaces.drawns:case odf.Namespaces.svgns:case odf.Namespaces.dr3dns:return!1;case odf.Namespaces.textns:switch(a.localName){case "note-body":case "ruby-text":return!1}break;case odf.Namespaces.officens:switch(a.localName){case "annotation":case "binary-data":case "event-listeners":return!1}break;default:switch(a.localName){case "cursor":case "editinfo":return!1}}return!0} +function N(a){return Boolean(n(a)&&(!r(a.textContent)||A(a,0)))}function O(a,c){for(;0=c.value||"%"===c.unit)?null:c;return c||L(a)};this.parseFoLineHeight= +function(a){return K(a)||L(a)};this.isTextContentContainingNode=E;this.getTextNodes=function(a,c){var b;b=aa.getNodesInRange(a,function(a){var c=NodeFilter.FILTER_REJECT;a.nodeType===Node.TEXT_NODE?N(a)&&(c=NodeFilter.FILTER_ACCEPT):E(a)&&(c=NodeFilter.FILTER_SKIP);return c},NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);c||O(a,b);return b};this.getTextElements=D;this.getParagraphElements=function(a){var c;c=aa.getNodesInRange(a,function(a){var c=NodeFilter.FILTER_REJECT;if(f(a))c=NodeFilter.FILTER_ACCEPT; +else if(E(a)||q(a))c=NodeFilter.FILTER_SKIP;return c},NodeFilter.SHOW_ELEMENT);V(a.startContainer,c,f);return c};this.getImageElements=function(a){var c;c=aa.getNodesInRange(a,function(a){var c=NodeFilter.FILTER_SKIP;g(a)&&(c=NodeFilter.FILTER_ACCEPT);return c},NodeFilter.SHOW_ELEMENT);V(a.startContainer,c,g);return c};this.getHyperlinkElements=function(a){var c=[],d=a.cloneRange();a.collapsed&&a.endContainer.nodeType===Node.ELEMENT_NODE&&(a=W(a.endContainer,a.endOffset),a.nodeType===Node.TEXT_NODE&& +d.setEnd(a,1));D(d,!0,!1).forEach(function(a){for(a=a.parentNode;!f(a);){if(b(a)&&-1===c.indexOf(a)){c.push(a);break}a=a.parentNode}});d.detach();return c};this.getNormalizedFontFamilyName=function(a){/^(["'])(?:.|[\n\r])*?\1$/.test(a)||(a=a.replace(/^[ \t\r\n\f]*((?:.|[\n\r])*?)[ \t\r\n\f]*$/,"$1"),/[ \t\r\n\f]/.test(a)&&(a="'"+a.replace(/[ \t\r\n\f]+/g," ")+"'"));return a}};odf.OdfUtils=new odf.OdfUtilsImpl; +gui.OdfTextBodyNodeFilter=function(){var g=odf.OdfUtils,k=Node.TEXT_NODE,d=NodeFilter.FILTER_REJECT,b=NodeFilter.FILTER_ACCEPT,f=odf.Namespaces.textns;this.acceptNode=function(n){if(n.nodeType===k){if(!g.isGroupingElement(n.parentNode))return d}else if(n.namespaceURI===f&&"tracked-changes"===n.localName)return d;return b}};xmldom.LSSerializerFilter=function(){};xmldom.LSSerializerFilter.prototype.acceptNode=function(g){}; +odf.OdfNodeFilter=function(){this.acceptNode=function(g){return"http://www.w3.org/1999/xhtml"===g.namespaceURI?NodeFilter.FILTER_SKIP:g.namespaceURI&&g.namespaceURI.match(/^urn:webodf:/)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}};xmldom.XPathIterator=function(){};xmldom.XPathIterator.prototype.next=function(){};xmldom.XPathIterator.prototype.reset=function(){}; +function createXPathSingleton(){function g(b,a,c){return-1!==b&&(b=e&&c.push(k(b.substring(a,d)))):"["===b[d]&&(0>=e&&(a=d+1),e+=1),d+=1;return d};q=function(d,a,c){var m,h,e,n;for(m=0;m/g,">").replace(/'/g,"'").replace(/"/g,""")}function d(f,n){var g="",r=b.filter?b.filter.acceptNode(n):NodeFilter.FILTER_ACCEPT,q;if(r===NodeFilter.FILTER_ACCEPT&&n.nodeType===Node.ELEMENT_NODE){f.push();q=f.getQName(n);var e,l=n.attributes,a,c,m,h="",y;e="<"+q;a=l.length;for(c=0;c")}if(r===NodeFilter.FILTER_ACCEPT||r===NodeFilter.FILTER_SKIP){for(r=n.firstChild;r;)g+=d(f,r),r=r.nextSibling;n.nodeValue&&(g+=k(n.nodeValue))}q&&(g+="",f.pop());return g}var b=this;this.filter=null;this.writeToString=function(b,n){if(!b)return"";var k=new g(n);return d(k,b)}}; +(function(){function g(b){var a,c=r.length;for(a=0;ac)break;h=h.nextSibling}b.insertBefore(a,h)}}}var f=new odf.StyleInfo,n=core.DomUtils,p=odf.Namespaces.stylens,r="meta settings scripts font-face-decls styles automatic-styles master-styles body".split(" "), +q=Date.now()+"_webodf_",e=new core.Base64;odf.ODFElement=function(){};odf.ODFDocumentElement=function(){};odf.ODFDocumentElement.prototype=new odf.ODFElement;odf.ODFDocumentElement.prototype.constructor=odf.ODFDocumentElement;odf.ODFDocumentElement.prototype.fontFaceDecls=null;odf.ODFDocumentElement.prototype.manifest=null;odf.ODFDocumentElement.prototype.settings=null;odf.ODFDocumentElement.namespaceURI="urn:oasis:names:tc:opendocument:xmlns:office:1.0";odf.ODFDocumentElement.localName="document"; +odf.AnnotationElement=function(){};odf.OdfPart=function(b,a,c,d){var h=this;this.size=0;this.type=null;this.name=b;this.container=c;this.url=null;this.mimetype=a;this.onstatereadychange=this.document=null;this.EMPTY=0;this.LOADING=1;this.DONE=2;this.state=this.EMPTY;this.data="";this.load=function(){null!==d&&(this.mimetype=a,d.loadAsDataURL(b,a,function(a,c){a&&runtime.log(a);h.url=c;if(h.onchange)h.onchange(h);if(h.onstatereadychange)h.onstatereadychange(h)}))}};odf.OdfPart.prototype.load=function(){}; +odf.OdfPart.prototype.getUrl=function(){return this.data?"data:;base64,"+e.toBase64(this.data):null};odf.OdfContainer=function a(c,m){function h(a){for(var c=a.firstChild,b;c;)b=c.nextSibling,c.nodeType===Node.ELEMENT_NODE?h(c):c.nodeType===Node.PROCESSING_INSTRUCTION_NODE&&a.removeChild(c),c=b}function g(a){var c={},b,d,h=a.ownerDocument.createNodeIterator(a,NodeFilter.SHOW_ELEMENT,null,!1);for(a=h.nextNode();a;)"urn:oasis:names:tc:opendocument:xmlns:office:1.0"===a.namespaceURI&&("annotation"=== +a.localName?(b=a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0","name"))&&(c.hasOwnProperty(b)?runtime.log("Warning: annotation name used more than once with : '"+b+"'"):c[b]=a):"annotation-end"===a.localName&&((b=a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0","name"))?c.hasOwnProperty(b)?(d=c[b],d.annotationEndElement?runtime.log("Warning: annotation name used more than once with : '"+b+"'"):d.annotationEndElement= +a):runtime.log("Warning: annotation end without an annotation start, name: '"+b+"'"):runtime.log("Warning: annotation end without a name found"))),a=h.nextNode()}function r(a,c){for(var b=a&&a.firstChild;b;)b.nodeType===Node.ELEMENT_NODE&&b.setAttributeNS("urn:webodf:names:scope","scope",c),b=b.nextSibling}function z(a,c){for(var b=B.rootElement.meta,b=b&&b.firstChild;b&&(b.namespaceURI!==a||b.localName!==c);)b=b.nextSibling;for(b=b&&b.firstChild;b&&b.nodeType!==Node.TEXT_NODE;)b=b.nextSibling;return b? +b.data:null}function w(a){var c={},b;for(a=a.firstChild;a;)a.nodeType===Node.ELEMENT_NODE&&a.namespaceURI===p&&"font-face"===a.localName&&(b=a.getAttributeNS(p,"name"),c[b]=a),a=a.nextSibling;return c}function v(a,c){var b=null,d,h,e;if(a)for(b=a.cloneNode(!0),d=b.firstElementChild;d;)h=d.nextElementSibling,(e=d.getAttributeNS("urn:webodf:names:scope","scope"))&&e!==c&&b.removeChild(d),d=h;return b}function u(a,c){var b,d,h,e=null,m={};if(a)for(c.forEach(function(a){f.collectUsedFontFaces(m,a)}), +e=a.cloneNode(!0),b=e.firstElementChild;b;)d=b.nextElementSibling,h=b.getAttributeNS(p,"name"),m[h]||e.removeChild(b),b=d;return e}function t(a){var c=B.rootElement.ownerDocument,b;if(a){h(a.documentElement);try{b=c.importNode(a.documentElement,!0)}catch(d){}}return b}function A(a){B.state=a;if(B.onchange)B.onchange(B);if(B.onstatereadychange)B.onstatereadychange(B)}function I(a){Q=null;B.rootElement=a;a.fontFaceDecls=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","font-face-decls"); +a.styles=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","styles");a.automaticStyles=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","automatic-styles");a.masterStyles=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","master-styles");a.body=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","body");a.meta=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","meta");a.settings=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0", +"settings");a.scripts=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","scripts");g(a)}function K(c){var d=t(c),h=B.rootElement,e;d&&"document-styles"===d.localName&&"urn:oasis:names:tc:opendocument:xmlns:office:1.0"===d.namespaceURI?(h.fontFaceDecls=n.getDirectChild(d,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","font-face-decls"),b(h,h.fontFaceDecls),e=n.getDirectChild(d,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","styles"),h.styles=e||c.createElementNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0", +"styles"),b(h,h.styles),e=n.getDirectChild(d,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","automatic-styles"),h.automaticStyles=e||c.createElementNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0","automatic-styles"),r(h.automaticStyles,"document-styles"),b(h,h.automaticStyles),d=n.getDirectChild(d,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","master-styles"),h.masterStyles=d||c.createElementNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0","master-styles"),b(h,h.masterStyles), +f.prefixStyleNames(h.automaticStyles,q,h.masterStyles)):A(a.INVALID)}function L(c){c=t(c);var d,h,e,m;if(c&&"document-content"===c.localName&&"urn:oasis:names:tc:opendocument:xmlns:office:1.0"===c.namespaceURI){d=B.rootElement;e=n.getDirectChild(c,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","font-face-decls");if(d.fontFaceDecls&&e){m=d.fontFaceDecls;var g,k,O,q,D={};h=w(m);q=w(e);for(e=e.firstElementChild;e;){g=e.nextElementSibling;if(e.namespaceURI===p&&"font-face"===e.localName)if(k=e.getAttributeNS(p, +"name"),h.hasOwnProperty(k)){if(!e.isEqualNode(h[k])){O=k;for(var y=h,E=q,u=0,W=void 0,W=O=O.replace(/\d+$/,"");y.hasOwnProperty(W)||E.hasOwnProperty(W);)u+=1,W=O+u;O=W;e.setAttributeNS(p,"style:name",O);m.appendChild(e);h[O]=e;delete q[k];D[k]=O}}else m.appendChild(e),h[k]=e,delete q[k];e=g}m=D}else e&&(d.fontFaceDecls=e,b(d,e));h=n.getDirectChild(c,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","automatic-styles");r(h,"document-content");m&&f.changeFontFaceNames(h,m);if(d.automaticStyles&&h)for(m= +h.firstChild;m;)d.automaticStyles.appendChild(m),m=h.firstChild;else h&&(d.automaticStyles=h,b(d,h));c=n.getDirectChild(c,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","body");if(null===c)throw" tag is mising.";d.body=c;b(d,d.body)}else A(a.INVALID)}function E(a){a=t(a);var c;a&&"document-meta"===a.localName&&"urn:oasis:names:tc:opendocument:xmlns:office:1.0"===a.namespaceURI&&(c=B.rootElement,c.meta=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","meta"), +b(c,c.meta))}function N(a){a=t(a);var c;a&&"document-settings"===a.localName&&"urn:oasis:names:tc:opendocument:xmlns:office:1.0"===a.namespaceURI&&(c=B.rootElement,c.settings=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","settings"),b(c,c.settings))}function O(a){a=t(a);var c;if(a&&"manifest"===a.localName&&"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"===a.namespaceURI)for(c=B.rootElement,c.manifest=a,a=c.manifest.firstElementChild;a;)"file-entry"===a.localName&&"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"=== +a.namespaceURI&&(M[a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0","full-path")]=a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0","media-type")),a=a.nextElementSibling}function D(a,c,b){a=n.getElementsByTagName(a,c);var d;for(d=0;d'}function P(){var a=new xmldom.LSSerializer,c=R("document-meta");a.filter=new odf.OdfNodeFilter;c+=a.writeToString(B.rootElement.meta,odf.Namespaces.namespaceMap);return c+""}function aa(a,c){var b=document.createElementNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0","manifest:file-entry");b.setAttributeNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0","manifest:full-path",a);b.setAttributeNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", +"manifest:media-type",c);return b}function S(){var a=runtime.parseXML(''),c=a.documentElement,b=new xmldom.LSSerializer,d;for(d in M)M.hasOwnProperty(d)&&c.appendChild(aa(d,M[d]));b.filter=new odf.OdfNodeFilter;return'\n'+b.writeToString(a,odf.Namespaces.namespaceMap)}function fa(){var a,c,b,d=odf.Namespaces.namespaceMap, +h=new xmldom.LSSerializer,e=R("document-styles");c=v(B.rootElement.automaticStyles,"document-styles");b=B.rootElement.masterStyles.cloneNode(!0);a=u(B.rootElement.fontFaceDecls,[b,B.rootElement.styles,c]);f.removePrefixFromStyleNames(c,q,b);h.filter=new k(b,c);e+=h.writeToString(a,d);e+=h.writeToString(B.rootElement.styles,d);e+=h.writeToString(c,d);e+=h.writeToString(b,d);return e+""}function ha(){var a,c,b=odf.Namespaces.namespaceMap,h=new xmldom.LSSerializer,e=R("document-content"); +c=v(B.rootElement.automaticStyles,"document-content");a=u(B.rootElement.fontFaceDecls,[c]);h.filter=new d(B.rootElement.body,c);e+=h.writeToString(a,b);e+=h.writeToString(c,b);e+=h.writeToString(B.rootElement.body,b);return e+""}function C(c,b){runtime.loadXML(c,function(c,d){if(c)b(c);else if(d){V(d);W(d.documentElement);var h=t(d);h&&"document"===h.localName&&"urn:oasis:names:tc:opendocument:xmlns:office:1.0"===h.namespaceURI?(I(h),A(a.DONE)):A(a.INVALID)}else b("No DOM was loaded.")})} +function Z(a,c){var d;d=B.rootElement;var h=d.meta;h||(d.meta=h=document.createElementNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0","meta"),b(d,h));d=h;a&&n.mapKeyValObjOntoNode(d,a,odf.Namespaces.lookupNamespaceURI);c&&n.removeKeyElementsFromNode(d,c,odf.Namespaces.lookupNamespaceURI)}function ba(c,b){function d(a,c){var b;c||(c=a);b=document.createElementNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0",c);f[a]=b;f.appendChild(b)}var h=new core.Zip("",null),e="application/vnd.oasis.opendocument."+ +c+(!0===b?"-template":""),m=runtime.byteArrayFromString(e,"utf8"),f=B.rootElement,g=document.createElementNS("urn:oasis:names:tc:opendocument:xmlns:office:1.0",c);h.save("mimetype",m,!1,new Date);d("meta");d("settings");d("scripts");d("fontFaceDecls","font-face-decls");d("styles");d("automaticStyles","automatic-styles");d("masterStyles","master-styles");d("body");f.body.appendChild(g);M["/"]=e;M["settings.xml"]="text/xml";M["meta.xml"]="text/xml";M["styles.xml"]="text/xml";M["content.xml"]="text/xml"; +A(a.DONE);return h}function U(){var a,c=new Date,b="";B.rootElement.settings&&B.rootElement.settings.firstElementChild&&(a=new xmldom.LSSerializer,b=R("document-settings"),a.filter=new odf.OdfNodeFilter,b+=a.writeToString(B.rootElement.settings,odf.Namespaces.namespaceMap),b+="");(a=b)?(a=runtime.byteArrayFromString(a,"utf8"),Y.save("settings.xml",a,!0,c)):Y.remove("settings.xml");b=runtime.getWindow();a="WebODF/"+webodf.Version;b&&(a=a+" "+b.navigator.userAgent);Z({"meta:generator":a}, +null);a=runtime.byteArrayFromString(P(),"utf8");Y.save("meta.xml",a,!0,c);a=runtime.byteArrayFromString(fa(),"utf8");Y.save("styles.xml",a,!0,c);a=runtime.byteArrayFromString(ha(),"utf8");Y.save("content.xml",a,!0,c);a=runtime.byteArrayFromString(S(),"utf8");Y.save("META-INF/manifest.xml",a,!0,c)}function ga(a,c){U();Y.writeAs(a,function(a){c(a)})}var B=this,Y,M={},Q,F="";this.onstatereadychange=m;this.state=this.onchange=null;this.getMetadata=z;this.setRootElement=I;this.getContentElement=function(){var a; +Q||(a=B.rootElement.body,Q=n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","text")||n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","presentation")||n.getDirectChild(a,"urn:oasis:names:tc:opendocument:xmlns:office:1.0","spreadsheet"));if(!Q)throw"Could not find content element in .";return Q};this.getDocumentType=function(){var a=B.getContentElement();return a&&a.localName};this.isTemplate=function(){return"-template"===M["/"].substr(-9)}; +this.setIsTemplate=function(a){var c=M["/"],b="-template"===c.substr(-9);a!==b&&(c=a?c+"-template":c.substr(0,c.length-9),M["/"]=c,a=runtime.byteArrayFromString(c,"utf8"),Y.save("mimetype",a,!1,new Date))};this.getPart=function(a){return new odf.OdfPart(a,M[a],B,Y)};this.getPartData=function(a,c){Y.load(a,c)};this.setMetadata=Z;this.incrementEditingCycles=function(){var a=z(odf.Namespaces.metans,"editing-cycles"),a=a?parseInt(a,10):0;isNaN(a)&&(a=0);Z({"meta:editing-cycles":a+1},null);return a+1}; +this.createByteArray=function(a,c){U();Y.createByteArray(a,c)};this.saveAs=ga;this.save=function(a){ga(F,a)};this.getUrl=function(){return F};this.setBlob=function(a,c,b){b=e.convertBase64ToByteArray(b);Y.save(a,b,!1,new Date);M.hasOwnProperty(a)&&runtime.log(a+" has been overwritten.");M[a]=c};this.removeBlob=function(a){var c=Y.remove(a);runtime.assert(c,"file is not found: "+a);delete M[a]};this.state=a.LOADING;this.rootElement=function(a){var c=document.createElementNS(a.namespaceURI,a.localName), +b;a=new a.Type;for(b in a)a.hasOwnProperty(b)&&(c[b]=a[b]);return c}({Type:odf.ODFDocumentElement,namespaceURI:odf.ODFDocumentElement.namespaceURI,localName:odf.ODFDocumentElement.localName});c===odf.OdfContainer.DocumentType.TEXT?Y=ba("text"):c===odf.OdfContainer.DocumentType.TEXT_TEMPLATE?Y=ba("text",!0):c===odf.OdfContainer.DocumentType.PRESENTATION?Y=ba("presentation"):c===odf.OdfContainer.DocumentType.PRESENTATION_TEMPLATE?Y=ba("presentation",!0):c===odf.OdfContainer.DocumentType.SPREADSHEET? +Y=ba("spreadsheet"):c===odf.OdfContainer.DocumentType.SPREADSHEET_TEMPLATE?Y=ba("spreadsheet",!0):(F=c,Y=new core.Zip(F,function(c,b){Y=b;c?C(F,function(b){c&&(Y.error=c+"\n"+b,A(a.INVALID))}):J([{path:"styles.xml",handler:K},{path:"content.xml",handler:L},{path:"meta.xml",handler:E},{path:"settings.xml",handler:N},{path:"META-INF/manifest.xml",handler:O}])}))};odf.OdfContainer.EMPTY=0;odf.OdfContainer.LOADING=1;odf.OdfContainer.DONE=2;odf.OdfContainer.INVALID=3;odf.OdfContainer.SAVING=4;odf.OdfContainer.MODIFIED= +5;odf.OdfContainer.getContainer=function(a){return new odf.OdfContainer(a,null)}})();odf.OdfContainer.DocumentType={TEXT:1,TEXT_TEMPLATE:2,PRESENTATION:3,PRESENTATION_TEMPLATE:4,SPREADSHEET:5,SPREADSHEET_TEMPLATE:6};gui.AnnotatableCanvas=function(){};gui.AnnotatableCanvas.prototype.refreshSize=function(){};gui.AnnotatableCanvas.prototype.getZoomLevel=function(){};gui.AnnotatableCanvas.prototype.getSizer=function(){}; +gui.AnnotationViewManager=function(g,k,d,b){function f(c){var b=c.annotationEndElement,d=l.createRange(),e=c.getAttributeNS(odf.Namespaces.officens,"name");b&&(d.setStart(c,c.childNodes.length),d.setEnd(b,0),c=a.getTextNodes(d,!1),c.forEach(function(a){var c;a:{for(c=a.parentNode;c.namespaceURI!==odf.Namespaces.officens||"body"!==c.localName;){if("http://www.w3.org/1999/xhtml"===c.namespaceURI&&"webodf-annotationHighlight"===c.className&&c.getAttribute("annotation")===e){c=!0;break a}c=c.parentNode}c= +!1}c||(c=l.createElement("span"),c.className="webodf-annotationHighlight",c.setAttribute("annotation",e),a.parentNode.replaceChild(c,a),c.appendChild(a))}));d.detach()}function n(a){var b=g.getSizer();a?(d.style.display="inline-block",b.style.paddingRight=c.getComputedStyle(d).width):(d.style.display="none",b.style.paddingRight=0);g.refreshSize()}function p(){e.sort(function(a,c){return 0!==(a.compareDocumentPosition(c)&Node.DOCUMENT_POSITION_FOLLOWING)?-1:1})}function r(){var a;for(a=0;a=(n.getBoundingClientRect().top-r.bottom)/c?b.style.top=Math.abs(n.getBoundingClientRect().top-r.bottom)/c+20+"px":b.style.top="0px"): +b.style.top="0px";l.style.left=f.getBoundingClientRect().width/c+"px";var f=l.style,n=l.getBoundingClientRect().left/c,k=l.getBoundingClientRect().top/c,r=b.getBoundingClientRect().left/c,p=b.getBoundingClientRect().top/c,q=0,I=0,q=r-n,q=q*q,I=p-k,I=I*I,n=Math.sqrt(q+I);f.width=n+"px";k=Math.asin((b.getBoundingClientRect().top-l.getBoundingClientRect().top)/(c*parseFloat(l.style.width)));l.style.transform="rotate("+k+"rad)";l.style.MozTransform="rotate("+k+"rad)";l.style.WebkitTransform="rotate("+ +k+"rad)";l.style.msTransform="rotate("+k+"rad)"}}function q(a){var c=e.indexOf(a),b=a.parentNode.parentNode;"div"===b.localName&&(b.parentNode.insertBefore(a,b),b.parentNode.removeChild(b));a=a.getAttributeNS(odf.Namespaces.officens,"name");a=l.querySelectorAll('span.webodf-annotationHighlight[annotation="'+a+'"]');for(var d,b=0;bp||k.bottom>p)g.scrollTop=k.bottom-k.top<=p-f?g.scrollTop+(k.bottom-p):g.scrollTop+(k.top-f);k.leftn&&(g.scrollLeft=k.right-k.left<=n-b?g.scrollLeft+(k.right-n):g.scrollLeft-(b-k.left))}}}; +(function(){function g(d,n,k,r,q){var e,l=0,a;for(a in d)if(d.hasOwnProperty(a)){if(l===k){e=a;break}l+=1}e?n.getPartData(d[e].href,function(a,m){if(a)runtime.log(a);else if(m){var h="@font-face { font-family: "+(d[e].family||e)+"; src: url(data:application/x-font-ttf;charset=binary;base64,"+b.convertUTF8ArrayToBase64(m)+') format("truetype"); }';try{r.insertRule(h,r.cssRules.length)}catch(l){runtime.log("Problem inserting rule in CSS: "+runtime.toJson(l)+"\nRule: "+h)}}else runtime.log("missing font data for "+ +d[e].href);g(d,n,k+1,r,q)}):q&&q()}var k=xmldom.XPath,d=odf.OdfUtils,b=new core.Base64;odf.FontLoader=function(){this.loadFonts=function(b,n){for(var p=b.rootElement.fontFaceDecls;n.cssRules.length;)n.deleteRule(n.cssRules.length-1);if(p){var r={},q,e,l,a;if(p)for(p=k.getODFElementsWithXPath(p,"style:font-face[svg:font-face-src]",odf.Namespaces.lookupNamespaceURI),q=0;q text|list-item:first-child > :not(text|list):first-child:before',u+="{",u+="counter-increment: "+p+" 0;",u+="}",g(b,u));for(;l.counterIdStack.length>=k;)l.counterIdStack.pop();l.counterIdStack.push(p);t=l.contentRules[k.toString()]||"";for(u=1;u<=k;u+=1)t=t.replace(u+"webodf-listLevel",l.counterIdStack[u-1]);u='text|list[webodfhelper|counter-id="'+r+'"] > text|list-item > :not(text|list):first-child:before'; +u+="{";u+=t;u+="counter-increment: "+p+";";u+="}";g(b,u)}for(h=h.firstElementChild;h;)d(c,h,f,l),h=h.nextElementSibling}else l.continuedCounterIdStack=[]}var f=0,a="",c={};this.createCounterRules=function(a,b,n){var g=b.getAttributeNS(p,"id"),r=[];n&&(n=n.getAttributeNS("urn:webodf:names:helper","counter-id"),r=c[n].slice(0));a=new k(a,r);g?g="Y"+g:(f+=1,g="X"+f);d(g,b,0,a);c[g+"-level1-1"]=a.counterIdStack};this.initialiseCreatedCounters=function(){var c;c="office|document{"+("counter-reset: "+a+ +";");c+="}";g(b,c)}}var b=odf.Namespaces.fons,f=odf.Namespaces.stylens,n=odf.Namespaces.textns,p=odf.Namespaces.xmlns,r={1:"decimal",a:"lower-latin",A:"upper-latin",i:"lower-roman",I:"upper-roman"};odf.ListStyleToCss=function(){function k(a){var b=m.parseLength(a);return b?c.convert(b.value,b.unit,"px"):(runtime.log("Could not parse value '"+a+"'."),0)}function e(a){return a.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function l(a,c){var b;a&&(b=a.getAttributeNS(n,"style-name"));return b===c}function a(a, +c,b){c=c.getElementsByTagNameNS(n,"list");a=new d(a);var m,g,k,q,t,A,I={},K;for(K=0;K text|list-item > text|list",--x;x=E&&E.getAttributeNS(b,"text-align")||"left";switch(x){case "end":x="right";break;case "start":x="left"}"label-alignment"===N?(D=O&&O.getAttributeNS(b,"margin-left")||"0px",J=O&&O.getAttributeNS(b,"text-indent")||"0px",R=O&&O.getAttributeNS(n,"label-followed-by"),O=k(D)):(D=E&&E.getAttributeNS(n,"space-before")||"0px",V=E&&E.getAttributeNS(n,"min-label-width")||"0px", +W=E&&E.getAttributeNS(n,"min-label-distance")||"0px",O=k(D)+k(V));E=p+" > text|list-item";E+="{";E+="margin-left: "+O+"px;";E+="}";g(e,E);E=p+" > text|list-item > text|list";E+="{";E+="margin-left: "+-O+"px;";E+="}";g(e,E);E=p+" > text|list-item > :not(text|list):first-child:before";E+="{";E+="text-align: "+x+";";E+="display: inline-block;";"label-alignment"===N?(E+="margin-left: "+J+";","listtab"===R&&(E+="padding-right: 0.2cm;")):(E+="min-width: "+V+";",E+="margin-left: "+(0===parseFloat(V)?"": +"-")+V+";",E+="padding-right: "+W+";");E+="}";g(e,E)}d=d.nextElementSibling}});a(c,e,m)}}})();odf.LazyStyleProperties=function(g,k){var d={};this.value=function(b){var f;d.hasOwnProperty(b)?f=d[b]:(f=k[b](),void 0===f&&g&&(f=g.value(b)),d[b]=f);return f};this.reset=function(b){g=b;d={}}}; +odf.StyleParseUtils=function(){function g(d){var b,f;d=(d=/(-?[0-9]*[0-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))/.exec(d))?{value:parseFloat(d[1]),unit:d[3]}:null;f=d&&d.unit;"px"===f?b=d.value:"cm"===f?b=d.value/2.54*96:"mm"===f?b=d.value/25.4*96:"in"===f?b=96*d.value:"pt"===f?b=d.value/.75:"pc"===f&&(b=16*d.value);return b}var k=odf.Namespaces.stylens;this.parseLength=g;this.parsePositiveLengthOrPercent=function(d,b,f){var n;d&&(n=parseFloat(d.substr(0, +d.indexOf("%"))),isNaN(n)&&(n=void 0));var k;void 0!==n?(f&&(k=f.value(b)),n=void 0===k?void 0:k/100*n):n=g(d);return n};this.getPropertiesElement=function(d,b,f){for(b=f?f.nextElementSibling:b.firstElementChild;null!==b&&(b.localName!==d||b.namespaceURI!==k);)b=b.nextElementSibling;return b};this.parseAttributeList=function(d){d&&(d=d.replace(/^\s*(.*?)\s*$/g,"$1"));return d&&0n.value&&(m="0.75pt"+h);h=m}else if(V.hasOwnProperty(e[1])){var m= +a,f=e[0],n=e[1],g=J.parseLength(h),r=void 0,p=void 0,q=void 0,O=void 0,q=void 0;if(g&&"%"===g.unit){r=g.value/100;p=k(m.parentNode);for(O="0";p;){if(q=y.getDirectChild(p,l,"paragraph-properties"))if(q=J.parseLength(q.getAttributeNS(f,n))){if("%"!==q.unit){O=q.value*r+q.unit;break}r*=q.value/100}p=k(p)}h=O}}e[2]&&(b+=e[2]+":"+h+";")}return b}function b(a,c,b,d){return c+c+b+b+d+d}function f(a,c){var b=[a],d=c.derivedStyles;Object.keys(d).forEach(function(a){a=f(a,d[a]);b=b.concat(a)});return b}function n(a, +c,b,d){function e(c,b){var d=[],h;c.forEach(function(a){m.forEach(function(c){d.push('draw|page[webodfhelper|page-style-name="'+c+'"] draw|frame[presentation|class="'+a+'"]')})});0 +z&&(a=z);for(c=Math.floor(a/d)*d;!b&&0<=c;)b=m[c],c-=d;for(b=b||x;b.nextBookmark&&b.nextBookmark.steps<=a;)e.check(),b=b.nextBookmark;runtime.assert(-1===a||b.steps<=a,"Bookmark @"+p(b)+" at step "+b.steps+" exceeds requested step of "+a);return b}function a(a){a.previousBookmark&&(a.previousBookmark.nextBookmark=a.nextBookmark);a.nextBookmark&&(a.nextBookmark.previousBookmark=a.previousBookmark)}function c(a){for(var c,b=null;!b&&a&&a!==k;)(c=q(a))&&(b=h[c])&&b.node!==a&&(runtime.log("Cloned node detected. Creating new bookmark"), +b=null,a.removeAttributeNS("urn:webodf:names:steps","nodeId")),a=a.parentNode;return b}var m={},h={},y=core.DomUtils,x,z,w=Node.DOCUMENT_POSITION_FOLLOWING,v=Node.DOCUMENT_POSITION_PRECEDING;this.updateBookmark=function(c,b){var g,n=Math.ceil(c/d)*d,p,v,E;if(void 0!==z&&zp.steps)m[n]=v;r()};this.setToClosestStep=function(a,c){var b;r();b=l(a);b.setIteratorPosition(c); +return b.steps};this.setToClosestDomPoint=function(a,b,d){var e,h;r();if(a===k&&0===b)e=x;else if(a===k&&b===k.childNodes.length)for(h in e=x,m)m.hasOwnProperty(h)&&(a=m[h],a.steps>e.steps&&(e=a));else if(e=c(a.childNodes.item(b)||a),!e)for(d.setUnfilteredPosition(a,b);!e&&d.previousNode();)e=c(d.getCurrentNode());e=e||x;void 0!==z&&e.steps>z&&(e=l(z));e.setIteratorPosition(d);return e.steps};this.damageCacheAfterStep=function(a){0>a&&(a=-1);void 0===z?z=a:aa)throw new RangeError("Requested steps is negative ("+a+")");for(b=p.setToClosestStep(a,k);bq.comparePoints(g,0,a,b),a=g,b=b?0:g.childNodes.length);k.setUnfilteredPosition(a,b);n(k,h)||k.setUnfilteredPosition(a,b);h=k.container();b=k.unfilteredDomOffset();a=p.setToClosestDomPoint(h,b,k);if(0>q.comparePoints(k.container(),k.unfilteredDomOffset(),h,b))return 0=e.textNode.length?null:e.textNode.splitText(e.offset));for(c=e.textNode;c!==a;){c=c.parentNode;m=c.cloneNode(!1);h&&m.appendChild(h);if(y)for(;y&&y.nextSibling;)m.appendChild(y.nextSibling);else for(;c.firstChild;)m.appendChild(c.firstChild);c.parentNode.insertBefore(m,c.nextSibling);y=c;h=m}p.isListItem(h)&&(h=h.childNodes.item(0));n?h.setAttributeNS(r,"text:style-name",n):h.removeAttributeNS(r,"style-name");0===e.textNode.length&& +e.textNode.parentNode.removeChild(e.textNode);d.emit(ops.OdtDocument.signalStepsInserted,{position:b});x&&f&&(d.moveCursor(g,b+1,0),d.emit(ops.Document.signalCursorMoved,x));d.fixCursorPositions();d.getOdfCanvas().refreshSize();d.emit(ops.OdtDocument.signalParagraphChanged,{paragraphElement:l,memberId:g,timeStamp:k});d.emit(ops.OdtDocument.signalParagraphChanged,{paragraphElement:h,memberId:g,timeStamp:k});d.getOdfCanvas().rerenderAnnotations();return!0};this.spec=function(){return{optype:"SplitParagraph", +memberid:g,timestamp:k,position:b,sourceParagraphPosition:d,paragraphStyleName:n,moveCursor:f}}}; +ops.OpUpdateMember=function(){function g(d){var f="//dc:creator[@editinfo:memberid='"+k+"']";d=xmldom.XPath.getODFElementsWithXPath(d.getRootNode(),f,function(b){return"editinfo"===b?"urn:webodf:names:editinfo":odf.Namespaces.lookupNamespaceURI(b)});for(f=0;f=e.width&&(e=null),g.detach();else if(k.isCharacterElement(f.container)||k.isCharacterFrame(f.container))e=b.getBoundingClientRect(f.container); +return e}var k=odf.OdfUtils,d=new odf.StepUtils,b=core.DomUtils,f=core.StepDirection.NEXT,n=gui.StepInfo.VisualDirection.LEFT_TO_RIGHT,p=gui.StepInfo.VisualDirection.RIGHT_TO_LEFT;this.getContentRect=g;this.moveToFilteredStep=function(b,d,e){function l(a,b){b.process(w,h,k)&&(a=!0,!x&&b.token&&(x=b.token));return a}var a=d===f,c,m,h,k,x,z=b.snapshot();c=!1;var w;do c=g(b),w={token:b.snapshot(),container:b.container,offset:b.offset,direction:d,visualDirection:d===f?n:p},m=b.nextStep()?g(b):null,b.restore(w.token), +a?(h=c,k=m):(h=m,k=c),c=e.reduce(l,!1);while(!c&&b.advanceStep(d));c||e.forEach(function(a){!x&&a.token&&(x=a.token)});b.restore(x||z);return Boolean(x)}}; +gui.Caret=function(g,k,d,b){function f(){a.style.opacity="0"===a.style.opacity?"1":"0";t.trigger()}function n(){y.selectNodeContents(h);return y.getBoundingClientRect()}function p(a){return E[a]!==L[a]}function r(){Object.keys(L).forEach(function(a){E[a]=L[a]})}function q(){if(!1===L.isShown||g.getSelectionType()!==ops.OdtCursor.RangeSelection||!b&&!g.getSelectedRange().collapsed)L.visibility="hidden",a.style.visibility="hidden",t.cancel();else if(L.visibility="visible",a.style.visibility="visible", +!1===L.isFocused)a.style.opacity="1",t.cancel();else{if(A||p("visibility"))a.style.opacity="1",t.cancel();t.trigger()}if(K||I){var d;d=g.getNode();var e,h,f=z.getBoundingClientRect(x.getSizer()),q=!1,y=0;d.removeAttributeNS("urn:webodf:names:cursor","caret-sizer-active");if(0d.height&&(d={top:d.top-(8-d.height)/2,height:8,right:d.right});l.style.height=d.height+"px";l.style.top=d.top+"px"; +l.style.left=d.right-d.width+"px";l.style.width=d.width?d.width+"px":"";m&&(d=runtime.getWindow().getComputedStyle(g.getNode(),null),d.font?m.style.font=d.font:(m.style.fontStyle=d.fontStyle,m.style.fontVariant=d.fontVariant,m.style.fontWeight=d.fontWeight,m.style.fontSize=d.fontSize,m.style.lineHeight=d.lineHeight,m.style.fontFamily=d.fontFamily))}L.isShown&&I&&k.scrollIntoView(a.getBoundingClientRect());p("isFocused")&&c.markAsFocussed(L.isFocused);r();K=I=A=!1}function e(a){l.parentNode.removeChild(l); +h.parentNode.removeChild(h);a()}var l,a,c,m,h,y,x=g.getDocument().getCanvas(),z=core.DomUtils,w=new gui.GuiStepUtils,v,u,t,A=!1,I=!1,K=!1,L={isFocused:!1,isShown:!0,visibility:"hidden"},E={isFocused:!L.isFocused,isShown:!L.isShown,visibility:"hidden"};this.handleUpdate=function(){K=!0;u.trigger()};this.refreshCursorBlinking=function(){A=!0;u.trigger()};this.setFocus=function(){L.isFocused=!0;u.trigger()};this.removeFocus=function(){L.isFocused=!1;u.trigger()};this.show=function(){L.isShown=!0;u.trigger()}; +this.hide=function(){L.isShown=!1;u.trigger()};this.setAvatarImageUrl=function(a){c.setImageUrl(a)};this.setColor=function(b){a.style.borderColor=b;c.setColor(b)};this.getCursor=function(){return g};this.getFocusElement=function(){return a};this.toggleHandleVisibility=function(){c.isVisible()?c.hide():c.show()};this.showHandle=function(){c.show()};this.hideHandle=function(){c.hide()};this.setOverlayElement=function(a){m=a;l.appendChild(a);K=!0;u.trigger()};this.ensureVisible=function(){I=!0;u.trigger()}; +this.getBoundingClientRect=function(){return z.getBoundingClientRect(l)};this.destroy=function(a){core.Async.destroyAll([u.destroy,t.destroy,c.destroy,e],a)};(function(){var b=g.getDocument(),e=[b.createRootFilter(g.getMemberId()),b.getPositionFilter()],m=b.getDOMDocument();y=m.createRange();h=m.createElement("span");h.className="webodf-caretSizer";h.textContent="|";g.getNode().appendChild(h);l=m.createElement("div");l.setAttributeNS("urn:webodf:names:editinfo","editinfo:memberid",g.getMemberId()); +l.className="webodf-caretOverlay";a=m.createElement("div");a.className="caret";l.appendChild(a);c=new gui.Avatar(l,d);x.getSizer().appendChild(l);v=b.createStepIterator(g.getNode(),0,e,b.getRootNode());u=core.Task.createRedrawTask(q);t=core.Task.createTimeoutTask(f,500);u.triggerImmediate()})()}; +odf.TextSerializer=function(){function g(b){var f="",n=k.filter?k.filter.acceptNode(b):NodeFilter.FILTER_ACCEPT,p=b.nodeType,r;if((n===NodeFilter.FILTER_ACCEPT||n===NodeFilter.FILTER_SKIP)&&d.isTextContentContainingNode(b))for(r=b.firstChild;r;)f+=g(r),r=r.nextSibling;n===NodeFilter.FILTER_ACCEPT&&(p===Node.ELEMENT_NODE&&d.isParagraph(b)?f+="\n":p===Node.TEXT_NODE&&b.textContent&&(f+=b.textContent));return f}var k=this,d=odf.OdfUtils;this.filter=null;this.writeToString=function(b){if(!b)return""; +b=g(b);"\n"===b[b.length-1]&&(b=b.substr(0,b.length-1));return b}};gui.MimeDataExporter=function(){var g;this.exportRangeToDataTransfer=function(k,d){var b;b=d.startContainer.ownerDocument.createElement("span");b.appendChild(d.cloneContents());b=g.writeToString(b);try{k.setData("text/plain",b)}catch(f){k.setData("Text",b)}};g=new odf.TextSerializer;g.filter=new odf.OdfNodeFilter}; +gui.Clipboard=function(g){this.setDataFromRange=function(k,d){var b,f=k.clipboardData;b=runtime.getWindow();!f&&b&&(f=b.clipboardData);f?(b=!0,g.exportRangeToDataTransfer(f,d),k.preventDefault()):b=!1;return b}}; +gui.SessionContext=function(g,k){var d=g.getOdtDocument(),b=odf.OdfUtils;this.isLocalCursorWithinOwnAnnotation=function(){var f=d.getCursor(k),g;if(!f)return!1;g=f&&f.getNode();f=d.getMember(k).getProperties().fullName;return(g=b.getParentAnnotation(g,d.getRootNode()))&&b.getAnnotationCreator(g)===f?!0:!1}}; +gui.StyleSummary=function(g){function k(b,d){var k=b+"|"+d,q;f.hasOwnProperty(k)||(q=[],g.forEach(function(e){e=(e=e.styleProperties[b])&&e[d];-1===q.indexOf(e)&&q.push(e)}),f[k]=q);return f[k]}function d(b,d,f){return function(){var g=k(b,d);return f.length>=g.length&&g.every(function(b){return-1!==f.indexOf(b)})}}function b(b,d){var f=k(b,d);return 1===f.length?f[0]:void 0}var f={};this.getPropertyValues=k;this.getCommonValue=b;this.isBold=d("style:text-properties","fo:font-weight",["bold"]);this.isItalic= +d("style:text-properties","fo:font-style",["italic"]);this.hasUnderline=d("style:text-properties","style:text-underline-style",["solid"]);this.hasStrikeThrough=d("style:text-properties","style:text-line-through-style",["solid"]);this.fontSize=function(){var d=b("style:text-properties","fo:font-size");return d&&parseFloat(d)};this.fontName=function(){return b("style:text-properties","style:font-name")};this.isAlignedLeft=d("style:paragraph-properties","fo:text-align",["left","start"]);this.isAlignedCenter= +d("style:paragraph-properties","fo:text-align",["center"]);this.isAlignedRight=d("style:paragraph-properties","fo:text-align",["right","end"]);this.isAlignedJustified=d("style:paragraph-properties","fo:text-align",["justify"]);this.text={isBold:this.isBold,isItalic:this.isItalic,hasUnderline:this.hasUnderline,hasStrikeThrough:this.hasStrikeThrough,fontSize:this.fontSize,fontName:this.fontName};this.paragraph={isAlignedLeft:this.isAlignedLeft,isAlignedCenter:this.isAlignedCenter,isAlignedRight:this.isAlignedRight, +isAlignedJustified:this.isAlignedJustified}}; +gui.DirectFormattingController=function(g,k,d,b,f,n,p){function r(){return U.value().styleSummary}function q(){return U.value().enabledFeatures}function e(a){var b;a.collapsed?(b=a.startContainer,b.hasChildNodes()&&a.startOffseta.clientWidth||a.scrollHeight>a.clientHeight)&&c.push(new l(a)),a=a.parentNode;c.push(new e(v));return c}function w(){var a; +h()||(a=z(K),x(),K.focus(),a.forEach(function(a){a.restore()}))}var v=runtime.getWindow(),u={beforecut:!0,beforepaste:!0,longpress:!0,drag:!0,dragstop:!0},t={mousedown:!0,mouseup:!0,focus:!0},A={},I={},K,L=g.getCanvas().getElement(),E=this,N={};this.addFilter=function(c,b){a(c,!0).filters.push(b)};this.removeFilter=function(c,b){var d=a(c,!0),e=d.filters.indexOf(b);-1!==e&&d.filters.splice(e,1)};this.subscribe=c;this.unsubscribe=m;this.hasFocus=h;this.focus=w;this.getEventTrap=function(){return K}; +this.setEditing=function(a){var c=h();c&&K.blur();a?K.removeAttribute("readOnly"):K.setAttribute("readOnly","true");c&&w()};this.destroy=function(a){m("touchstart",q);Object.keys(N).forEach(function(a){b(parseInt(a,10))});N.length=0;Object.keys(A).forEach(function(a){A[a].destroy()});A={};m("mousedown",y);m("mouseup",x);m("contextmenu",x);Object.keys(I).forEach(function(a){I[a].destroy()});I={};K.parentNode.removeChild(K);a()};(function(){var a=g.getOdfCanvas().getSizer(),b=a.ownerDocument;runtime.assert(Boolean(v), +"EventManager requires a window object to operate correctly");K=b.createElement("textarea");K.id="eventTrap";K.setAttribute("tabindex","-1");K.setAttribute("readOnly","true");K.setAttribute("rows","1");a.appendChild(K);c("mousedown",y);c("mouseup",x);c("contextmenu",x);A.longpress=new d("longpress",["touchstart","touchmove","touchend"],n);A.drag=new d("drag",["touchstart","touchmove","touchend"],p);A.dragstop=new d("dragstop",["drag","touchend"],r);c("touchstart",q)})()}; +gui.IOSSafariSupport=function(g){function k(){d.innerHeight!==d.outerHeight&&(b.style.display="none",runtime.requestAnimationFrame(function(){b.style.display="block"}))}var d=runtime.getWindow(),b=g.getEventTrap();this.destroy=function(d){g.unsubscribe("focus",k);b.removeAttribute("autocapitalize");b.style.WebkitTransform="";d()};g.subscribe("focus",k);b.setAttribute("autocapitalize","off");b.style.WebkitTransform="translateX(-10000px)"}; +gui.HyperlinkController=function(g,k,d,b){function f(){var b=!0;!0===k.getState(gui.CommonConstraints.EDIT.REVIEW_MODE)&&(b=d.isLocalCursorWithinOwnAnnotation());b!==e&&(e=b,q.emit(gui.HyperlinkController.enabledChanged,e))}function n(d){d.getMemberId()===b&&f()}var p=odf.OdfUtils,r=g.getOdtDocument(),q=new core.EventNotifier([gui.HyperlinkController.enabledChanged]),e=!1;this.isEnabled=function(){return e};this.subscribe=function(b,a){q.subscribe(b,a)};this.unsubscribe=function(b,a){q.unsubscribe(b, +a)};this.addHyperlink=function(d,a){if(e){var c=r.getCursorSelection(b),f=new ops.OpApplyHyperlink,h=[];if(0===c.length||a)a=a||d,f=new ops.OpInsertText,f.init({memberid:b,position:c.position,text:a}),c.length=a.length,h.push(f);f=new ops.OpApplyHyperlink;f.init({memberid:b,position:c.position,length:c.length,hyperlink:d});h.push(f);g.enqueue(h)}};this.removeHyperlinks=function(){if(e){var d=r.createPositionIterator(r.getRootNode()),a=r.getCursor(b).getSelectedRange(),c=p.getHyperlinkElements(a), +f=a.collapsed&&1===c.length,h=r.getDOMDocument().createRange(),k=[],n,q;0!==c.length&&(c.forEach(function(a){h.selectNodeContents(a);n=r.convertDomToCursorRange({anchorNode:h.startContainer,anchorOffset:h.startOffset,focusNode:h.endContainer,focusOffset:h.endOffset});q=new ops.OpRemoveHyperlink;q.init({memberid:b,position:n.position,length:n.length});k.push(q)}),f||(f=c[0],-1===a.comparePoint(f,0)&&(h.setStart(f,0),h.setEnd(a.startContainer,a.startOffset),n=r.convertDomToCursorRange({anchorNode:h.startContainer, +anchorOffset:h.startOffset,focusNode:h.endContainer,focusOffset:h.endOffset}),0k.width&&(v=k.width/n.width);n.height>k.height&&(u=k.height/n.height);k=Math.min(v,u);n= +{width:n.width*k,height:n.height*k}}k=p.convert(n.width,"px","cm")+"cm";p=p.convert(n.height,"px","cm")+"cm";u=e.getOdfCanvas().odfContainer().rootElement.styles;n=c.toLowerCase();var v=r.hasOwnProperty(n)?r[n]:null,t;n=[];runtime.assert(null!==v,"Image type is not supported: "+c);v="Pictures/"+f.generateImageName()+v;t=new ops.OpSetBlob;t.init({memberid:b,filename:v,mimetype:c,content:d});n.push(t);a.getStyleElement("Graphics","graphic",[u])||(c=new ops.OpAddStyle,c.init({memberid:b,styleName:"Graphics", +styleFamily:"graphic",isAutomaticStyle:!1,setProperties:{"style:graphic-properties":{"text:anchor-type":"paragraph","svg:x":"0cm","svg:y":"0cm","style:wrap":"dynamic","style:number-wrapped-paragraphs":"no-limit","style:wrap-contour":"false","style:vertical-pos":"top","style:vertical-rel":"paragraph","style:horizontal-pos":"center","style:horizontal-rel":"paragraph"}}}),n.push(c));c=f.generateStyleName();d=new ops.OpAddStyle;d.init({memberid:b,styleName:c,styleFamily:"graphic",isAutomaticStyle:!0, +setProperties:{"style:parent-style-name":"Graphics","style:graphic-properties":{"style:vertical-pos":"top","style:vertical-rel":"baseline","style:horizontal-pos":"center","style:horizontal-rel":"paragraph","fo:background-color":"transparent","style:background-transparency":"100%","style:shadow":"none","style:mirror":"none","fo:clip":"rect(0cm, 0cm, 0cm, 0cm)","draw:luminance":"0%","draw:contrast":"0%","draw:red":"0%","draw:green":"0%","draw:blue":"0%","draw:gamma":"100%","draw:color-inversion":"false", +"draw:image-opacity":"100%","draw:color-mode":"standard"}}});n.push(d);t=new ops.OpInsertImage;t.init({memberid:b,position:e.getCursorPosition(b),filename:v,frameWidth:k,frameHeight:p,frameStyleName:c,frameName:f.generateFrameName()});n.push(t);g.enqueue(n)}};this.destroy=function(a){e.unsubscribe(ops.Document.signalCursorMoved,p);k.unsubscribe(gui.CommonConstraints.EDIT.REVIEW_MODE,n);a()};e.subscribe(ops.Document.signalCursorMoved,p);k.subscribe(gui.CommonConstraints.EDIT.REVIEW_MODE,n);n()}; +gui.ImageController.enabledChanged="enabled/changed"; +gui.ImageSelector=function(g){function k(){var d=g.getSizer(),k=f.createElement("div");k.id="imageSelector";k.style.borderWidth="1px";d.appendChild(k);b.forEach(function(b){var d=f.createElement("div");d.className=b;k.appendChild(d)});return k}var d=odf.Namespaces.svgns,b="topLeft topRight bottomRight bottomLeft topMiddle rightMiddle bottomMiddle leftMiddle".split(" "),f=g.getElement().ownerDocument,n=!1;this.select=function(b){var r,q,e=f.getElementById("imageSelector");e||(e=k());n=!0;r=e.parentNode; +q=b.getBoundingClientRect();var l=r.getBoundingClientRect(),a=g.getZoomLevel();r=(q.left-l.left)/a-1;q=(q.top-l.top)/a-1;e.style.display="block";e.style.left=r+"px";e.style.top=q+"px";e.style.width=b.getAttributeNS(d,"width");e.style.height=b.getAttributeNS(d,"height")};this.clearSelection=function(){var b;n&&(b=f.getElementById("imageSelector"))&&(b.style.display="none");n=!1};this.isSelectorElement=function(b){var d=f.getElementById("imageSelector");return d?b===d||b.parentNode===d:!1}}; +(function(){function g(g){function d(b){p=b.which&&String.fromCharCode(b.which)===n;n=void 0;return!1===p}function b(){p=!1}function f(b){n=b.data;p=!1}var n,p=!1;this.destroy=function(n){g.unsubscribe("textInput",b);g.unsubscribe("compositionend",f);g.removeFilter("keypress",d);n()};g.subscribe("textInput",b);g.subscribe("compositionend",f);g.addFilter("keypress",d)}gui.InputMethodEditor=function(k,d){function b(c){a&&(c?a.getNode().setAttributeNS("urn:webodf:names:cursor","composing","true"):(a.getNode().removeAttributeNS("urn:webodf:names:cursor", +"composing"),h.textContent=""))}function f(){x&&(x=!1,b(!1),w.emit(gui.InputMethodEditor.signalCompositionEnd,{data:z}),z="")}function n(){I||(I=!0,f(),a&&a.getSelectedRange().collapsed?c.value="":c.value=u.writeToString(a.getSelectedRange().cloneContents()),c.setSelectionRange(0,c.value.length),I=!1)}function p(){d.hasFocus()&&y.trigger()}function r(){v=void 0;y.cancel();b(!0);x||w.emit(gui.InputMethodEditor.signalCompositionStart,{data:""})}function q(a){a=v=a.data;x=!0;z+=a;y.trigger()}function e(a){a.data!== +v&&(a=a.data,x=!0,z+=a,y.trigger());v=void 0}function l(){h.textContent=c.value}var a=null,c=d.getEventTrap(),m=c.ownerDocument,h,y,x=!1,z="",w=new core.EventNotifier([gui.InputMethodEditor.signalCompositionStart,gui.InputMethodEditor.signalCompositionEnd]),v,u,t=[],A,I=!1;this.subscribe=w.subscribe;this.unsubscribe=w.unsubscribe;this.registerCursor=function(c){c.getMemberId()===k&&(a=c,a.getNode().appendChild(h),c.subscribe(ops.OdtCursor.signalCursorUpdated,p),d.subscribe("input",l),d.subscribe("compositionupdate", +l))};this.removeCursor=function(c){a&&c===k&&(a.getNode().removeChild(h),a.unsubscribe(ops.OdtCursor.signalCursorUpdated,p),d.unsubscribe("input",l),d.unsubscribe("compositionupdate",l),a=null)};this.destroy=function(a){d.unsubscribe("compositionstart",r);d.unsubscribe("compositionend",q);d.unsubscribe("textInput",e);d.unsubscribe("keypress",f);d.unsubscribe("focus",n);core.Async.destroyAll(A,a)};(function(){u=new odf.TextSerializer;u.filter=new odf.OdfNodeFilter;d.subscribe("compositionstart",r); +d.subscribe("compositionend",q);d.subscribe("textInput",e);d.subscribe("keypress",f);d.subscribe("focus",n);t.push(new g(d));A=t.map(function(a){return a.destroy});h=m.createElement("span");h.setAttribute("id","composer");y=core.Task.createTimeoutTask(n,1);A.push(y.destroy)})()};gui.InputMethodEditor.signalCompositionStart="input/compositionstart";gui.InputMethodEditor.signalCompositionEnd="input/compositionend"})(); +gui.MetadataController=function(g,k){function d(b){n.emit(gui.MetadataController.signalMetadataChanged,b)}function b(b){var d=-1===p.indexOf(b);d||runtime.log("Setting "+b+" is restricted.");return d}var f=g.getOdtDocument(),n=new core.EventNotifier([gui.MetadataController.signalMetadataChanged]),p=["dc:creator","dc:date","meta:editing-cycles","meta:editing-duration","meta:document-statistic"];this.setMetadata=function(d,f){var e={},l="",a;d&&Object.keys(d).filter(b).forEach(function(a){e[a]=d[a]}); +f&&(l=f.filter(b).join(","));if(0f:!1}function d(b){null!==b&&!1===k(b)&&(f=Math.abs(b-g))}var b=this,f,n=gui.StepInfo.VisualDirection.LEFT_TO_RIGHT;this.token=void 0;this.process=function(f,g,q){var e,l;f.visualDirection===n?(e=g&&g.right,l=q&&q.left):(e=g&&g.left,l=q&&q.right);if(k(e)||k(l))return!0;if(g||q)d(e),d(l),b.token=f.token;return!1}}; +gui.LineBoundaryScanner=function(){var g=this,k=null;this.token=void 0;this.process=function(d,b,f){var n;if(n=f)if(k){var p=k;n=Math.min(p.bottom-p.top,f.bottom-f.top);var r=Math.max(p.top,f.top),p=Math.min(p.bottom,f.bottom)-r;n=.4>=(0b?a.previousSibling:a.nextSibling,c(f)===NodeFilter.FILTER_ACCEPT&&(d=f),a=a.parentNode;return d}function b(a,b){var c;return null===a?m.NO_NEIGHBOUR:p.isCharacterElement(a)?m.SPACE_CHAR:a.nodeType===f||p.isTextSpan(a)||p.isHyperlink(a)?(c=a.textContent.charAt(b()),q.test(c)?m.SPACE_CHAR:r.test(c)?m.PUNCTUATION_CHAR:m.WORD_CHAR):m.OTHER}var f=Node.TEXT_NODE,n=Node.ELEMENT_NODE, +p=odf.OdfUtils,r=/[!-#%-*,-\/:-;?-@\[-\]_{}\u00a1\u00ab\u00b7\u00bb\u00bf;\u00b7\u055a-\u055f\u0589-\u058a\u05be\u05c0\u05c3\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b\u061e-\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0964-\u0965\u0970\u0df4\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u104a-\u104f\u10fb\u1361-\u1368\u166d-\u166e\u169b-\u169c\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944-\u1945\u19de-\u19df\u1a1e-\u1a1f\u1b5a-\u1b60\u1c3b-\u1c3f\u1c7e-\u1c7f\u2000-\u206e\u207d-\u207e\u208d-\u208e\u3008-\u3009\u2768-\u2775\u27c5-\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc-\u29fd\u2cf9-\u2cfc\u2cfe-\u2cff\u2e00-\u2e7e\u3000-\u303f\u30a0\u30fb\ua60d-\ua60f\ua673\ua67e\ua874-\ua877\ua8ce-\ua8cf\ua92e-\ua92f\ua95f\uaa5c-\uaa5f\ufd3e-\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]|\ud800[\udd00-\udd01\udf9f\udfd0]|\ud802[\udd1f\udd3f\ude50-\ude58]|\ud809[\udc00-\udc7e]/, +q=/\s/,e=core.PositionFilter.FilterResult.FILTER_ACCEPT,l=core.PositionFilter.FilterResult.FILTER_REJECT,a=odf.WordBoundaryFilter.IncludeWhitespace.TRAILING,c=odf.WordBoundaryFilter.IncludeWhitespace.LEADING,m={NO_NEIGHBOUR:0,SPACE_CHAR:1,PUNCTUATION_CHAR:2,WORD_CHAR:3,OTHER:4};this.acceptPosition=function(f){var g=f.container(),p=f.leftNode(),r=f.rightNode(),q=f.unfilteredDomOffset,v=function(){return f.unfilteredDomOffset()-1};g.nodeType===n&&(null===r&&(r=d(g,1,f.getNodeFilter())),null===p&&(p= +d(g,-1,f.getNodeFilter())));g!==r&&(q=function(){return 0});g!==p&&null!==p&&(v=function(){return p.textContent.length-1});g=b(p,v);r=b(r,q);return g===m.WORD_CHAR&&r===m.WORD_CHAR||g===m.PUNCTUATION_CHAR&&r===m.PUNCTUATION_CHAR||k===a&&g!==m.NO_NEIGHBOUR&&r===m.SPACE_CHAR||k===c&&g===m.SPACE_CHAR&&r!==m.NO_NEIGHBOUR?l:e}};odf.WordBoundaryFilter.IncludeWhitespace={None:0,TRAILING:1,LEADING:2}; +gui.SelectionController=function(g,k){function d(a){var b=a.spec();if(a.isEdit||b.memberid===k)I=void 0,K.cancel()}function b(){var a=x.getCursor(k).getNode();return x.createStepIterator(a,0,[v,t],x.getRootElement(a))}function f(a,b,c){c=new odf.WordBoundaryFilter(x,c);var d=x.getRootElement(a)||x.getRootNode(),e=x.createRootFilter(d);return x.createStepIterator(a,b,[v,e,c],d)}function n(a,b){return b?{anchorNode:a.startContainer,anchorOffset:a.startOffset,focusNode:a.endContainer,focusOffset:a.endOffset}: +{anchorNode:a.endContainer,anchorOffset:a.endOffset,focusNode:a.startContainer,focusOffset:a.startOffset}}function p(a,b,c){var d=new ops.OpMoveCursor;d.init({memberid:k,position:a,length:b||0,selectionType:c});return d}function r(a,b,c){var d;d=x.getCursor(k);d=n(d.getSelectedRange(),d.hasForwardSelection());d.focusNode=a;d.focusOffset=b;c||(d.anchorNode=d.focusNode,d.anchorOffset=d.focusOffset);a=x.convertDomToCursorRange(d);g.enqueue([p(a.position,a.length)])}function q(a){var b;b=f(a.startContainer, +a.startOffset,L);b.roundToPreviousStep()&&a.setStart(b.container(),b.offset());b=f(a.endContainer,a.endOffset,E);b.roundToNextStep()&&a.setEnd(b.container(),b.offset())}function e(a){var b=w.getParagraphElements(a),c=b[0],b=b[b.length-1];c&&a.setStart(c,0);b&&(w.isParagraph(a.endContainer)&&0===a.endOffset?a.setEndBefore(b):a.setEnd(b,b.childNodes.length))}function l(a,b,c,d){var e,f;d?(e=c.startContainer,f=c.startOffset):(e=c.endContainer,f=c.endOffset);z.containsNode(a,e)||(f=0>z.comparePoints(a, +0,e,f)?0:a.childNodes.length,e=a);a=x.createStepIterator(e,f,b,w.getParagraphElement(e)||a);a.roundToClosestStep()||runtime.assert(!1,"No step found in requested range");d?c.setStart(a.container(),a.offset()):c.setEnd(a.container(),a.offset())}function a(a,c){var d=b();d.advanceStep(a)&&r(d.container(),d.offset(),c)}function c(a,c){var d,e=I,f=[new gui.LineBoundaryScanner,new gui.ParagraphBoundaryScanner];void 0===e&&A&&(e=A());isNaN(e)||(d=b(),u.moveToFilteredStep(d,a,f)&&d.advanceStep(a)&&(f=[new gui.ClosestXOffsetScanner(e), +new gui.LineBoundaryScanner,new gui.ParagraphBoundaryScanner],u.moveToFilteredStep(d,a,f)&&(r(d.container(),d.offset(),c),I=e,K.restart())))}function m(a,c){var d=b(),e=[new gui.LineBoundaryScanner,new gui.ParagraphBoundaryScanner];u.moveToFilteredStep(d,a,e)&&r(d.container(),d.offset(),c)}function h(a,b){var c=x.getCursor(k),c=n(c.getSelectedRange(),c.hasForwardSelection()),c=f(c.focusNode,c.focusOffset,L);c.advanceStep(a)&&r(c.container(),c.offset(),b)}function y(a,b,c){var d=!1,e=x.getCursor(k), +e=n(e.getSelectedRange(),e.hasForwardSelection()),d=x.getRootElement(e.focusNode);runtime.assert(Boolean(d),"SelectionController: Cursor outside root");e=x.createStepIterator(e.focusNode,e.focusOffset,[v,t],d);e.roundToClosestStep();e.advanceStep(a)&&(c=c(e.container()))&&(a===N?(e.setPosition(c,0),d=e.roundToNextStep()):(e.setPosition(c,c.childNodes.length),d=e.roundToPreviousStep()),d&&r(e.container(),e.offset(),b))}var x=g.getOdtDocument(),z=core.DomUtils,w=odf.OdfUtils,v=x.getPositionFilter(), +u=new gui.GuiStepUtils,t=x.createRootFilter(k),A=null,I,K,L=odf.WordBoundaryFilter.IncludeWhitespace.TRAILING,E=odf.WordBoundaryFilter.IncludeWhitespace.LEADING,N=core.StepDirection.PREVIOUS,O=core.StepDirection.NEXT;this.selectionToRange=function(a){var b=0<=z.comparePoints(a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset),c=a.focusNode.ownerDocument.createRange();b?(c.setStart(a.anchorNode,a.anchorOffset),c.setEnd(a.focusNode,a.focusOffset)):(c.setStart(a.focusNode,a.focusOffset),c.setEnd(a.anchorNode, +a.anchorOffset));return{range:c,hasForwardSelection:b}};this.rangeToSelection=n;this.selectImage=function(a){var c=x.getRootElement(a),b=x.createRootFilter(c),c=x.createStepIterator(a,0,[b,x.getPositionFilter()],c),d;c.roundToPreviousStep()||runtime.assert(!1,"No walkable position before frame");b=c.container();d=c.offset();c.setPosition(a,a.childNodes.length);c.roundToNextStep()||runtime.assert(!1,"No walkable position after frame");a=x.convertDomToCursorRange({anchorNode:b,anchorOffset:d,focusNode:c.container(), +focusOffset:c.offset()});a=p(a.position,a.length,ops.OdtCursor.RegionSelection);g.enqueue([a])};this.expandToWordBoundaries=q;this.expandToParagraphBoundaries=e;this.selectRange=function(a,c,b){var d=x.getOdfCanvas().getElement(),f,h=[v];f=z.containsNode(d,a.startContainer);d=z.containsNode(d,a.endContainer);if(f||d)if(f&&d&&(2===b?q(a):3<=b&&e(a)),(b=c?x.getRootElement(a.startContainer):x.getRootElement(a.endContainer))||(b=x.getRootNode()),h.push(x.createRootFilter(b)),l(b,h,a,!0),l(b,h,a,!1),a= +n(a,c),c=x.convertDomToCursorRange(a),a=x.getCursorSelection(k),c.position!==a.position||c.length!==a.length)a=p(c.position,c.length,ops.OdtCursor.RangeSelection),g.enqueue([a])};this.moveCursorToLeft=function(){a(N,!1);return!0};this.moveCursorToRight=function(){a(O,!1);return!0};this.extendSelectionToLeft=function(){a(N,!0);return!0};this.extendSelectionToRight=function(){a(O,!0);return!0};this.setCaretXPositionLocator=function(a){A=a};this.moveCursorUp=function(){c(N,!1);return!0};this.moveCursorDown= +function(){c(O,!1);return!0};this.extendSelectionUp=function(){c(N,!0);return!0};this.extendSelectionDown=function(){c(O,!0);return!0};this.moveCursorBeforeWord=function(){h(N,!1);return!0};this.moveCursorPastWord=function(){h(O,!1);return!0};this.extendSelectionBeforeWord=function(){h(N,!0);return!0};this.extendSelectionPastWord=function(){h(O,!0);return!0};this.moveCursorToLineStart=function(){m(N,!1);return!0};this.moveCursorToLineEnd=function(){m(O,!1);return!0};this.extendSelectionToLineStart= +function(){m(N,!0);return!0};this.extendSelectionToLineEnd=function(){m(O,!0);return!0};this.extendSelectionToParagraphStart=function(){y(N,!0,w.getParagraphElement);return!0};this.extendSelectionToParagraphEnd=function(){y(O,!0,w.getParagraphElement);return!0};this.moveCursorToParagraphStart=function(){y(N,!1,w.getParagraphElement);return!0};this.moveCursorToParagraphEnd=function(){y(O,!1,w.getParagraphElement);return!0};this.moveCursorToDocumentStart=function(){y(N,!1,x.getRootElement);return!0}; +this.moveCursorToDocumentEnd=function(){y(O,!1,x.getRootElement);return!0};this.extendSelectionToDocumentStart=function(){y(N,!0,x.getRootElement);return!0};this.extendSelectionToDocumentEnd=function(){y(O,!0,x.getRootElement);return!0};this.extendSelectionToEntireDocument=function(){var a=x.getCursor(k),a=x.getRootElement(a.getNode()),c,b,d;runtime.assert(Boolean(a),"SelectionController: Cursor outside root");d=x.createStepIterator(a,0,[v,t],a);d.roundToClosestStep();c=d.container();b=d.offset(); +d.setPosition(a,a.childNodes.length);d.roundToClosestStep();a=x.convertDomToCursorRange({anchorNode:c,anchorOffset:b,focusNode:d.container(),focusOffset:d.offset()});g.enqueue([p(a.position,a.length)]);return!0};this.destroy=function(a){x.unsubscribe(ops.OdtDocument.signalOperationStart,d);core.Async.destroyAll([K.destroy],a)};(function(){K=core.Task.createTimeoutTask(function(){I=void 0},2E3);x.subscribe(ops.OdtDocument.signalOperationStart,d)})()}; +gui.TextController=function(g,k,d,b,f,n){function p(){y=!0===k.getState(gui.CommonConstraints.EDIT.REVIEW_MODE)?d.isLocalCursorWithinOwnAnnotation():!0}function r(a){a.getMemberId()===b&&p()}function q(a,b,d){var e=[c.getPositionFilter()];d&&e.push(c.createRootFilter(a.startContainer));d=c.createStepIterator(a.startContainer,a.startOffset,e,b);d.roundToClosestStep()||runtime.assert(!1,"No walkable step found in paragraph element at range start");b=c.convertDomPointToCursorStep(d.container(),d.offset()); +a.collapsed?a=b:(d.setPosition(a.endContainer,a.endOffset),d.roundToClosestStep()||runtime.assert(!1,"No walkable step found in paragraph element at range end"),a=c.convertDomPointToCursorStep(d.container(),d.offset()));return{position:b,length:a-b}}function e(a){var c,d,e,f=m.getParagraphElements(a),g=a.cloneRange(),l=[];c=f[0];1a.length&&(a.position+=a.length,a.length=-a.length);return a}function a(a){if(!y)return!1;var d,f=c.getCursor(b).getSelectedRange().cloneRange(), +h=l(c.getCursorSelection(b)),m;if(0===h.length){h=void 0;d=c.getCursor(b).getNode();m=c.getRootElement(d);var k=[c.getPositionFilter(),c.createRootFilter(m)];m=c.createStepIterator(d,0,k,m);m.roundToClosestStep()&&(a?m.nextStep():m.previousStep())&&(h=l(c.convertDomToCursorRange({anchorNode:d,anchorOffset:0,focusNode:m.container(),focusOffset:m.offset()})),a?(f.setStart(d,0),f.setEnd(m.container(),m.offset())):(f.setStart(m.container(),m.offset()),f.setEnd(d,0)))}h&&g.enqueue(e(f));return void 0!== +h}var c=g.getOdtDocument(),m=odf.OdfUtils,h=core.DomUtils,y=!1,x=odf.Namespaces.textns,z=core.StepDirection.NEXT;this.isEnabled=function(){return y};this.enqueueParagraphSplittingOps=function(){if(!y)return!1;var a=c.getCursor(b),d=a.getSelectedRange(),f=l(c.getCursorSelection(b)),h=[],a=m.getParagraphElement(a.getNode()),k=a.getAttributeNS(x,"style-name")||"";0d.left&&(d=v(e)))c.focusNode=d.container,c.focusOffset=d.offset, +b&&(c.anchorNode=c.focusNode,c.anchorOffset=c.focusOffset)}else S.isImage(c.focusNode.firstChild)&&1===c.focusOffset&&S.isCharacterFrame(c.focusNode)&&(d=v(c.focusNode))&&(c.anchorNode=c.focusNode=d.container,c.anchorOffset=c.focusOffset=d.offset);c.anchorNode&&c.focusNode&&(c=T.selectionToRange(c),T.selectRange(c.range,c.hasForwardSelection,0===a.button?a.detail:0));F.focus()}function t(a){var c;if(c=n(a.clientX,a.clientY))a=c.container,c=c.offset,a={anchorNode:a,anchorOffset:c,focusNode:a,focusOffset:c}, +a=T.selectionToRange(a),T.selectRange(a.range,a.hasForwardSelection,2),F.focus()}function A(a){var c=a.target||a.srcElement||null,d,e,f;ma.processRequests();U&&(S.isImage(c)&&S.isCharacterFrame(c.parentNode)&&W.getSelection().isCollapsed?(T.selectImage(c.parentNode),F.focus()):la.isSelectorElement(c)?F.focus():B?(c=b.getSelectedRange(),e=c.collapsed,S.isImage(c.endContainer)&&0===c.endOffset&&S.isCharacterFrame(c.endContainer.parentNode)&&(f=c.endContainer.parentNode,f=v(f))&&(c.setEnd(f.container, +f.offset),e&&c.collapse(!1)),T.selectRange(c,b.hasForwardSelection(),0===a.button?a.detail:0),F.focus()):ua?u(a):(d=aa.cloneEvent(a),M=runtime.setTimeout(function(){u(d)},0)),oa=0,B=U=!1)}function I(a){var c=J.getCursor(d).getSelectedRange();c.collapsed||fa.exportRangeToDataTransfer(a.dataTransfer,c)}function K(){U&&F.focus();oa=0;B=U=!1}function L(a){A(a)}function E(a){var c=a.target||a.srcElement||null,b=null;"annotationRemoveButton"===c.className?(runtime.assert(ja,"Remove buttons are displayed on annotations while annotation editing is disabled in the controller."), +b=c.parentNode.getElementsByTagNameNS(odf.Namespaces.officens,"annotation").item(0),ca.removeAnnotation(b),F.focus()):"webodf-draggable"!==c.getAttribute("class")&&A(a)}function N(a){(a=a.data)&&(-1===a.indexOf("\n")?da.insertText(a):ea.paste(a))}function O(a){return function(){a();return!0}}function D(a){return function(c){return J.getCursor(d).getSelectionType()===ops.OdtCursor.RangeSelection?a(c):!0}}function V(c){F.unsubscribe("keydown",C.handleEvent);F.unsubscribe("keypress",Z.handleEvent);F.unsubscribe("keyup", +ba.handleEvent);F.unsubscribe("copy",q);F.unsubscribe("mousedown",w);F.unsubscribe("mousemove",ma.trigger);F.unsubscribe("mouseup",E);F.unsubscribe("contextmenu",L);F.unsubscribe("dragstart",I);F.unsubscribe("dragend",K);F.unsubscribe("click",pa.handleClick);F.unsubscribe("longpress",t);F.unsubscribe("drag",y);F.unsubscribe("dragstop",x);J.unsubscribe(ops.OdtDocument.signalOperationEnd,na.trigger);J.unsubscribe(ops.Document.signalCursorAdded,ka.registerCursor);J.unsubscribe(ops.Document.signalCursorRemoved, +ka.removeCursor);J.unsubscribe(ops.OdtDocument.signalOperationEnd,a);c()}var W=runtime.getWindow(),J=k.getOdtDocument(),R=new gui.SessionConstraints,P=new gui.SessionContext(k,d),aa=core.DomUtils,S=odf.OdfUtils,fa=new gui.MimeDataExporter,ha=new gui.Clipboard(fa),C=new gui.KeyboardHandler,Z=new gui.KeyboardHandler,ba=new gui.KeyboardHandler,U=!1,ga=new odf.ObjectNameGenerator(J.getOdfCanvas().odfContainer(),d),B=!1,Y=null,M,Q=null,F=new gui.EventManager(J),ja=f.annotationsEnabled,ca=new gui.AnnotationController(k, +R,d),X=new gui.DirectFormattingController(k,R,P,d,ga,f.directTextStylingEnabled,f.directParagraphStylingEnabled),da=new gui.TextController(k,R,P,d,X.createCursorStyleOp,X.createParagraphStyleOps),qa=new gui.ImageController(k,R,P,d,ga),la=new gui.ImageSelector(J.getOdfCanvas()),ia=J.createPositionIterator(J.getRootNode()),ma,na,ea=new gui.PasteController(k,R,P,d),ka=new gui.InputMethodEditor(d,F),oa=0,pa=new gui.HyperlinkClickHandler(J.getOdfCanvas().getElement,C,ba),ta=new gui.HyperlinkController(k, +R,P,d),T=new gui.SelectionController(k,d),va=new gui.MetadataController(k,d),G=gui.KeyboardHandler.Modifier,H=gui.KeyboardHandler.KeyCode,ra=-1!==W.navigator.appVersion.toLowerCase().indexOf("mac"),ua=-1!==["iPad","iPod","iPhone"].indexOf(W.navigator.platform),sa;runtime.assert(null!==W,"Expected to be run in an environment which has a global window, like a browser.");this.undo=m;this.redo=h;this.insertLocalCursor=function(){runtime.assert(void 0===k.getOdtDocument().getCursor(d),"Inserting local cursor a second time."); +var a=new ops.OpAddCursor;a.init({memberid:d});k.enqueue([a]);F.focus()};this.removeLocalCursor=function(){runtime.assert(void 0!==k.getOdtDocument().getCursor(d),"Removing local cursor without inserting before.");var a=new ops.OpRemoveCursor;a.init({memberid:d});k.enqueue([a])};this.startEditing=function(){ka.subscribe(gui.InputMethodEditor.signalCompositionStart,da.removeCurrentSelection);ka.subscribe(gui.InputMethodEditor.signalCompositionEnd,N);F.subscribe("beforecut",r);F.subscribe("cut",p); +F.subscribe("beforepaste",l);F.subscribe("paste",e);Q&&Q.initialize();F.setEditing(!0);pa.setModifier(ra?G.Meta:G.Ctrl);C.bind(H.Backspace,G.None,O(da.removeTextByBackspaceKey),!0);C.bind(H.Delete,G.None,da.removeTextByDeleteKey);C.bind(H.Tab,G.None,D(function(){da.insertText("\t");return!0}));ra?(C.bind(H.Clear,G.None,da.removeCurrentSelection),C.bind(H.B,G.Meta,D(X.toggleBold)),C.bind(H.I,G.Meta,D(X.toggleItalic)),C.bind(H.U,G.Meta,D(X.toggleUnderline)),C.bind(H.L,G.MetaShift,D(X.alignParagraphLeft)), +C.bind(H.E,G.MetaShift,D(X.alignParagraphCenter)),C.bind(H.R,G.MetaShift,D(X.alignParagraphRight)),C.bind(H.J,G.MetaShift,D(X.alignParagraphJustified)),ja&&C.bind(H.C,G.MetaShift,ca.addAnnotation),C.bind(H.Z,G.Meta,m),C.bind(H.Z,G.MetaShift,h)):(C.bind(H.B,G.Ctrl,D(X.toggleBold)),C.bind(H.I,G.Ctrl,D(X.toggleItalic)),C.bind(H.U,G.Ctrl,D(X.toggleUnderline)),C.bind(H.L,G.CtrlShift,D(X.alignParagraphLeft)),C.bind(H.E,G.CtrlShift,D(X.alignParagraphCenter)),C.bind(H.R,G.CtrlShift,D(X.alignParagraphRight)), +C.bind(H.J,G.CtrlShift,D(X.alignParagraphJustified)),ja&&C.bind(H.C,G.CtrlAlt,ca.addAnnotation),C.bind(H.Z,G.Ctrl,m),C.bind(H.Z,G.CtrlShift,h));Z.setDefault(D(function(a){var c;c=null===a.which||void 0===a.which?String.fromCharCode(a.keyCode):0!==a.which&&0!==a.charCode?String.fromCharCode(a.which):null;return!c||a.altKey||a.ctrlKey||a.metaKey?!1:(da.insertText(c),!0)}));Z.bind(H.Enter,G.None,D(da.enqueueParagraphSplittingOps))};this.endEditing=function(){ka.unsubscribe(gui.InputMethodEditor.signalCompositionStart, +da.removeCurrentSelection);ka.unsubscribe(gui.InputMethodEditor.signalCompositionEnd,N);F.unsubscribe("cut",p);F.unsubscribe("beforecut",r);F.unsubscribe("paste",e);F.unsubscribe("beforepaste",l);F.setEditing(!1);pa.setModifier(G.None);C.bind(H.Backspace,G.None,function(){return!0},!0);C.unbind(H.Delete,G.None);C.unbind(H.Tab,G.None);ra?(C.unbind(H.Clear,G.None),C.unbind(H.B,G.Meta),C.unbind(H.I,G.Meta),C.unbind(H.U,G.Meta),C.unbind(H.L,G.MetaShift),C.unbind(H.E,G.MetaShift),C.unbind(H.R,G.MetaShift), +C.unbind(H.J,G.MetaShift),ja&&C.unbind(H.C,G.MetaShift),C.unbind(H.Z,G.Meta),C.unbind(H.Z,G.MetaShift)):(C.unbind(H.B,G.Ctrl),C.unbind(H.I,G.Ctrl),C.unbind(H.U,G.Ctrl),C.unbind(H.L,G.CtrlShift),C.unbind(H.E,G.CtrlShift),C.unbind(H.R,G.CtrlShift),C.unbind(H.J,G.CtrlShift),ja&&C.unbind(H.C,G.CtrlAlt),C.unbind(H.Z,G.Ctrl),C.unbind(H.Z,G.CtrlShift));Z.setDefault(null);Z.unbind(H.Enter,G.None)};this.getInputMemberId=function(){return d};this.getSession=function(){return k};this.getSessionConstraints=function(){return R}; +this.setUndoManager=function(a){Q&&Q.unsubscribe(gui.UndoManager.signalUndoStackChanged,c);if(Q=a)Q.setDocument(J),Q.setPlaybackFunction(k.enqueue),Q.subscribe(gui.UndoManager.signalUndoStackChanged,c)};this.getUndoManager=function(){return Q};this.getMetadataController=function(){return va};this.getAnnotationController=function(){return ca};this.getDirectFormattingController=function(){return X};this.getHyperlinkClickHandler=function(){return pa};this.getHyperlinkController=function(){return ta}; +this.getImageController=function(){return qa};this.getSelectionController=function(){return T};this.getTextController=function(){return da};this.getEventManager=function(){return F};this.getKeyboardHandlers=function(){return{keydown:C,keypress:Z}};this.destroy=function(a){var c=[ma.destroy,na.destroy,X.destroy,ka.destroy,F.destroy,pa.destroy,ta.destroy,va.destroy,T.destroy,da.destroy,V];sa&&c.unshift(sa.destroy);runtime.clearTimeout(M);core.Async.destroyAll(c,a)};ma=core.Task.createRedrawTask(z); +na=core.Task.createRedrawTask(function(){var a=J.getCursor(d);if(a&&a.getSelectionType()===ops.OdtCursor.RegionSelection&&(a=S.getImageElements(a.getSelectedRange())[0])){la.select(a.parentNode);return}la.clearSelection()});C.bind(H.Left,G.None,D(T.moveCursorToLeft));C.bind(H.Right,G.None,D(T.moveCursorToRight));C.bind(H.Up,G.None,D(T.moveCursorUp));C.bind(H.Down,G.None,D(T.moveCursorDown));C.bind(H.Left,G.Shift,D(T.extendSelectionToLeft));C.bind(H.Right,G.Shift,D(T.extendSelectionToRight));C.bind(H.Up, +G.Shift,D(T.extendSelectionUp));C.bind(H.Down,G.Shift,D(T.extendSelectionDown));C.bind(H.Home,G.None,D(T.moveCursorToLineStart));C.bind(H.End,G.None,D(T.moveCursorToLineEnd));C.bind(H.Home,G.Ctrl,D(T.moveCursorToDocumentStart));C.bind(H.End,G.Ctrl,D(T.moveCursorToDocumentEnd));C.bind(H.Home,G.Shift,D(T.extendSelectionToLineStart));C.bind(H.End,G.Shift,D(T.extendSelectionToLineEnd));C.bind(H.Up,G.CtrlShift,D(T.extendSelectionToParagraphStart));C.bind(H.Down,G.CtrlShift,D(T.extendSelectionToParagraphEnd)); +C.bind(H.Home,G.CtrlShift,D(T.extendSelectionToDocumentStart));C.bind(H.End,G.CtrlShift,D(T.extendSelectionToDocumentEnd));ra?(C.bind(H.Left,G.Alt,D(T.moveCursorBeforeWord)),C.bind(H.Right,G.Alt,D(T.moveCursorPastWord)),C.bind(H.Left,G.Meta,D(T.moveCursorToLineStart)),C.bind(H.Right,G.Meta,D(T.moveCursorToLineEnd)),C.bind(H.Home,G.Meta,D(T.moveCursorToDocumentStart)),C.bind(H.End,G.Meta,D(T.moveCursorToDocumentEnd)),C.bind(H.Left,G.AltShift,D(T.extendSelectionBeforeWord)),C.bind(H.Right,G.AltShift, +D(T.extendSelectionPastWord)),C.bind(H.Left,G.MetaShift,D(T.extendSelectionToLineStart)),C.bind(H.Right,G.MetaShift,D(T.extendSelectionToLineEnd)),C.bind(H.Up,G.AltShift,D(T.extendSelectionToParagraphStart)),C.bind(H.Down,G.AltShift,D(T.extendSelectionToParagraphEnd)),C.bind(H.Up,G.MetaShift,D(T.extendSelectionToDocumentStart)),C.bind(H.Down,G.MetaShift,D(T.extendSelectionToDocumentEnd)),C.bind(H.A,G.Meta,D(T.extendSelectionToEntireDocument))):(C.bind(H.Left,G.Ctrl,D(T.moveCursorBeforeWord)),C.bind(H.Right, +G.Ctrl,D(T.moveCursorPastWord)),C.bind(H.Left,G.CtrlShift,D(T.extendSelectionBeforeWord)),C.bind(H.Right,G.CtrlShift,D(T.extendSelectionPastWord)),C.bind(H.A,G.Ctrl,D(T.extendSelectionToEntireDocument)));ua&&(sa=new gui.IOSSafariSupport(F));F.subscribe("keydown",C.handleEvent);F.subscribe("keypress",Z.handleEvent);F.subscribe("keyup",ba.handleEvent);F.subscribe("copy",q);F.subscribe("mousedown",w);F.subscribe("mousemove",ma.trigger);F.subscribe("mouseup",E);F.subscribe("contextmenu",L);F.subscribe("dragstart", +I);F.subscribe("dragend",K);F.subscribe("click",pa.handleClick);F.subscribe("longpress",t);F.subscribe("drag",y);F.subscribe("dragstop",x);J.subscribe(ops.OdtDocument.signalOperationEnd,na.trigger);J.subscribe(ops.Document.signalCursorAdded,ka.registerCursor);J.subscribe(ops.Document.signalCursorRemoved,ka.removeCursor);J.subscribe(ops.OdtDocument.signalOperationEnd,a)}})(); +gui.CaretManager=function(g,k){function d(b){return n.hasOwnProperty(b)?n[b]:null}function b(){return Object.keys(n).map(function(b){return n[b]})}function f(b){var d=n[b];d&&(delete n[b],b===g.getInputMemberId()?(r.unsubscribe(ops.OdtDocument.signalProcessingBatchEnd,d.ensureVisible),r.unsubscribe(ops.Document.signalCursorMoved,d.refreshCursorBlinking),q.unsubscribe("compositionupdate",d.handleUpdate),q.unsubscribe("compositionend",d.handleUpdate),q.unsubscribe("focus",d.setFocus),q.unsubscribe("blur", +d.removeFocus),p.removeEventListener("focus",d.show,!1),p.removeEventListener("blur",d.hide,!1)):r.unsubscribe(ops.OdtDocument.signalProcessingBatchEnd,d.handleUpdate),d.destroy(function(){}))}var n={},p=runtime.getWindow(),r=g.getSession().getOdtDocument(),q=g.getEventManager();this.registerCursor=function(b,d,a){var c=b.getMemberId();b=new gui.Caret(b,k,d,a);n[c]=b;c===g.getInputMemberId()?(runtime.log("Starting to track input on new cursor of "+c),r.subscribe(ops.OdtDocument.signalProcessingBatchEnd, +b.ensureVisible),r.subscribe(ops.Document.signalCursorMoved,b.refreshCursorBlinking),q.subscribe("compositionupdate",b.handleUpdate),q.subscribe("compositionend",b.handleUpdate),q.subscribe("focus",b.setFocus),q.subscribe("blur",b.removeFocus),p.addEventListener("focus",b.show,!1),p.addEventListener("blur",b.hide,!1),b.setOverlayElement(q.getEventTrap())):r.subscribe(ops.OdtDocument.signalProcessingBatchEnd,b.handleUpdate);return b};this.getCaret=d;this.getCarets=b;this.destroy=function(d){var l= +b().map(function(a){return a.destroy});g.getSelectionController().setCaretXPositionLocator(null);r.unsubscribe(ops.Document.signalCursorRemoved,f);n={};core.Async.destroyAll(l,d)};g.getSelectionController().setCaretXPositionLocator(function(){var b=d(g.getInputMemberId()),f;b&&(f=b.getBoundingClientRect());return f?f.right:void 0});r.subscribe(ops.Document.signalCursorRemoved,f)}; +gui.EditInfoHandle=function(g){var k=[],d,b=g.ownerDocument,f=b.documentElement.namespaceURI;this.setEdits=function(g){k=g;var p,r,q,e;core.DomUtils.removeAllChildNodes(d);for(g=0;gc?(r=d(1,0),q=d(.5,1E4-c),e=d(.2,2E4-c)):1E4<=c&&2E4>c?(r=d(.5,0),e=d(.2,2E4-c)):r=d(.2,0)};this.getEdits=function(){return g.getEdits()};this.clearEdits=function(){g.clearEdits(); +n.setEdits([]);p.hasAttributeNS("urn:webodf:names:editinfo","editinfo:memberid")&&p.removeAttributeNS("urn:webodf:names:editinfo","editinfo:memberid")};this.getEditInfo=function(){return g};this.show=function(){p.style.display="block"};this.hide=function(){b.hideHandle();p.style.display="none"};this.showHandle=function(){n.show()};this.hideHandle=function(){n.hide()};this.destroy=function(b){runtime.clearTimeout(r);runtime.clearTimeout(q);runtime.clearTimeout(e);f.removeChild(p);n.destroy(function(a){a? +b(a):g.destroy(b)})};(function(){var d=g.getOdtDocument().getDOMDocument();p=d.createElementNS(d.documentElement.namespaceURI,"div");p.setAttribute("class","editInfoMarker");p.onmouseover=function(){b.showHandle()};p.onmouseout=function(){b.hideHandle()};f=g.getNode();f.appendChild(p);n=new gui.EditInfoHandle(f);k||b.hide()})()}; +gui.HyperlinkTooltipView=function(g,k){var d=core.DomUtils,b=odf.OdfUtils,f=runtime.getWindow(),n,p,r;runtime.assert(null!==f,"Expected to be run in an environment which has a global window, like a browser.");this.showTooltip=function(q){var e=q.target||q.srcElement,l=g.getSizer(),a=g.getZoomLevel(),c;a:{for(;e;){if(b.isHyperlink(e))break a;if(b.isParagraph(e)||b.isInlineRoot(e))break;e=e.parentNode}e=null}if(e){d.containsNode(l,r)||l.appendChild(r);c=p;var m;switch(k()){case gui.KeyboardHandler.Modifier.Ctrl:m= +runtime.tr("Ctrl-click to follow link");break;case gui.KeyboardHandler.Modifier.Meta:m=runtime.tr("\u2318-click to follow link");break;default:m=""}c.textContent=m;n.textContent=b.getHyperlinkTarget(e);r.style.display="block";c=f.innerWidth-r.offsetWidth-15;e=q.clientX>c?c:q.clientX+15;c=f.innerHeight-r.offsetHeight-10;q=q.clientY>c?c:q.clientY+10;l=l.getBoundingClientRect();e=(e-l.left)/a;q=(q-l.top)/a;r.style.left=e+"px";r.style.top=q+"px"}};this.hideTooltip=function(){r.style.display="none"};this.destroy= +function(b){r.parentNode&&r.parentNode.removeChild(r);b()};(function(){var b=g.getElement().ownerDocument;n=b.createElement("span");p=b.createElement("span");n.className="webodf-hyperlinkTooltipLink";p.className="webodf-hyperlinkTooltipText";r=b.createElement("div");r.className="webodf-hyperlinkTooltip";r.appendChild(n);r.appendChild(p);g.getElement().appendChild(r)})()}; +gui.OdfFieldView=function(g){function k(){var b=odf.OdfSchema.getFields().map(function(b){return b.replace(":","|")}),d=b.join(",\n")+"\n{ background-color: #D0D0D0; }\n",b=b.map(function(b){return b+":empty::after"}).join(",\n")+"\n{ content:' '; white-space: pre; }\n";return d+"\n"+b}var d,b=g.getElement().ownerDocument;this.showFieldHighlight=function(){d.appendChild(b.createTextNode(k()))};this.hideFieldHighlight=function(){for(var b=d.sheet,g=b.cssRules;g.length;)b.deleteRule(g.length-1)};this.destroy= +function(b){d.parentNode&&d.parentNode.removeChild(d);b()};d=function(){var d=b.getElementsByTagName("head").item(0),g=b.createElement("style"),k="";g.type="text/css";g.media="screen, print, handheld, projection";odf.Namespaces.forEachPrefix(function(b,d){k+="@namespace "+b+" url("+d+");\n"});g.appendChild(b.createTextNode(k));d.appendChild(g);return g}()}; +gui.ShadowCursor=function(g){var k=g.getDOMDocument().createRange(),d=!0;this.removeFromDocument=function(){};this.getMemberId=function(){return gui.ShadowCursor.ShadowCursorMemberId};this.getSelectedRange=function(){return k};this.setSelectedRange=function(b,f){k=b;d=!1!==f};this.hasForwardSelection=function(){return d};this.getDocument=function(){return g};this.getSelectionType=function(){return ops.OdtCursor.RangeSelection};k.setStart(g.getRootNode(),0)};gui.ShadowCursor.ShadowCursorMemberId=""; +gui.SelectionView=function(g){};gui.SelectionView.prototype.rerender=function(){};gui.SelectionView.prototype.show=function(){};gui.SelectionView.prototype.hide=function(){};gui.SelectionView.prototype.destroy=function(g){}; +gui.SelectionViewManager=function(g){function k(){return Object.keys(d).map(function(b){return d[b]})}var d={};this.getSelectionView=function(b){return d.hasOwnProperty(b)?d[b]:null};this.getSelectionViews=k;this.removeSelectionView=function(b){d.hasOwnProperty(b)&&(d[b].destroy(function(){}),delete d[b])};this.hideSelectionView=function(b){d.hasOwnProperty(b)&&d[b].hide()};this.showSelectionView=function(b){d.hasOwnProperty(b)&&d[b].show()};this.rerenderSelectionViews=function(){Object.keys(d).forEach(function(b){d[b].rerender()})}; +this.registerCursor=function(b,f){var k=b.getMemberId(),p=new g(b);f?p.show():p.hide();return d[k]=p};this.destroy=function(b){function d(k,r){r?b(r):k .webodf-draggable"),a=gui.ShadowCursor.ShadowCursorMemberId,e(".webodf-selectionOverlay","{ fill: "+b+"; stroke: "+b+";}",""),e(".webodf-touchEnabled .webodf-selectionOverlay","{ display: block; }"," > .webodf-draggable"))}function l(a){var c,b;for(b in t)t.hasOwnProperty(b)&&(c=t[b],a?c.show():c.hide())}function a(a){n.getCarets().forEach(function(c){a?c.showHandle():c.hideHandle()})}function c(a){var c=a.getMemberId();a=a.getProperties();e(c,a.fullName,a.color)}function m(a){var c= +a.getMemberId(),d=b.getOdtDocument().getMember(c).getProperties();n.registerCursor(a,E,N);p.registerCursor(a,!0);if(a=n.getCaret(c))a.setAvatarImageUrl(d.imageUrl),a.setColor(d.color);runtime.log("+++ View here +++ eagerly created an Caret for '"+c+"'! +++")}function h(a){a=a.getMemberId();var c=p.getSelectionView(d),b=p.getSelectionView(gui.ShadowCursor.ShadowCursorMemberId),e=n.getCaret(d);a===d?(b.hide(),c&&c.show(),e&&e.show()):a===gui.ShadowCursor.ShadowCursorMemberId&&(b.show(),c&&c.hide(), +e&&e.hide())}function y(a){p.removeSelectionView(a)}function x(a){var c=a.paragraphElement,d=a.memberId;a=a.timeStamp;var e,f="",h=c.getElementsByTagNameNS("urn:webodf:names:editinfo","editinfo").item(0);h?(f=h.getAttributeNS("urn:webodf:names:editinfo","id"),e=t[f]):(f=Math.random().toString(),e=new ops.EditInfo(c,b.getOdtDocument()),e=new gui.EditInfoMarker(e,L),h=c.getElementsByTagNameNS("urn:webodf:names:editinfo","editinfo").item(0),h.setAttributeNS("urn:webodf:names:editinfo","id",f),t[f]=e); +e.addEdit(d,new Date(a));K.trigger()}function z(){var a;u.hasChildNodes()&&core.DomUtils.removeAllChildNodes(u);!0===f.getState(gui.CommonConstraints.EDIT.ANNOTATIONS.ONLY_DELETE_OWN)&&(a=b.getOdtDocument().getMember(d))&&(a=a.getProperties().fullName,u.appendChild(document.createTextNode(".annotationWrapper:not([creator = '"+a+"']) .annotationRemoveButton { display: none; }")))}function w(a){var b=Object.keys(t).map(function(a){return t[a]});A.unsubscribe(ops.Document.signalMemberAdded,c);A.unsubscribe(ops.Document.signalMemberUpdated, +c);A.unsubscribe(ops.Document.signalCursorAdded,m);A.unsubscribe(ops.Document.signalCursorRemoved,y);A.unsubscribe(ops.OdtDocument.signalParagraphChanged,x);A.unsubscribe(ops.Document.signalCursorMoved,h);A.unsubscribe(ops.OdtDocument.signalParagraphChanged,p.rerenderSelectionViews);A.unsubscribe(ops.OdtDocument.signalTableAdded,p.rerenderSelectionViews);A.unsubscribe(ops.OdtDocument.signalParagraphStyleModified,p.rerenderSelectionViews);f.unsubscribe(gui.CommonConstraints.EDIT.ANNOTATIONS.ONLY_DELETE_OWN, +z);A.unsubscribe(ops.Document.signalMemberAdded,z);A.unsubscribe(ops.Document.signalMemberUpdated,z);v.parentNode.removeChild(v);u.parentNode.removeChild(u);(function W(c,d){d?a(d):ca.length;c&&g(a);return c}function d(a,c){function b(e){a[e]===c&&d.push(e)}var d=[];a&&["style:parent-style-name","style:next-style-name"].forEach(b);return d}function b(a,c){function b(d){a[d]===c&&delete a[d]}a&&["style:parent-style-name","style:next-style-name"].forEach(b)}function f(a){var c={};Object.keys(a).forEach(function(b){c[b]="object"===typeof a[b]?f(a[b]):a[b]});return c}function n(a, +c,b,d){var e,f=!1,g=!1,k,l=[];d&&d.attributes&&(l=d.attributes.split(","));a&&(b||0=a.length?0:a.length-e.length)):void 0!==a.length&&(e=a.position+a.length,d<=e?a.length-=c.length:b=c.position+c.length)){d=b?a:c;e=b?c:a;if(a.position!==c.position||a.length!==c.length)n=f(d),r=f(e);c=q(e.setProperties,null,d.setProperties, +null,"style:text-properties");if(c.majorChanged||c.minorChanged)g=[],a=[],k=d.position+d.length,l=e.position+e.length,e.positionk?c.minorChanged&&(n=r,n.position=k,n.length=l-k,a.push(n),e.length=k-e.position):k>l&&c.majorChanged&&(n.position=l, +n.length=k-l,g.push(n),d.length=l-d.position),d.setProperties&&p(d.setProperties)&&g.push(d),e.setProperties&&p(e.setProperties)&&a.push(e),b?(k=g,g=a):k=a}return{opSpecsA:k,opSpecsB:g}},InsertText:function(a,c){c.position<=a.position?a.position+=c.text.length:c.position<=a.position+a.length&&(a.length+=c.text.length);return{opSpecsA:[a],opSpecsB:[c]}},MergeParagraph:function(a,c){var b=a.position,d=a.position+a.length;b>=c.sourceStartPosition&&--b;d>=c.sourceStartPosition&&--d;a.position=b;a.length= +d-b;return{opSpecsA:[a],opSpecsB:[c]}},MoveCursor:e,RemoveAnnotation:function(a,b){var d=a.position,e=a.position+a.length,f=b.position+b.length,g=[a],k=[b];b.position<=d&&e<=f?g=[]:(fb.position?a.position+=b.text.length:d?b.position+=a.text.length:a.position+= +b.text.length;return{opSpecsA:[a],opSpecsB:[b]}},MergeParagraph:function(a,b){a.position>=b.sourceStartPosition?--a.position:(a.positiona.position&&(b.position+=a.text.length);return{opSpecsA:[a],opSpecsB:[b]}},SplitParagraph:function(a,b){a.position=a.sourceStartPosition&&--f;d>=a.sourceStartPosition&&--d;0<=b.length?(b.position=f,b.length=d-f):(b.position=d,b.length=f-d);return{opSpecsA:[a],opSpecsB:[b]}},RemoveAnnotation:function(a,b){var d=b.position+b.length,e=[a],f=[b];b.position<=a.destinationStartPosition&&a.sourceStartPosition<=d?(e=[],--b.length):a.sourceStartPosition=a.sourceStartPosition?--b.position:(b.positiona.sourceStartPosition)--b.position;else if(b.position===a.destinationStartPosition||b.position===a.sourceStartPosition)b.position=a.destinationStartPosition,a.paragraphStyleName=b.styleName;return{opSpecsA:d,opSpecsB:e}},SplitParagraph:function(a,b){var d,e=[a],f=[b];b.position=a.destinationStartPosition&&b.position=a.sourceStartPosition&&(--b.position,--b.sourceParagraphPosition);return{opSpecsA:e,opSpecsB:f}},UpdateMember:e,UpdateMetadata:e, +UpdateParagraphStyle:e},MoveCursor:{MoveCursor:e,RemoveAnnotation:function(a,b){var d=k(a),e=a.position+a.length,f=b.position+b.length;b.position<=a.position&&e<=f?(a.position=b.position-1,a.length=0):(fb.position?a.position+= +1:a.position===b.sourceParagraphPosition&&(b.paragraphStyleName=a.styleName,g=f(a),g.position=b.position+1,d.push(g));return{opSpecsA:d,opSpecsB:e}},UpdateMember:e,UpdateMetadata:e,UpdateParagraphStyle:e},SplitParagraph:{SplitParagraph:function(a,b,d){var e,f;a.position + +(c) 2009-2014 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/master/LICENSE + @licend +*/ +!function(e){var globalScope=typeof window!=="undefined"?window:typeof global!=="undefined"?global:{},externs=globalScope.externs||(globalScope.externs={});externs.JSZip=e()}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'");}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f, +f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>> +6;enc4=chr3&63;if(isNaN(chr2))enc3=enc4=64;else if(isNaN(chr3))enc4=64;output=output+_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+_keyStr.charAt(enc3)+_keyStr.charAt(enc4)}return output};exports.decode=function(input,utf8){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64)output=output+String.fromCharCode(chr2);if(enc4!=64)output=output+String.fromCharCode(chr3)}return output}},{}],2:[function(_dereq_,module,exports){function CompressedObject(){this.compressedSize=0;this.uncompressedSize=0;this.crc32=0;this.compressionMethod=null;this.compressedContent=null}CompressedObject.prototype={getContent:function(){return null},getCompressedContent:function(){return null}}; +module.exports=CompressedObject},{}],3:[function(_dereq_,module,exports){exports.STORE={magic:"\x00\x00",compress:function(content){return content},uncompress:function(content){return content},compressInputType:null,uncompressInputType:null};exports.DEFLATE=_dereq_("./flate")},{"./flate":8}],4:[function(_dereq_,module,exports){var utils=_dereq_("./utils");var table=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021, +3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527, +1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856, +1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626, +1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692, +2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614, +3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];module.exports=function crc32(input,crc){if(typeof input==="undefined"||!input.length)return 0;var isArray=utils.getTypeOf(input)!=="string";if(typeof crc=="undefined")crc=0;var x=0;var y=0;var b=0;crc=crc^-1;for(var i=0,iTop=input.length;i>>8^x}return crc^-1}},{"./utils":21}],5:[function(_dereq_,module,exports){var utils=_dereq_("./utils"); +function DataReader(data){this.data=null;this.length=0;this.index=0}DataReader.prototype={checkOffset:function(offset){this.checkIndex(this.index+offset)},checkIndex:function(newIndex){if(this.length=this.index;i--)result=(result<<8)+this.byteAt(i);this.index+=size;return result},readString:function(size){return utils.transformTo("string",this.readData(size))},readData:function(size){},lastIndexOfSignature:function(sig){},readDate:function(){var dostime=this.readInt(4);return new Date((dostime>>25&127)+1980,(dostime>>21&15)-1,dostime>>16&31,dostime>>11&31,dostime>>5&63,(dostime&31)<<1)}};module.exports=DataReader},{"./utils":21}],6:[function(_dereq_, +module,exports){exports.base64=false;exports.binary=false;exports.dir=false;exports.createFolders=false;exports.date=null;exports.compression=null;exports.comment=null},{}],7:[function(_dereq_,module,exports){var utils=_dereq_("./utils");exports.string2binary=function(str){return utils.string2binary(str)};exports.string2Uint8Array=function(str){return utils.transformTo("uint8array",str)};exports.uint8Array2String=function(array){return utils.transformTo("string",array)};exports.string2Blob=function(str){var buffer= +utils.transformTo("arraybuffer",str);return utils.arrayBuffer2Blob(buffer)};exports.arrayBuffer2Blob=function(buffer){return utils.arrayBuffer2Blob(buffer)};exports.transformTo=function(outputType,input){return utils.transformTo(outputType,input)};exports.getTypeOf=function(input){return utils.getTypeOf(input)};exports.checkSupport=function(type){return utils.checkSupport(type)};exports.MAX_VALUE_16BITS=utils.MAX_VALUE_16BITS;exports.MAX_VALUE_32BITS=utils.MAX_VALUE_32BITS;exports.pretty=function(str){return utils.pretty(str)}; +exports.findCompression=function(compressionMethod){return utils.findCompression(compressionMethod)};exports.isRegExp=function(object){return utils.isRegExp(object)}},{"./utils":21}],8:[function(_dereq_,module,exports){var USE_TYPEDARRAY=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Uint32Array!=="undefined";var pako=_dereq_("pako");exports.uncompressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.compressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.magic= +"\b\x00";exports.compress=function(input){return pako.deflateRaw(input)};exports.uncompress=function(input){return pako.inflateRaw(input)}},{"pako":24}],9:[function(_dereq_,module,exports){var base64=_dereq_("./base64");function JSZip(data,options){if(!(this instanceof JSZip))return new JSZip(data,options);this.files={};this.comment=null;this.root="";if(data)this.load(data,options);this.clone=function(){var newObj=new JSZip;for(var i in this)if(typeof this[i]!=="function")newObj[i]=this[i];return newObj}} +JSZip.prototype=_dereq_("./object");JSZip.prototype.load=_dereq_("./load");JSZip.support=_dereq_("./support");JSZip.defaults=_dereq_("./defaults");JSZip.utils=_dereq_("./deprecatedPublicUtils");JSZip.base64={encode:function(input){return base64.encode(input)},decode:function(input){return base64.decode(input)}};JSZip.compressions=_dereq_("./compressions");module.exports=JSZip},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(_dereq_, +module,exports){var base64=_dereq_("./base64");var ZipEntries=_dereq_("./zipEntries");module.exports=function(data,options){var files,zipEntries,i,input;options=options||{};if(options.base64)data=base64.decode(data);zipEntries=new ZipEntries(data,options);files=zipEntries.files;for(i=0;i>>8}return hex};var extend=function(){var result={},i,attr;for(i=0;i0?path.substring(0,lastSlash):""};var folderAdd=function(name,createFolders){if(name.slice(-1)!="/")name+="/";createFolders=typeof createFolders!=="undefined"?createFolders:false;if(!this.files[name])fileAdd.call(this,name,null,{dir:true,createFolders:createFolders});return this.files[name]};var generateCompressedObjectFrom=function(file,compression){var result=new CompressedObject,content;if(file._data instanceof +CompressedObject){result.uncompressedSize=file._data.uncompressedSize;result.crc32=file._data.crc32;if(result.uncompressedSize===0||file.dir){compression=compressions["STORE"];result.compressedContent="";result.crc32=0}else if(file._data.compressionMethod===compression.magic)result.compressedContent=file._data.getCompressedContent();else{content=file._data.getContent();result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}}else{content=getBinaryData(file); +if(!content||content.length===0||file.dir){compression=compressions["STORE"];content=""}result.uncompressedSize=content.length;result.crc32=crc32(content);result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}result.compressedSize=result.compressedContent.length;result.compressionMethod=compression.magic;return result};var generateZipParts=function(name,file,compressedObject,offset){var data=compressedObject.compressedContent,utfEncodedFileName=utils.transformTo("string", +utf8.utf8encode(file.name)),comment=file.comment||"",utfEncodedComment=utils.transformTo("string",utf8.utf8encode(comment)),useUTF8ForFileName=utfEncodedFileName.length!==file.name.length,useUTF8ForComment=utfEncodedComment.length!==comment.length,o=file.options,dosTime,dosDate,extraFields="",unicodePathExtraField="",unicodeCommentExtraField="",dir,date;if(file._initialMetadata.dir!==file.dir)dir=file.dir;else dir=o.dir;if(file._initialMetadata.date!==file.date)date=file.date;else date=o.date;dosTime= +date.getHours();dosTime=dosTime<<6;dosTime=dosTime|date.getMinutes();dosTime=dosTime<<5;dosTime=dosTime|date.getSeconds()/2;dosDate=date.getFullYear()-1980;dosDate=dosDate<<4;dosDate=dosDate|date.getMonth()+1;dosDate=dosDate<<5;dosDate=dosDate|date.getDate();if(useUTF8ForFileName){unicodePathExtraField=decToHex(1,1)+decToHex(crc32(utfEncodedFileName),4)+utfEncodedFileName;extraFields+="up"+decToHex(unicodePathExtraField.length,2)+unicodePathExtraField}if(useUTF8ForComment){unicodeCommentExtraField= +decToHex(1,1)+decToHex(this.crc32(utfEncodedComment),4)+utfEncodedComment;extraFields+="uc"+decToHex(unicodeCommentExtraField.length,2)+unicodeCommentExtraField}var header="";header+="\n\x00";header+=useUTF8ForFileName||useUTF8ForComment?"\x00\b":"\x00\x00";header+=compressedObject.compressionMethod;header+=decToHex(dosTime,2);header+=decToHex(dosDate,2);header+=decToHex(compressedObject.crc32,4);header+=decToHex(compressedObject.compressedSize,4);header+=decToHex(compressedObject.uncompressedSize, +4);header+=decToHex(utfEncodedFileName.length,2);header+=decToHex(extraFields.length,2);var fileRecord=signature.LOCAL_FILE_HEADER+header+utfEncodedFileName+extraFields;var dirRecord=signature.CENTRAL_FILE_HEADER+"\u0014\x00"+header+decToHex(utfEncodedComment.length,2)+"\x00\x00"+"\x00\x00"+(dir===true?"\u0010\x00\x00\x00":"\x00\x00\x00\x00")+decToHex(offset,4)+utfEncodedFileName+extraFields+utfEncodedComment;return{fileRecord:fileRecord,dirRecord:dirRecord,compressedObject:compressedObject}};var out= +{load:function(stream,options){throw new Error("Load method is not defined. Is the file jszip-load.js included ?");},filter:function(search){var result=[],filename,relativePath,file,fileClone;for(filename in this.files){if(!this.files.hasOwnProperty(filename))continue;file=this.files[filename];fileClone=new ZipObject(file.name,file._data,extend(file.options));relativePath=filename.slice(this.root.length,filename.length);if(filename.slice(0,this.root.length)===this.root&&search(relativePath,fileClone))result.push(fileClone)}return result}, +file:function(name,data,o){if(arguments.length===1)if(utils.isRegExp(name)){var regexp=name;return this.filter(function(relativePath,file){return!file.dir&®exp.test(relativePath)})}else return this.filter(function(relativePath,file){return!file.dir&&relativePath===name})[0]||null;else{name=this.root+name;fileAdd.call(this,name,data,o)}return this},folder:function(arg){if(!arg)return this;if(utils.isRegExp(arg))return this.filter(function(relativePath,file){return file.dir&&arg.test(relativePath)}); +var name=this.root+arg;var newFolder=folderAdd.call(this,name);var ret=this.clone();ret.root=newFolder.name;return ret},remove:function(name){name=this.root+name;var file=this.files[name];if(!file){if(name.slice(-1)!="/")name+="/";file=this.files[name]}if(file&&!file.dir)delete this.files[name];else{var kids=this.filter(function(relativePath,file){return file.name.slice(0,name.length)===name});for(var i=0;i=0;--i)if(this.data[i]===sig0&&this.data[i+1]===sig1&&this.data[i+2]===sig2&&this.data[i+3]===sig3)return i;return-1};Uint8ArrayReader.prototype.readData=function(size){this.checkOffset(size);if(size===0)return new Uint8Array(0);var result=this.data.subarray(this.index, +this.index+size);this.index+=size;return result};module.exports=Uint8ArrayReader},{"./dataReader":5}],19:[function(_dereq_,module,exports){var utils=_dereq_("./utils");var Uint8ArrayWriter=function(length){this.data=new Uint8Array(length);this.index=0};Uint8ArrayWriter.prototype={append:function(input){if(input.length!==0){input=utils.transformTo("uint8array",input);this.data.set(input,this.index);this.index+=input.length}},finalize:function(){return this.data}};module.exports=Uint8ArrayWriter},{"./utils":21}], +20:[function(_dereq_,module,exports){var utils=_dereq_("./utils");var support=_dereq_("./support");var nodeBuffer=_dereq_("./nodeBuffer");var _utf8len=new Array(256);for(var i=0;i<256;i++)_utf8len[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]= +240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};var utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length)max=buf.length;pos=max-1;while(pos>=0&&(buf[pos]&192)===128)pos--;if(pos<0)return max;if(pos===0)return max;return pos+_utf8len[buf[pos]]>max?pos:max};var buf2string=function(buf){var str,i,out,c,c_len;var len=buf.length;var utf16buf=new Array(len*2);for(out=0,i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536)utf16buf[out++]=c;else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}if(utf16buf.length!==out)if(utf16buf.subarray)utf16buf=utf16buf.subarray(0,out);else utf16buf.length=out;return utils.applyFromCharCode(utf16buf)};exports.utf8encode=function utf8encode(str){if(support.nodebuffer)return nodeBuffer(str, +"utf-8");return string2buf(str)};exports.utf8decode=function utf8decode(buf){if(support.nodebuffer)return utils.transformTo("nodebuffer",buf).toString("utf-8");buf=utils.transformTo(support.uint8array?"uint8array":"array",buf);var result=[],k=0,len=buf.length,chunk=65536;while(k1)try{if(type==="array"||type==="nodebuffer")result.push(String.fromCharCode.apply(null,array.slice(k,Math.min(k+chunk,len))));else result.push(String.fromCharCode.apply(null, +array.subarray(k,Math.min(k+chunk,len))));k+=chunk}catch(e){chunk=Math.floor(chunk/2)}return result.join("")}exports.applyFromCharCode=arrayLikeToString;function arrayLikeToArrayLike(arrayFrom,arrayTo){for(var i=0;i1)throw new Error("Multi-volumes zip are not supported");},readLocalFiles:function(){var i,file;for(i=0;i0)opt.windowBits=-opt.windowBits;else if(opt.gzip&&opt.windowBits>0&&opt.windowBits<16)opt.windowBits+=16;this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_deflate.deflateInit2(this.strm,opt.level,opt.method,opt.windowBits,opt.memLevel,opt.strategy);if(status!==Z_OK)throw new Error(msg[status]); +if(opt.header)zlib_deflate.deflateSetHeader(this.strm,opt.header)};Deflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;if(this.ended)return false;_mode=mode===~~mode?mode:mode===true?Z_FINISH:Z_NO_FLUSH;if(typeof data==="string")strm.input=strings.string2buf(data);else strm.input=data;strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status= +zlib_deflate.deflate(strm,_mode);if(status!==Z_STREAM_END&&status!==Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.avail_out===0||strm.avail_in===0&&_mode===Z_FINISH)if(this.options.to==="string")this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output,strm.next_out)));else this.onData(utils.shrinkBuf(strm.output,strm.next_out))}while((strm.avail_in>0||strm.avail_out===0)&&status!==Z_STREAM_END);if(_mode===Z_FINISH){status=zlib_deflate.deflateEnd(this.strm);this.onEnd(status); +this.ended=true;return status===Z_OK}return true};Deflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Deflate.prototype.onEnd=function(status){if(status===Z_OK)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=utils.flattenChunks(this.chunks);this.chunks=[];this.err=status;this.msg=this.strm.msg};function deflate(input,options){var deflator=new Deflate(options);deflator.push(input,true);if(deflator.err)throw deflator.msg;return deflator.result}function deflateRaw(input, +options){options=options||{};options.raw=true;return deflate(input,options)}function gzip(input,options){options=options||{};options.gzip=true;return deflate(input,options)}exports.Deflate=Deflate;exports.deflate=deflate;exports.deflateRaw=deflateRaw;exports.gzip=gzip},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(_dereq_,module,exports){var zlib_inflate=_dereq_("./zlib/inflate.js");var utils=_dereq_("./utils/common");var strings= +_dereq_("./utils/strings");var c=_dereq_("./zlib/constants");var msg=_dereq_("./zlib/messages");var zstream=_dereq_("./zlib/zstream");var gzheader=_dereq_("./zlib/gzheader");var Inflate=function(options){this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0)opt.windowBits=-15}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits))opt.windowBits+= +32;if(opt.windowBits>15&&opt.windowBits<48)if((opt.windowBits&15)===0)opt.windowBits|=15;this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK)throw new Error(msg[status]);this.header=new gzheader;zlib_inflate.inflateGetHeader(this.strm,this.header)};Inflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;var next_out_utf8, +tail,utf8str;if(this.ended)return false;_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data==="string")strm.input=strings.binstring2buf(data);else strm.input=data;strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out)if(strm.avail_out=== +0||status===c.Z_STREAM_END||strm.avail_in===0&&_mode===c.Z_FINISH)if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out);tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail)utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0);this.onData(utf8str)}else this.onData(utils.shrinkBuf(strm.output,strm.next_out))}while(strm.avail_in>0&&status!==c.Z_STREAM_END);if(status=== +c.Z_STREAM_END)_mode=c.Z_FINISH;if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===c.Z_OK}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=utils.flattenChunks(this.chunks);this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator= +new Inflate(options);inflator.push(input,true);if(inflator.err)throw inflator.msg;return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(_dereq_,module,exports){var TYPED_OK= +typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";exports.assign=function(obj){var sources=Array.prototype.slice.call(arguments,1);while(sources.length){var source=sources.shift();if(!source)continue;if(typeof source!=="object")throw new TypeError(source+"must be non-object");for(var p in source)if(source.hasOwnProperty(p))obj[p]=source[p]}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size)return buf;if(buf.subarray)return buf.subarray(0, +size);buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i=0;i=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]= +128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65537)if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK)return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len));var result="";for(var i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536)utf16buf[out++]= +c;else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf,out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length)max=buf.length;pos=max-1;while(pos>=0&&(buf[pos]&192)===128)pos--;if(pos<0)return max;if(pos===0)return max;return pos+_utf8len[buf[pos]]>max?pos:max}},{"./common":27}],29:[function(_dereq_,module,exports){function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n= +len>2E3?2E3:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],30:[function(_dereq_,module,exports){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4, +Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(_dereq_,module,exports){function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++)c=c&1?3988292384^c>>>1:c>>>1;table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=crc^-1;for(var i=pos;i>>8^t[(crc^buf[i])&255];return crc^-1}module.exports=crc32},{}],32:[function(_dereq_,module,exports){var utils=_dereq_("../utils/common"); +var trees=_dereq_("./trees");var adler32=_dereq_("./adler32");var crc32=_dereq_("./crc32");var msg=_dereq_("./messages");var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL= +8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg= +msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0)buf[len]=0}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out)len=strm.avail_out;if(len===0)return;utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0)s.pending_out=0}function flush_block_only(s,last){trees._tr_flush_block(s, +s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last);s.block_start=s.strstart;flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255;s.pending_buf[s.pending++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size)len=size;if(len===0)return 0;strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1)strm.adler=adler32(strm.adler,buf,len,start); +else if(strm.state.wrap===2)strm.adler=crc32(strm.adler,buf,len,start);strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+ +best_len];if(s.prev_length>=s.good_match)chain_length>>=2;if(nice_match>s.lookahead)nice_match=s.lookahead;do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1])continue;scan+=2;match++;do;while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]=== +_win[++match]&&scanbest_len){s.match_start=cur_match;best_len=len;if(len>=nice_match)break;scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead)return best_len;return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window, +s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;s.block_start-=_w_size;n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0}while(--n);more+=_w_size}if(s.strm.avail_in===0)break;n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<s.pending_buf_size-5)max_block_size=s.pending_buf_size-5;for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(s.lookahead=== +0)break}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0)return BS_NEED_MORE}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0)return BS_NEED_MORE}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0)return BS_FINISH_STARTED;return BS_FINISH_DONE}if(s.strstart> +s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0)return BS_NEED_MORE}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead=MIN_MATCH){s.ins_h=(s.ins_h<=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<=MIN_MATCH){s.ins_h=(s.ins_h<4096))s.match_length=MIN_MATCH-1}if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length- +MIN_MATCH);s.lookahead-=s.prev_length-1;s.prev_length-=2;do if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do;while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&& +prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scans.lookahead)s.match_length=s.lookahead}}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0)return BS_NEED_MORE}}s.insert= +0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0)return BS_FINISH_STARTED;return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0)return BS_NEED_MORE}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush;for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH)return BS_NEED_MORE;break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s, +false);if(s.strm.avail_out===0)return BS_NEED_MORE}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0)return BS_FINISH_STARTED;return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0)return BS_NEED_MORE}return BS_BLOCK_DONE}var Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func};var configuration_table; +configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(s){s.window_size=2*s.w_size;zero(s.head);s.max_lazy_match=configuration_table[s.level].max_lazy; +s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0}function DeflateState(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=Z_DEFLATED;this.last_flush= +-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new utils.Buf16(HEAP_SIZE*2);this.dyn_dtree= +new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new utils.Buf16(MAX_BITS+1);this.heap=new utils.Buf16(2*L_CODES+1);zero(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new utils.Buf16(2*L_CODES+1);zero(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0; +this.bi_buf=0;this.bi_valid=0}function deflateResetKeep(strm){var s;if(!strm||!strm.state)return err(strm,Z_STREAM_ERROR);strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0)s.wrap=-s.wrap;s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK)lm_init(strm.state);return ret}function deflateSetHeader(strm,head){if(!strm|| +!strm.state)return Z_STREAM_ERROR;if(strm.state.wrap!==2)return Z_STREAM_ERROR;strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm)return Z_STREAM_ERROR;var wrap=1;if(level===Z_DEFAULT_COMPRESSION)level=6;if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED)return err(strm, +Z_STREAM_ERROR);if(windowBits===8)windowBits=9;var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<>1;s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s;var beg,val;if(!strm||!strm.state||flush>Z_BLOCK||flush<0)return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR;s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH)return err(strm, +strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR);s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE)if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment? +0:16));put_byte(s,s.gzhead.time&255);put_byte(s,s.gzhead.time>>8&255);put_byte(s,s.gzhead.time>>16&255);put_byte(s,s.gzhead.time>>24&255);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc)strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0);s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<< +4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2)level_flags=0;else if(s.level<6)level_flags=1;else if(s.level===6)level_flags=2;else level_flags=3;header|=level_flags<<6;if(s.strstart!==0)header|=PRESET_DICT;header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}if(s.status===EXTRA_STATE)if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending=== +s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg)strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size)break}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg)strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else s.status=NAME_STATE;if(s.status===NAME_STATE)if(s.gzhead.name){beg=s.pending;do{if(s.pending=== +s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg)strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg)strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else s.status=COMMENT_STATE;if(s.status===COMMENT_STATE)if(s.gzhead.comment){beg= +s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg)strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg)strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);if(val===0)s.status=HCRC_STATE}else s.status=HCRC_STATE;if(s.status=== +HCRC_STATE)if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size)flush_pending(strm);if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else s.status=BUSY_STATE;if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH)return err(strm,Z_BUF_ERROR);if(s.status===FINISH_STATE&&strm.avail_in!==0)return err(strm,Z_BUF_ERROR); +if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE)s.status=FINISH_STATE;if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0)s.last_flush=-1;return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH)trees._tr_align(s);else if(flush!==Z_BLOCK){trees._tr_stored_block(s, +0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH)return Z_OK;if(s.wrap<=0)return Z_STREAM_END;if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>> +24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0)s.wrap=-s.wrap;return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state)return Z_STREAM_ERROR;status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE)return err(strm,Z_STREAM_ERROR);strm.state=null;return status===BUSY_STATE?err(strm, +Z_DATA_ERROR):Z_OK}exports.deflateInit=deflateInit;exports.deflateInit2=deflateInit2;exports.deflateReset=deflateReset;exports.deflateResetKeep=deflateResetKeep;exports.deflateSetHeader=deflateSetHeader;exports.deflate=deflate;exports.deflateEnd=deflateEnd;exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(_dereq_,module,exports){function GZheader(){this.text=0;this.time=0;this.xflags=0;this.os=0; +this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}module.exports=GZheader},{}],34:[function(_dereq_,module,exports){var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var input,output;state=strm.state;_in=strm.next_in;input= +strm.input;last=_in+(strm.avail_in-5);_out=strm.next_out;output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);dmax=state.dmax;wsize=state.wsize;whave=state.whave;wnext=state.wnext;window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<>>24;hold>>>=op; +bits-=op;op=here>>>16&255;if(op===0)output[_out++]=here&65535;else if(op&16){len=here&65535;op&=15;if(op){if(bits>>=op;bits-=op}if(bits<15){hold+=input[_in++]<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bitsdmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave)if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}from=0;from_source=window;if(wnext===0){from+=wsize-op;if(op2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1)output[_out++]=from_source[from++]}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]= +output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1)output[_out++]=output[from++]}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<>3;_in-=len;bits-=len<<3;hold&=(1<>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset= +0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state)return Z_STREAM_ERROR;state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap)strm.adler=state.wrap&1;state.mode=HEAD;state.last= +0;state.havedict=0;state.dmax=32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state)return Z_STREAM_ERROR;state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state)return Z_STREAM_ERROR; +state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48)windowBits&=15}if(windowBits&&(windowBits<8||windowBits>15))return Z_STREAM_ERROR;if(state.window!==null&&state.wbits!==windowBits)state.window=null;state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm)return Z_STREAM_ERROR;state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits); +if(ret!==Z_OK)strm.state=null;return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144)state.lens[sym++]=8;while(sym<256)state.lens[sym++]=9;while(sym<280)state.lens[sym++]=7;while(sym<288)state.lens[sym++]=8;inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32)state.lens[sym++]=5;inflate_table(DISTS, +state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy)dist= +copy;utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize)state.wnext=0;if(state.whave>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head)state.head.done=false;if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode= +BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0)state.wbits=len;else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<>8&1;if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0)break inf_leave;have--;hold+=input[next++]<>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits< +16){if(have===0)break inf_leave;have--;hold+=input[next++]<>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0)break inf_leave;have--;hold+=input[next++]<>>8&255;state.check= +crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head)state.head.extra=null;state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have)copy=have;if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra)state.head.extra=new Array(state.head.extra_len);utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512)state.check=crc32(state.check,input,copy,next);have-=copy;next+=copy;state.length-=copy}if(state.length)break inf_leave}state.length= +0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0)break inf_leave;copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536)state.head.name+=String.fromCharCode(len)}while(len&©>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0)break inf_leave;have--;hold+=input[next++]<>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0)break inf_leave;have--;hold+=input[next++]<>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits< +32){if(have===0)break inf_leave;have--;hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES)break inf_leave;case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have)copy=have;if(copy>left)copy=left;if(copy===0)break inf_leave;utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy; +break}state.mode=TYPE;break;case TABLE:while(bits<14){if(have===0)break inf_leave;have--;hold+=input[next++]<>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have>>=3;bits-=3}while(state.have<19)state.lens[order[state.have++]]=0;state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold& +3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--)state.lens[state.have++]= +len}}if(state.mode===BAD)break;if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts); +state.distbits=opts.bits;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES)break inf_leave;case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE)state.back= +-1;break}state.back=0;for(;;){here=state.lencode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits)break;if(have=== +0)break inf_leave;have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0)break inf_leave;copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave)if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}if(copy>state.wnext){copy-=state.wnext; +from=state.wsize-copy}else from=state.wnext-copy;if(copy>state.length)copy=state.length;from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left)copy=left;left-=copy;state.length-=copy;do output[put++]=from_source[from++];while(--copy);if(state.length===0)state.mode=LEN;break;case LIT:if(left===0)break inf_leave;output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0)break inf_leave;have--;hold|=input[next++]<< +bits;bits+=8}_out-=left;strm.total_out+=_out;state.total+=_out;if(_out)strm.adler=state.check=state.flags?crc32(state.check,output,_out,put-_out):adler32(state.check,output,_out,put-_out);_out=left;if((state.flags?hold:ZSWAP32(hold))!==state.check){strm.msg="incorrect data check";state.mode=BAD;break}hold=0;bits=0}state.mode=LENGTH;case LENGTH:if(state.wrap&&state.flags){while(bits<32){if(have===0)break inf_leave;have--;hold+=input[next++]<=1;max--)if(count[max]!==0)break;if(root>max)root=max;if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]= +1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1))return-1;offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]= +here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>=1;if(incr!==0){huff&=incr-1;huff+=incr}else huff=0;sym++;if(--count[len]===0){if(len===max)break;len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0)drop=root;next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;low=huff&mask;table[low]=root<< +24|curr<<16|next-table_index|0}}if(huff!==0)table[next+huff]=len-drop<<24|64<<16|0;opts.bits=root;return 0}},{"../utils/common":27}],37:[function(_dereq_,module,exports){module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(_dereq_,module,exports){var utils=_dereq_("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len= +buf.length;while(--len>=0)buf[len]=0}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7, +7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES); +zero(base_dist);var StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+ +(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<>>=1;res<<=1}while(--len>0); +return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow= +0;for(bits=0;bits<=MAX_BITS;bits++)s.bl_count[bits]=0;tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code)continue;s.bl_count[bits]++;xbits=0;if(n>=base)xbits=extra[n-base];f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree)s.static_len+=f*(stree[n*2+1]+xbits)}if(overflow===0)return;do{bits=max_length-1;while(s.bl_count[bits]===0)bits--;s.bl_count[bits]--;s.bl_count[bits+ +1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code)continue;if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++)next_code[bits]=code=code+bl_count[bits-1]<<1;for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0)continue; +tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code>=7;for(;code8)put_short(s,s.bi_buf);else if(s.bi_valid>0)s.pending_buf[s.pending++]= +s.bi_buf;s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]>1;n>=1;n--)pqdownheap(s,tree,n);node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s, +desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count=3;max_blindex--)if(s.bl_tree[bl_order[max_blindex]*2+1]!==0)break;s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank>>=1)if(black_mask&1&&s.dyn_ltree[n*2]!==0)return Z_BINARY;if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0)return Z_TEXT;for(n=32;n0){if(s.strm.data_type===Z_UNKNOWN)s.strm.data_type= +detect_data_type(s);build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb)opt_lenb=static_lenb}else opt_lenb=static_lenb=stored_len+5;if(stored_len+4<=opt_lenb&&buf!==-1)_tr_stored_block(s,buf,stored_len,last);else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0), +3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last)bi_windup(s)}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0)s.dyn_ltree[lc*2]++;else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1} +exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":27}],39:[function(_dereq_,module,exports){function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}]},{},[9])(9)}); + +/** + * Copyright (C) 2013 KO GmbH + * + * @licstart + * This file is part of WebODF. + * + * WebODF is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License (GNU AGPL) + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * WebODF is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with WebODF. If not, see . + * @licend + * + * @source: http://www.webodf.org/ + * @source: https://github.com/kogmbh/WebODF/ + */ + +/*global runtime, define, document, core, odf, gui, ops*/ + +/*define("webodf/editor/EditorSession", [ + "dojo/text!resources/fonts/fonts.css" +],*/ +this.OS.APP.OpenPage.EditorSession = (function (fontsCSS) { // fontsCSS is retrieved as a string, using dojo's text retrieval AMD plugin + "use strict"; + + runtime.loadClass("core.Async"); + runtime.loadClass("core.DomUtils"); + runtime.loadClass("odf.OdfUtils"); + runtime.loadClass("ops.OdtDocument"); + runtime.loadClass("ops.OdtStepsTranslator"); + runtime.loadClass("ops.Session"); + runtime.loadClass("odf.Namespaces"); + runtime.loadClass("odf.OdfCanvas"); + runtime.loadClass("odf.OdfUtils"); + runtime.loadClass("gui.CaretManager"); + runtime.loadClass("gui.Caret"); + runtime.loadClass("gui.OdfFieldView"); + runtime.loadClass("gui.SessionController"); + runtime.loadClass("gui.SessionView"); + runtime.loadClass("gui.HyperlinkTooltipView"); + runtime.loadClass("gui.TrivialUndoManager"); + runtime.loadClass("gui.SvgSelectionView"); + runtime.loadClass("gui.SelectionViewManager"); + runtime.loadClass("core.EventNotifier"); + runtime.loadClass("gui.ShadowCursor"); + runtime.loadClass("gui.CommonConstraints"); + + /** + * Instantiate a new editor session attached to an existing operation session + * @constructor + * @implements {core.EventSource} + * @param {!ops.Session} session + * @param {!string} localMemberId + * @param {{viewOptions:gui.SessionViewOptions,directParagraphStylingEnabled:boolean,annotationsEnabled:boolean}} config + */ + var EditorSession = function EditorSession(session, localMemberId, config) { + var self = this, + currentParagraphNode = null, + currentCommonStyleName = null, + currentStyleName = null, + caretManager, + selectionViewManager, + hyperlinkTooltipView, + odtDocument = session.getOdtDocument(), + textns = odf.Namespaces.textns, + fontStyles = document.createElement('style'), + formatting = odtDocument.getFormatting(), + domUtils = core.DomUtils, + odfUtils = odf.OdfUtils, + odfFieldView, + eventNotifier = new core.EventNotifier([ + EditorSession.signalMemberAdded, + EditorSession.signalMemberUpdated, + EditorSession.signalMemberRemoved, + EditorSession.signalCursorAdded, + EditorSession.signalCursorMoved, + EditorSession.signalCursorRemoved, + EditorSession.signalParagraphChanged, + EditorSession.signalCommonStyleCreated, + EditorSession.signalCommonStyleDeleted, + EditorSession.signalParagraphStyleModified, + EditorSession.signalUndoStackChanged]), + shadowCursor = new gui.ShadowCursor(odtDocument), + sessionConstraints, + /**@const*/ + NEXT = core.StepDirection.NEXT; + + /** + * @return {Array.} + */ + function getAvailableFonts() { + var availableFonts, regex, matches; + + availableFonts = {}; + + /*jslint regexp: true*/ + regex = /font-family *: *(?:\'([^']*)\'|\"([^"]*)\")/gm; + /*jslint regexp: false*/ + matches = regex.exec(fontsCSS); + + while (matches) { + availableFonts[matches[1] || matches[2]] = 1; + matches = regex.exec(fontsCSS); + } + availableFonts = Object.keys(availableFonts); + + return availableFonts; + } + + function checkParagraphStyleName() { + var newStyleName, + newCommonStyleName; + + newStyleName = currentParagraphNode.getAttributeNS(textns, 'style-name'); + + if (newStyleName !== currentStyleName) { + currentStyleName = newStyleName; + // check if common style is still the same + newCommonStyleName = formatting.getFirstCommonParentStyleNameOrSelf(newStyleName); + if (!newCommonStyleName) { + // Default style, empty-string name + currentCommonStyleName = newStyleName = currentStyleName = ""; + self.emit(EditorSession.signalParagraphChanged, { + type: 'style', + node: currentParagraphNode, + styleName: currentCommonStyleName + }); + return; + } + // a common style + if (newCommonStyleName !== currentCommonStyleName) { + currentCommonStyleName = newCommonStyleName; + self.emit(EditorSession.signalParagraphChanged, { + type: 'style', + node: currentParagraphNode, + styleName: currentCommonStyleName + }); + } + } + } + /** + * Creates a NCName from the passed string + * @param {!string} name + * @return {!string} + */ + function createNCName(name) { + var letter, + result = "", + i; + + // encode + for (i = 0; i < name.length; i += 1) { + letter = name[i]; + // simple approach, can be improved to not skip other allowed chars + if (letter.match(/[a-zA-Z0-9.-_]/) !== null) { + result += letter; + } else { + result += "_" + letter.charCodeAt(0).toString(16) + "_"; + } + } + // ensure leading char is from proper range + if (result.match(/^[a-zA-Z_]/) === null) { + result = "_" + result; + } + + return result; + } + + function uniqueParagraphStyleNCName(name) { + var result, + i = 0, + ncMemberId = createNCName(localMemberId), + ncName = createNCName(name); + + // create default paragraph style + // localMemberId is used to avoid id conflicts with ids created by other members + result = ncName + "_" + ncMemberId; + // then loop until result is really unique + while (formatting.hasParagraphStyle(result)) { + result = ncName + "_" + i + "_" + ncMemberId; + i += 1; + } + + return result; + } + + function trackCursor(cursor) { + var node; + + node = odfUtils.getParagraphElement(cursor.getNode()); + if (!node) { + return; + } + currentParagraphNode = node; + checkParagraphStyleName(); + } + + function trackCurrentParagraph(info) { + var cursor = odtDocument.getCursor(localMemberId), + range = cursor && cursor.getSelectedRange(), + paragraphRange = odtDocument.getDOMDocument().createRange(); + paragraphRange.selectNode(info.paragraphElement); + if ((range && domUtils.rangesIntersect(range, paragraphRange)) || info.paragraphElement === currentParagraphNode) { + self.emit(EditorSession.signalParagraphChanged, info); + checkParagraphStyleName(); + } + paragraphRange.detach(); + } + + function onMemberAdded(member) { + self.emit(EditorSession.signalMemberAdded, member.getMemberId()); + } + + function onMemberUpdated(member) { + self.emit(EditorSession.signalMemberUpdated, member.getMemberId()); + } + + function onMemberRemoved(memberId) { + self.emit(EditorSession.signalMemberRemoved, memberId); + } + + function onCursorAdded(cursor) { + self.emit(EditorSession.signalCursorAdded, cursor.getMemberId()); + trackCursor(cursor); + } + + function onCursorRemoved(memberId) { + self.emit(EditorSession.signalCursorRemoved, memberId); + } + + function onCursorMoved(cursor) { + // Emit 'cursorMoved' only when *I* am moving the cursor, not the other users + if (cursor.getMemberId() === localMemberId) { + self.emit(EditorSession.signalCursorMoved, cursor); + trackCursor(cursor); + } + } + + function onStyleCreated(newStyleName) { + self.emit(EditorSession.signalCommonStyleCreated, newStyleName); + } + + function onStyleDeleted(styleName) { + self.emit(EditorSession.signalCommonStyleDeleted, styleName); + } + + function onParagraphStyleModified(styleName) { + self.emit(EditorSession.signalParagraphStyleModified, styleName); + } + + /** + * Call all subscribers for the given event with the specified argument + * @param {!string} eventid + * @param {Object} args + */ + this.emit = function (eventid, args) { + eventNotifier.emit(eventid, args); + }; + + /** + * Subscribe to a given event with a callback + * @param {!string} eventid + * @param {!Function} cb + */ + this.subscribe = function (eventid, cb) { + eventNotifier.subscribe(eventid, cb); + }; + + /** + * @param {!string} eventid + * @param {!Function} cb + * @return {undefined} + */ + this.unsubscribe = function (eventid, cb) { + eventNotifier.unsubscribe(eventid, cb); + }; + + this.getCursorPosition = function () { + return odtDocument.getCursorPosition(localMemberId); + }; + + this.getCursorSelection = function () { + return odtDocument.getCursorSelection(localMemberId); + }; + + this.getOdfCanvas = function () { + return odtDocument.getOdfCanvas(); + }; + + this.getCurrentParagraph = function () { + return currentParagraphNode; + }; + + this.getAvailableParagraphStyles = function () { + return formatting.getAvailableParagraphStyles(); + }; + + this.getCurrentParagraphStyle = function () { + return currentCommonStyleName; + }; + + /** + * Applies the paragraph style with the given + * style name to all the paragraphs within + * the cursor selection. + * @param {!string} styleName + * @return {undefined} + */ + this.setCurrentParagraphStyle = function (styleName) { + var range = odtDocument.getCursor(localMemberId).getSelectedRange(), + paragraphs = odfUtils.getParagraphElements(range), + opQueue = []; + + paragraphs.forEach(function (paragraph) { + var paragraphStartPoint = odtDocument.convertDomPointToCursorStep(paragraph, 0, NEXT), + paragraphStyleName = paragraph.getAttributeNS(odf.Namespaces.textns, "style-name"), + opSetParagraphStyle; + + if (paragraphStyleName !== styleName) { + opSetParagraphStyle = new ops.OpSetParagraphStyle(); + opSetParagraphStyle.init({ + memberid: localMemberId, + styleName: styleName, + position: paragraphStartPoint + }); + opQueue.push(opSetParagraphStyle); + } + }); + + if (opQueue.length > 0) { + session.enqueue(opQueue); + } + }; + + this.insertTable = function (initialRows, initialColumns, tableStyleName, tableColumnStyleName, tableCellStyleMatrix) { + var op = new ops.OpInsertTable(); + op.init({ + memberid: localMemberId, + position: self.getCursorPosition(), + initialRows: initialRows, + initialColumns: initialColumns, + tableStyleName: tableStyleName, + tableColumnStyleName: tableColumnStyleName, + tableCellStyleMatrix: tableCellStyleMatrix + }); + session.enqueue([op]); + }; + + /** + * Takes a style name and returns the corresponding paragraph style + * element. If the style name is an empty string, the default style + * is returned. + * @param {!string} styleName + * @return {?Element} + */ + function getParagraphStyleElement(styleName) { + return (styleName === "") + ? formatting.getDefaultStyleElement('paragraph') + : formatting.getStyleElement(styleName, 'paragraph'); + } + + this.getParagraphStyleElement = getParagraphStyleElement; + + /** + * Returns if the style is used anywhere in the document + * @param {!Element} styleElement + * @return {boolean} + */ + this.isStyleUsed = function (styleElement) { + return formatting.isStyleUsed(styleElement); + }; + + /** + * Returns the attributes of a given paragraph style name + * (with inheritance). If the name is an empty string, + * the attributes of the default style are returned. + * @param {!string} styleName + * @return {?odf.Formatting.StyleData} + */ + this.getParagraphStyleAttributes = function (styleName) { + var styleNode = getParagraphStyleElement(styleName), + includeSystemDefault = styleName === ""; + + if (styleNode) { + return formatting.getInheritedStyleAttributes(styleNode, includeSystemDefault); + } + + return null; + }; + + /** + * Creates and enqueues a paragraph-style cloning operation. + * Returns the created id for the new style. + * @param {!string} styleName id of the style to update + * @param {!{paragraphProperties,textProperties}} setProperties properties which are set + * @param {!{paragraphPropertyNames,textPropertyNames}=} removedProperties properties which are removed + * @return {undefined} + */ + this.updateParagraphStyle = function (styleName, setProperties, removedProperties) { + var op; + op = new ops.OpUpdateParagraphStyle(); + op.init({ + memberid: localMemberId, + styleName: styleName, + setProperties: setProperties, + removedProperties: (!removedProperties) ? {} : removedProperties + }); + session.enqueue([op]); + }; + + /** + * Creates and enqueues a paragraph-style cloning operation. + * Returns the created id for the new style. + * @param {!string} styleName id of the style to clone + * @param {!string} newStyleDisplayName display name of the new style + * @return {!string} + */ + this.cloneParagraphStyle = function (styleName, newStyleDisplayName) { + var newStyleName = uniqueParagraphStyleNCName(newStyleDisplayName), + styleNode = getParagraphStyleElement(styleName), + op, setProperties, attributes, i; + + setProperties = formatting.getStyleAttributes(styleNode); + // copy any attributes directly on the style + attributes = styleNode.attributes; + for (i = 0; i < attributes.length; i += 1) { + // skip... + // * style:display-name -> not copied, set to new string below + // * style:name -> not copied, set from op by styleName property + // * style:family -> "paragraph" always, set by op + if (!/^(style:display-name|style:name|style:family)/.test(attributes[i].name)) { + setProperties[attributes[i].name] = attributes[i].value; + } + } + + setProperties['style:display-name'] = newStyleDisplayName; + + op = new ops.OpAddStyle(); + op.init({ + memberid: localMemberId, + styleName: newStyleName, + styleFamily: 'paragraph', + setProperties: setProperties + }); + session.enqueue([op]); + + return newStyleName; + }; + + this.deleteStyle = function (styleName) { + var op; + op = new ops.OpRemoveStyle(); + op.init({ + memberid: localMemberId, + styleName: styleName, + styleFamily: 'paragraph' + }); + session.enqueue([op]); + }; + + /** + * Returns an array of the declared fonts in the ODF document, + * with 'duplicates' like Arial1, Arial2, etc removed. The alphabetically + * first font name for any given family is kept. + * The elements of the array are objects containing the font's name and + * the family. + * @return {Array.} + */ + this.getDeclaredFonts = function () { + var fontMap = formatting.getFontMap(), + usedFamilies = [], + array = [], + sortedNames, + key, + value, + i; + + // Sort all the keys in the font map alphabetically + sortedNames = Object.keys(fontMap); + sortedNames.sort(); + + for (i = 0; i < sortedNames.length; i += 1) { + key = sortedNames[i]; + value = fontMap[key]; + + // Use the font declaration only if the family is not already used. + // Therefore we are able to discard the alphabetic successors of the first + // font name. + if (usedFamilies.indexOf(value) === -1) { + array.push({ + name: key, + family: value + }); + if (value) { + usedFamilies.push(value); + } + } + } + + return array; + }; + + this.getSelectedHyperlinks = function () { + var cursor = odtDocument.getCursor(localMemberId); + // no own cursor yet/currently added? + if (!cursor) { + return []; + } + return odfUtils.getHyperlinkElements(cursor.getSelectedRange()); + }; + + this.getSelectedRange = function () { + var cursor = odtDocument.getCursor(localMemberId); + return cursor && cursor.getSelectedRange(); + }; + + function undoStackModified(e) { + self.emit(EditorSession.signalUndoStackChanged, e); + } + + this.undo = function () { + self.sessionController.undo(); + }; + + this.redo = function () { + self.sessionController.redo(); + }; + + /** + * @param {!string} memberId + * @return {?ops.Member} + */ + this.getMember = function (memberId) { + return odtDocument.getMember(memberId); + }; + + /** + * @param {!function(!Object=)} callback passing an error object in case of error + * @return {undefined} + */ + function destroy(callback) { + var head = document.getElementsByTagName('head')[0], + eventManager = self.sessionController.getEventManager(); + + head.removeChild(fontStyles); + + odtDocument.unsubscribe(ops.Document.signalMemberAdded, onMemberAdded); + odtDocument.unsubscribe(ops.Document.signalMemberUpdated, onMemberUpdated); + odtDocument.unsubscribe(ops.Document.signalMemberRemoved, onMemberRemoved); + odtDocument.unsubscribe(ops.Document.signalCursorAdded, onCursorAdded); + odtDocument.unsubscribe(ops.Document.signalCursorRemoved, onCursorRemoved); + odtDocument.unsubscribe(ops.Document.signalCursorMoved, onCursorMoved); + odtDocument.unsubscribe(ops.OdtDocument.signalCommonStyleCreated, onStyleCreated); + odtDocument.unsubscribe(ops.OdtDocument.signalCommonStyleDeleted, onStyleDeleted); + odtDocument.unsubscribe(ops.OdtDocument.signalParagraphStyleModified, onParagraphStyleModified); + odtDocument.unsubscribe(ops.OdtDocument.signalParagraphChanged, trackCurrentParagraph); + odtDocument.unsubscribe(ops.OdtDocument.signalUndoStackChanged, undoStackModified); + + eventManager.unsubscribe("mousemove", hyperlinkTooltipView.showTooltip); + eventManager.unsubscribe("mouseout", hyperlinkTooltipView.hideTooltip); + delete self.sessionView; + delete self.sessionController; + callback(); + } + + /** + * @param {!function(!Error=)} callback passing an error object in case of error + * @return {undefined} + */ + this.destroy = function(callback) { + var cleanup = [ + self.sessionView.destroy, + caretManager.destroy, + selectionViewManager.destroy, + self.sessionController.destroy, + hyperlinkTooltipView.destroy, + odfFieldView.destroy, + destroy + ]; + + core.Async.destroyAll(cleanup, callback); + }; + + function init() { + var head = document.getElementsByTagName('head')[0], + odfCanvas = session.getOdtDocument().getOdfCanvas(), + eventManager; + + // TODO: fonts.css should be rather done by odfCanvas, or? + fontStyles.type = 'text/css'; + fontStyles.media = 'screen, print, handheld, projection'; + fontStyles.appendChild(document.createTextNode(fontsCSS)); + head.appendChild(fontStyles); + + odfFieldView = new gui.OdfFieldView(odfCanvas); + odfFieldView.showFieldHighlight(); + self.sessionController = new gui.SessionController(session, localMemberId, shadowCursor, { + annotationsEnabled: config.annotationsEnabled, + directTextStylingEnabled: config.directTextStylingEnabled, + directParagraphStylingEnabled: config.directParagraphStylingEnabled + }); + sessionConstraints = self.sessionController.getSessionConstraints(); + + eventManager = self.sessionController.getEventManager(); + hyperlinkTooltipView = new gui.HyperlinkTooltipView(odfCanvas, + self.sessionController.getHyperlinkClickHandler().getModifier); + eventManager.subscribe("mousemove", hyperlinkTooltipView.showTooltip); + eventManager.subscribe("mouseout", hyperlinkTooltipView.hideTooltip); + + caretManager = new gui.CaretManager(self.sessionController, odfCanvas.getViewport()); + selectionViewManager = new gui.SelectionViewManager(gui.SvgSelectionView); + self.sessionView = new gui.SessionView(config.viewOptions, localMemberId, session, sessionConstraints, caretManager, selectionViewManager); + self.availableFonts = getAvailableFonts(); + selectionViewManager.registerCursor(shadowCursor, true); + + // Session Constraints can be applied once the controllers are instantiated. + if (config.reviewModeEnabled) { + // Disallow deleting other authors' annotations. + sessionConstraints.setState(gui.CommonConstraints.EDIT.ANNOTATIONS.ONLY_DELETE_OWN, true); + sessionConstraints.setState(gui.CommonConstraints.EDIT.REVIEW_MODE, true); + } + + // Custom signals, that make sense in the Editor context. We do not want to expose webodf's ops signals to random bits of the editor UI. + odtDocument.subscribe(ops.Document.signalMemberAdded, onMemberAdded); + odtDocument.subscribe(ops.Document.signalMemberUpdated, onMemberUpdated); + odtDocument.subscribe(ops.Document.signalMemberRemoved, onMemberRemoved); + odtDocument.subscribe(ops.Document.signalCursorAdded, onCursorAdded); + odtDocument.subscribe(ops.Document.signalCursorRemoved, onCursorRemoved); + odtDocument.subscribe(ops.Document.signalCursorMoved, onCursorMoved); + odtDocument.subscribe(ops.OdtDocument.signalCommonStyleCreated, onStyleCreated); + odtDocument.subscribe(ops.OdtDocument.signalCommonStyleDeleted, onStyleDeleted); + odtDocument.subscribe(ops.OdtDocument.signalParagraphStyleModified, onParagraphStyleModified); + odtDocument.subscribe(ops.OdtDocument.signalParagraphChanged, trackCurrentParagraph); + odtDocument.subscribe(ops.OdtDocument.signalUndoStackChanged, undoStackModified); + } + + init(); + }; + + /**@const*/EditorSession.signalMemberAdded = "memberAdded"; + /**@const*/EditorSession.signalMemberUpdated = "memberUpdated"; + /**@const*/EditorSession.signalMemberRemoved = "memberRemoved"; + /**@const*/EditorSession.signalCursorAdded = "cursorAdded"; + /**@const*/EditorSession.signalCursorRemoved = "cursorRemoved"; + /**@const*/EditorSession.signalCursorMoved = "cursorMoved"; + /**@const*/EditorSession.signalParagraphChanged = "paragraphChanged"; + /**@const*/EditorSession.signalCommonStyleCreated = "styleCreated"; + /**@const*/EditorSession.signalCommonStyleDeleted = "styleDeleted"; + /**@const*/EditorSession.signalParagraphStyleModified = "paragraphStyleModified"; + /**@const*/EditorSession.signalUndoStackChanged = "signalUndoStackChanged"; + + return EditorSession; +})(""); + diff --git a/OpenPage/build/debug/package.json b/OpenPage/build/debug/package.json new file mode 100644 index 0000000..8408503 --- /dev/null +++ b/OpenPage/build/debug/package.json @@ -0,0 +1,13 @@ +{ + "app":"OpenPage", + "name":"OpenPage", + "description":"Open Document Format (ODF) text editor using WebODF", + "info":{ + "author": "Xuan Sang LE", + "email": "xsang.le@gmail.com" + }, + "version":"0.0.2-a", + "category":"Other", + "icon":"icon.png", + "mimes":["application/vnd.oasis.opendocument.text"] +} \ No newline at end of file diff --git a/OpenPage/build/debug/scheme.html b/OpenPage/build/debug/scheme.html new file mode 100644 index 0000000..3f16689 --- /dev/null +++ b/OpenPage/build/debug/scheme.html @@ -0,0 +1,47 @@ + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+
\ No newline at end of file diff --git a/OpenPage/build/release/OpenPage.zip b/OpenPage/build/release/OpenPage.zip index 882e08b05fc0ad5dcc486d5876103dd78599a71c..40b0c4ad8abc8c24c4e3eacd73e1c13019b06e61 100644 GIT binary patch delta 1065 zcmZuwTWkzb7@qmNx3gubx<#XVl*DY+G=$o;?h%Qu#tKd9h0gAtWx8`&GqXiDZHZD5 zseMpKgeT!mga;E(Jc=gLCn1uG2ZVSNZ4s$+X6v$zNxqpg=Re=~U(dtI)upeimnIWc zzOcZbt^@Io-5+jzQ$~Y=GV0!o!W9%~UR5;uy6G7imbgb^fPKD<;wbdeTDW~R4!#}DTQ7Hy<>9rix)5IV|=)^i`bBARZ+FHw{TCqix z46$U3*agj@D|NUu(A>z_7^_)qm=0F$gXE+W_O^&-6K}!o**s$@87y(37+$-zY-z-4 z)959ZgB=s66q~ec_(S2eRLcgu1*aTS!JJrO;~RwmOJfHbyzo{QnHSZ_nzF9yq_3^4 z*VKU5aGeS+%fQrn2`dH|f%@mLY=swor ziMWXSm+eBzb}ZF6Dp@k$aPOF~UG%!(e#yg45VLN{hUp-^T7*WraTu1+?IXxXFBc)` z&q}Nj^zAdWoQ{v6dG1&dhJl`Lf~b!bSE6P!)YlR@Z;@VNIJ-zzVLf0R`gR0rBWcaF z$u2Wp(3w%9J4~h>ZHKV$ctLgOwsu%d&pm>gp^N>%P{rV5@G}G$f(#+|Vm~VNR2@1H zKb!Lp<@}oMBbpZ1(}qvzgr~RsEHZ#tw6JAOt2m(j-zly@s7fAS>rmSaX z5otG*j(5L8g6BGI&-UHHGwu`xfn!dE@}YM$`U5Rn!Ar_Z5cdlLN2ub|%lC-Zd`F9T oE9mAQs7`A6j08J0xX&z>% delta 1557 zcmZ`(U1%It6rR~6oy=?!mzd&Ds~*Th>d29HAvt-@fJou2B*`1r+NoMa1 zGj|db&=q{>i>NTdC=%?8k3Q5z7wL-#K9qt8f}s@zK`R!05z~_TP|uy&f9Tyk?Cjk0 zedjyh%sn3*&U|%mW-^x<8de0pex+x#Kc9W;qvoC4a%N;g=-avM-;gjyoBj>?<@gZh zHfuNKyYV_lefR0?HwQ66;2|SZ{`^updp=pyr(wk=G^bUFQmh&-;8&wS-q32cNx*ij zO;Tp3p+YEeG)8nN?ZOgeD+NfCZDLw>jZg*|gDJ}NG+eNDn58Il$&eLT6)EZwM^dvl zVZ%Vu9fMUPj&uf2xdv9+1>N#WxR)}G@)lSW4EC(@ToSUDZfxv^M5`CUprC55OPG7c zEmuj6B&)1us><`7M9sF5L1P9|lr5bgqz-D?+Snk(JyX*RnvDLa$_pJ(s!#xz?P7Ue zpzO92T~}4+u@!8?38lM030lA`C=sN$4WciA?JP}U&gnEl`4mWjZ|E}0vw5o#TK+BV=!9Z1)mW#8msj8w}#3E=Y=hVRp(_PRF&9o|~ zLDTV`0}iQK+oUCyRW$~*-jS>rv}}4hc3@DH+ac=;D`?wLGsq67mQK5*9^XdyI zi}%nG-)bUKA4yIjPl%{Tf;Fmxa+zb$$|=s-L)|F6`ij_Jtr6t+ zV~zRM2U4*ArX=~}dy2of2EoZaDbcvP_Fl|?>fD(B_W1F44%aUqu8SBkj3JC+j1i1u z&BJx+lg&|n!oUA|KOSuTEkh&O2VA$>$0uXmaW@F-z7vul zbui&o@JuX#BY6ti?yic0z+tjHgLg;SUZ fcG$C)@5w@Y7~^ElWk!zi-BJ8p!?M2}g)aUN*bvep diff --git a/OpenPage/coffees/main.coffee b/OpenPage/coffees/main.coffee index 6f1ef05..4fdd212 100644 --- a/OpenPage/coffees/main.coffee +++ b/OpenPage/coffees/main.coffee @@ -45,7 +45,7 @@ class OpenPage extends this.OS.GUI.BaseApplication me = @ saveas = () -> me.openDialog "FileDiaLog", (d, n, p) -> - me.currfile.setPath "#{d}#{n}" + me.currfile.setPath "#{d}/#{n}" me.save() , __("Save as"), { file: me.currfile } switch e @@ -68,15 +68,14 @@ class OpenPage extends this.OS.GUI.BaseApplication @open blank, true open: (p,b) -> me = @ - @pathAsDataURL(p) .then (r) -> me.closeDocument() if me.editorSession me.initCanvas() - OdfContainer = new odf.OdfContainer r.reader.result, (c) -> + OdfContainer = new odf.OdfContainer r.data, (c) -> me.canvas.setOdfContainer c, false return me.currfile = "Untitled".asFileHandler() if b - me.currfile.setPath p + if me.currfile then me.currfile.setPath p else me.currfile = p.asFileHandler() me.scheme.set "apptitle", me.currfile.basename me.notify __("File {0} opened", p) .catch (e) -> @@ -391,10 +390,19 @@ class OpenPage extends this.OS.GUI.BaseApplication reader = new FileReader() reader.onloadend = () -> return error(p) if reader.readyState isnt 2 - resolve {reader: reader, fp: fp } + resolve {data: reader.result, fp: fp } reader.readAsDataURL blob , "binary" - + ### + if not isText + + else + fp.read (data) -> + # convert to base64 + b64 = btoa data + dataurl = "data:#{fp.info.mime};base64," + b64 + resolve { reader: {result: dataurl}, fp:fp } + ### image: (e) -> me = @ @@ -406,12 +414,12 @@ class OpenPage extends this.OS.GUI.BaseApplication hiddenImage.style.left = "-99999px" document.body.appendChild hiddenImage hiddenImage.onload = () -> - content = r.reader.result.substring(r.reader.result.indexOf(",") + 1) + content = r.data.substring(r.data.indexOf(",") + 1) #insert image me.textController.removeCurrentSelection() me.imageController.insertImage r.fp.info.mime, content, hiddenImage.width, hiddenImage.height document.body.removeChild hiddenImage - hiddenImage.src = r.reader.result + hiddenImage.src = r.data .catch () -> me.error __("Couldnt load image {0}", p) , __("Select image file"), { mimes: ["image/.*"] } diff --git a/OpenPage/package.json b/OpenPage/package.json index cd58c36..8408503 100644 --- a/OpenPage/package.json +++ b/OpenPage/package.json @@ -6,7 +6,7 @@ "author": "Xuan Sang LE", "email": "xsang.le@gmail.com" }, - "version":"0.0.1-a", + "version":"0.0.2-a", "category":"Other", "icon":"icon.png", "mimes":["application/vnd.oasis.opendocument.text"]