From 1f5fbf002fea0a9b1837120d5cfa84f178d3761b Mon Sep 17 00:00:00 2001 From: mizy <1060950782@163.com> Date: Tue, 16 Aug 2022 15:12:39 +0800 Subject: [PATCH 1/3] add:pages --- .gitignore | 4 +- README.md | 66 +- _config.yml | 2 +- custom.md | 38 + demo/Content/RightBar.js | 505 +- demo/Content/TopBar.js | 3 +- index.js => demo/app.js | 2 +- demo/index.js | 4 +- dist/VEditor.js | 4851 +++++++++++++++++ dist/index.js | 3 + dist/index.js.LICENSE.txt | 53 + dist/index.js.map | 1 + docs/.nojekyll | 1 + docs/_config.yml | 1 + docs/assets/highlight.css | 92 + docs/assets/main.js | 54 + docs/assets/search.js | 1 + docs/assets/style.css | 1224 +++++ docs/assets/widgets.png | Bin 0 -> 480 bytes docs/assets/widgets@2x.png | Bin 0 -> 855 bytes docs/classes/AnchorLine.html | 258 + docs/classes/Controller.html | 545 ++ docs/classes/Graph.html | 344 ++ docs/classes/History.html | 209 + docs/classes/Line.default.html | 510 ++ docs/classes/Minimap.html | 303 + docs/classes/Node.default.html | 466 ++ docs/classes/Schema.default.html | 296 + docs/classes/Utils.BezierLine.html | 265 + docs/classes/Utils.Event.html | 212 + docs/classes/Utils.Path.html | 264 + docs/classes/VEditor.html | 335 ++ docs/functions/Utils.Vector2.addVector.html | 90 + .../Utils.Vector2.getVectorLength.html | 90 + docs/functions/Utils.Vector2.multiple.html | 97 + docs/functions/Utils.Vector2.normalize.html | 95 + docs/functions/Utils.Vector2.subVector.html | 97 + docs/functions/Utils.dom.animate.html | 114 + .../functions/Utils.dom.createSVGElement.html | 95 + docs/functions/Utils.dom.drag.html | 138 + docs/functions/Utils.dom.getAngle.html | 95 + docs/functions/Utils.dom.getDOMRect.html | 95 + docs/functions/Utils.dom.getEase.html | 93 + docs/functions/Utils.dom.setAttrs.html | 95 + docs/functions/Utils.dom.setTransform.html | 97 + docs/functions/Utils.dom.svgWrapper.html | 95 + docs/index.html | 138 + docs/index.md | 37 + .../interfaces/DefaultLine.LabelInstance.html | 124 + docs/interfaces/DefaultLine.LineRender.html | 207 + docs/interfaces/Line.InstanceLine.html | 179 + docs/interfaces/Node.InstanceNode.html | 180 + docs/interfaces/Node.InstanceNodePoint.html | 154 + docs/interfaces/Schema.VEditorData.html | 103 + docs/interfaces/Schema.VEditorNode.html | 161 + docs/interfaces/Schema.VEditorSchema.html | 103 + docs/interfaces/Utils.Position.html | 106 + docs/interfaces/Utils.Vector2.Vector2.html | 104 + docs/interfaces/VEditorOptions.html | 150 + docs/modules.html | 114 + docs/modules/DefaultLine.html | 87 + docs/modules/DefaultNode.html | 85 + docs/modules/Line.html | 85 + docs/modules/Node.html | 87 + docs/modules/Schema.html | 94 + docs/modules/Utils.Vector2.html | 94 + docs/modules/Utils.dom.html | 97 + docs/modules/Utils.html | 104 + docs/variables/DefaultLine.default.html | 77 + docs/variables/DefaultNode.default.html | 76 + docs/variables/Utils.SVGHelper.html | 384 ++ package.json | 10 +- public/demo.html | 9 + public/flowChart.html | 2 +- public/index.html | 14 +- snapshot.png | Bin 120238 -> 0 bytes snapshot1.png | Bin 65428 -> 0 bytes snapshot2.png | Bin 158751 -> 0 bytes src/Model/History.ts | 93 +- src/Model/Schema.ts | 4 + src/Plugins/Minimap.ts | 5 +- src/Shape/Line.ts | 2 +- src/Shape/Node.ts | 5 +- src/Utils/index.ts | 3 +- src/VEditor.ts | 215 +- src/index.ts | 20 +- start.md | 55 + tsconfig.json | 3 +- typedoc.js | 5 + webpack.config.js | 128 +- 90 files changed, 15443 insertions(+), 558 deletions(-) create mode 100644 custom.md rename index.js => demo/app.js (82%) create mode 100644 dist/VEditor.js create mode 100644 dist/index.js create mode 100644 dist/index.js.LICENSE.txt create mode 100644 dist/index.js.map create mode 100644 docs/.nojekyll create mode 100644 docs/_config.yml create mode 100644 docs/assets/highlight.css create mode 100644 docs/assets/main.js create mode 100644 docs/assets/search.js create mode 100644 docs/assets/style.css create mode 100644 docs/assets/widgets.png create mode 100644 docs/assets/widgets@2x.png create mode 100644 docs/classes/AnchorLine.html create mode 100644 docs/classes/Controller.html create mode 100644 docs/classes/Graph.html create mode 100644 docs/classes/History.html create mode 100644 docs/classes/Line.default.html create mode 100644 docs/classes/Minimap.html create mode 100644 docs/classes/Node.default.html create mode 100644 docs/classes/Schema.default.html create mode 100644 docs/classes/Utils.BezierLine.html create mode 100644 docs/classes/Utils.Event.html create mode 100644 docs/classes/Utils.Path.html create mode 100644 docs/classes/VEditor.html create mode 100644 docs/functions/Utils.Vector2.addVector.html create mode 100644 docs/functions/Utils.Vector2.getVectorLength.html create mode 100644 docs/functions/Utils.Vector2.multiple.html create mode 100644 docs/functions/Utils.Vector2.normalize.html create mode 100644 docs/functions/Utils.Vector2.subVector.html create mode 100644 docs/functions/Utils.dom.animate.html create mode 100644 docs/functions/Utils.dom.createSVGElement.html create mode 100644 docs/functions/Utils.dom.drag.html create mode 100644 docs/functions/Utils.dom.getAngle.html create mode 100644 docs/functions/Utils.dom.getDOMRect.html create mode 100644 docs/functions/Utils.dom.getEase.html create mode 100644 docs/functions/Utils.dom.setAttrs.html create mode 100644 docs/functions/Utils.dom.setTransform.html create mode 100644 docs/functions/Utils.dom.svgWrapper.html create mode 100644 docs/index.html create mode 100644 docs/index.md create mode 100644 docs/interfaces/DefaultLine.LabelInstance.html create mode 100644 docs/interfaces/DefaultLine.LineRender.html create mode 100644 docs/interfaces/Line.InstanceLine.html create mode 100644 docs/interfaces/Node.InstanceNode.html create mode 100644 docs/interfaces/Node.InstanceNodePoint.html create mode 100644 docs/interfaces/Schema.VEditorData.html create mode 100644 docs/interfaces/Schema.VEditorNode.html create mode 100644 docs/interfaces/Schema.VEditorSchema.html create mode 100644 docs/interfaces/Utils.Position.html create mode 100644 docs/interfaces/Utils.Vector2.Vector2.html create mode 100644 docs/interfaces/VEditorOptions.html create mode 100644 docs/modules.html create mode 100644 docs/modules/DefaultLine.html create mode 100644 docs/modules/DefaultNode.html create mode 100644 docs/modules/Line.html create mode 100644 docs/modules/Node.html create mode 100644 docs/modules/Schema.html create mode 100644 docs/modules/Utils.Vector2.html create mode 100644 docs/modules/Utils.dom.html create mode 100644 docs/modules/Utils.html create mode 100644 docs/variables/DefaultLine.default.html create mode 100644 docs/variables/DefaultNode.default.html create mode 100644 docs/variables/Utils.SVGHelper.html create mode 100644 public/demo.html delete mode 100644 snapshot.png delete mode 100644 snapshot1.png delete mode 100644 snapshot2.png create mode 100644 start.md create mode 100644 typedoc.js diff --git a/.gitignore b/.gitignore index 77469b6..2f107a0 100644 --- a/.gitignore +++ b/.gitignore @@ -60,6 +60,4 @@ typings/ # next.js build output .next -types/ -dist/ -doc/ \ No newline at end of file +types/ \ No newline at end of file diff --git a/README.md b/README.md index 2ea71f8..a1af86f 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ NebulaGraph VEditor is a highly customizable flow chart library, with which you create flow charts, sequence diagrams, workflow, and more. -![](./snapshot2.png) -![](./snapshot1.png) -![](./snapshot.png) +![](https://user-images.githubusercontent.com/7129229/184819808-13aec715-3056-4e87-a5ee-944a3b4e1703.png) +![](https://user-images.githubusercontent.com/7129229/184819760-615b53b7-d0c3-4e87-8ad3-d76b69db7821.png) +![](https://user-images.githubusercontent.com/7129229/184819660-0f6da546-4d80-4c97-9fa0-2389d4122d0f.png) # Features - Typescript: Natively TS support @@ -22,11 +22,13 @@ npm install @vesoft-inc/veditor ```bash npm run start ``` ++ [Basic Demo](https://vesoft-inc.github.io/nebulagraph-veditor/public/basic.html) ++ [FlowChart Demo](https://vesoft-inc.github.io/nebulagraph-veditor/public/flowChart.html) ++ [React Demo](https://vesoft-inc.github.io/nebulagraph-veditor/public/demo.html) # Build ```bash npm run build - # make declaration npm run makeDts ``` @@ -65,59 +67,9 @@ for(let x = 0;x<10;x++){ console.log(editor.schema.getData()) ``` -## Register Shape -You can refer to src/Shape/Nodes, src/Shape/Lines to register your own shape. - -```javascript -import VEditor from "@vesoft-inc/veditor"; - -let index = 0; -const editor = new VEditor({ dom: document.getElementById("root")}); -// add node -function add(){ - editor.graph.node.addNode({ - uuid:index, - type:"react-svg-node", - name:"test"+index++, - x:window.innerWidth*Math.random(), - y:300*Math.random() - }) -} -// registe react-svg-node -editor.graph.node.registeNode("react-svg-node", { - linkPoints: [{ x: 0, y: 0.5 }, { x: 1, y: 0.5 }], - adsorb: [20, 12], - render: render: (node: InstanceNode) => { - const radius = 30; - // popOver - node.shape = node.shape ? node.shape : document.createElementNS('http://www.w3.org/2000/svg', 'g'); - ReactDOM.render( - <> - - - , - node.shape - ); - return node.shape; - }, -}); -add() -// result data -console.log(editor.schema.getData()) -``` - -# API -See the declaration file for more details. +# API +- [Get Start](./docs/start.md) +- [API](./api/_index.md) # License diff --git a/_config.yml b/_config.yml index 3397c9a..c419263 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1 @@ -theme: jekyll-theme-architect \ No newline at end of file +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/custom.md b/custom.md new file mode 100644 index 0000000..6a308ff --- /dev/null +++ b/custom.md @@ -0,0 +1,38 @@ + +# Register Shape +You can refer to src/Shape/Nodes, src/Shape/Lines to register your own shape. + + +## Registe React Node +extend VEditor.Default.Node +```javascript + +editor.graph.node.registeNode("react-svg-node", { + linkPoints: [{ x: 0, y: 0.5 }, { x: 1, y: 0.5 }], + adsorb: [20, 12], + render: render: (node: InstanceNode) => { + const radius = 30; + // popOver + node.shape = node.shape ? node.shape : document.createElementNS('http://www.w3.org/2000/svg', 'g'); + ReactDOM.render( + <> + + + , + node.shape + ); + return node.shape; + }, +}); +// result data +``` diff --git a/demo/Content/RightBar.js b/demo/Content/RightBar.js index 5cbff26..3a81daa 100644 --- a/demo/Content/RightBar.js +++ b/demo/Content/RightBar.js @@ -1,272 +1,273 @@ import React, { Fragment, PureComponent } from "react"; import { Table, Select, Input } from "antd"; import { Components, refreshs } from "../Components/index"; -import { SVGHelper } from "@"; +import { Utils } from "@"; +const { SVGHelper } = Utils; class RightBar extends PureComponent { - state = {}; - componentDidMount() { - this.addEvents(this.props); - this.updateNodes(); - } + state = {}; + componentDidMount() { + this.addEvents(this.props); + this.updateNodes(); + } - updateNodes = () => { - const { - editor: { - schema: { data }, - graph: { - node: { nodes }, - line: { lines } - } - } - } = this.props; - this.rankNodes = []; - const dataArray = Object.keys(data.nodesMap).map(key => data.nodesMap[key]); - // 有向图排序刷新 - this.rankData(dataArray, data.linesMap); - this.rankNodes.forEach(node => { - const toNode = nodes[node.uuid]; - const fromLines = toNode.fromLines; - fromLines.forEach(line => { - const fromData = data.nodesMap[data.linesMap[line].from]; - this.refreshNode(fromData, toNode); - }); - }); - }; + updateNodes = () => { + const { + editor: { + schema: { data }, + graph: { + node: { nodes }, + line: { lines } + } + } + } = this.props; + this.rankNodes = []; + const dataArray = Object.keys(data.nodesMap).map(key => data.nodesMap[key]); + // 有向图排序刷新 + this.rankData(dataArray, data.linesMap); + this.rankNodes.forEach(node => { + const toNode = nodes[node.uuid]; + const fromLines = toNode.fromLines; + fromLines.forEach(line => { + const fromData = data.nodesMap[data.linesMap[line].from]; + this.refreshNode(fromData, toNode); + }); + }); + }; - // 节点数据有向图排序 - rankData(data, linesMap) { - let deleteLines = []; - const others = []; - data.forEach(node => { - let nodeId = node.uuid; - node.indexDepth = 0; - node.fromLines = []; - for (let key in linesMap) { - const line = linesMap[key]; - if (line.to === nodeId) { - node.indexDepth++; - } - if (line.from === nodeId) { - line.uuid = key; - node.fromLines.push(line); - } - } - if (node.indexDepth === 0) { - this.rankNodes.push(node); - deleteLines = deleteLines.concat(node.fromLines); - } else { - others.push(node); - } - }); - if (others.length) { - let newLinesMap = JSON.parse(JSON.stringify(linesMap)); - deleteLines.forEach(line => { - delete newLinesMap[line.uuid]; - }); - this.rankData(others, newLinesMap); - } - } + // 节点数据有向图排序 + rankData(data, linesMap) { + let deleteLines = []; + const others = []; + data.forEach(node => { + let nodeId = node.uuid; + node.indexDepth = 0; + node.fromLines = []; + for (let key in linesMap) { + const line = linesMap[key]; + if (line.to === nodeId) { + node.indexDepth++; + } + if (line.from === nodeId) { + line.uuid = key; + node.fromLines.push(line); + } + } + if (node.indexDepth === 0) { + this.rankNodes.push(node); + deleteLines = deleteLines.concat(node.fromLines); + } else { + others.push(node); + } + }); + if (others.length) { + let newLinesMap = JSON.parse(JSON.stringify(linesMap)); + deleteLines.forEach(line => { + delete newLinesMap[line.uuid]; + }); + this.rankData(others, newLinesMap); + } + } - addEvents(props) { - props.editor.on("load", this.updateNodes); - props.editor.graph.on("line:change", this.onLineChange); - props.editor.graph.on("line:add", this.onLineChange); - props.editor.graph.on("line:remove", this.onLineChange); - // props.editor.graph.on("node:remove", this.onNodeRemove); - } + addEvents(props) { + props.editor.on("load", this.updateNodes); + props.editor.graph.on("line:change", this.onLineChange); + props.editor.graph.on("line:add", this.onLineChange); + props.editor.graph.on("line:remove", this.onLineChange); + // props.editor.graph.on("node:remove", this.onNodeRemove); + } - onNodeRemove = ({ node }) => { - const { - editor: { - graph: { - node: { nodes } - }, - schema - } - } = this.props; - node.toLines.forEach(item => { - const before = schema.data.linesMap[item]; - const toNode = nodes[before.to]; - // 更新to的节点,然后遍历子节点 - this.updateParentNode(toNode, before); - }); - }; + onNodeRemove = ({ node }) => { + const { + editor: { + graph: { + node: { nodes } + }, + schema + } + } = this.props; + node.toLines.forEach(item => { + const before = schema.data.linesMap[item]; + const toNode = nodes[before.to]; + // 更新to的节点,然后遍历子节点 + this.updateParentNode(toNode, before); + }); + }; - onLineChange = ({ line, before, type, byNode }) => { - const { - editor: { - graph: { - line: { lines }, - node: { nodes } - } - } - } = this.props; - const { activeNode = {} } = this.props; - if (type === "remove" && nodes[line.data.to]) { - this.updateParentNode(nodes[line.data.to], before); - } - if (type === "add") { - this.updateNode(nodes[line.data.from]); - } - if (type === "change") { - this.updateNode(nodes[line.data.from]); - this.updateParentNode(nodes[before.to], before); - } - }; + onLineChange = ({ line, before, type, byNode }) => { + const { + editor: { + graph: { + line: { lines }, + node: { nodes } + } + } + } = this.props; + const { activeNode = {} } = this.props; + if (type === "remove" && nodes[line.data.to]) { + this.updateParentNode(nodes[line.data.to], before); + } + if (type === "add") { + this.updateNode(nodes[line.data.from]); + } + if (type === "change") { + this.updateNode(nodes[line.data.from]); + this.updateParentNode(nodes[before.to], before); + } + }; - updateParentNode(parentNode, before) { - const { - editor: { schema } - } = this.props; - const { data } = parentNode; - const refresh = refreshs[data.component]; - if (!refresh) return false; - const newData = refresh( - { - before - }, - data, - schema.data - ); - schema.data.nodesMap[data.uuid] = newData; - this.updateNode(parentNode); - } + updateParentNode(parentNode, before) { + const { + editor: { schema } + } = this.props; + const { data } = parentNode; + const refresh = refreshs[data.component]; + if (!refresh) return false; + const newData = refresh( + { + before + }, + data, + schema.data + ); + schema.data.nodesMap[data.uuid] = newData; + this.updateNode(parentNode); + } - /** - * 输出更新 - */ - onOutputChange = data => { - const { editor } = this.props; - const { activeNode = {} } = this.state; - const { uuid } = activeNode; - // 步骤名称 - activeNode.output = data; - // 更新node - const node = editor.graph.node.nodes[uuid]; - node.data = activeNode; - editor.schema.data.nodesMap[uuid] = node.data; - this.setState({ ...this.state }); - this.updateNode(node); - }; + /** + * 输出更新 + */ + onOutputChange = data => { + const { editor } = this.props; + const { activeNode = {} } = this.state; + const { uuid } = activeNode; + // 步骤名称 + activeNode.output = data; + // 更新node + const node = editor.graph.node.nodes[uuid]; + node.data = activeNode; + editor.schema.data.nodesMap[uuid] = node.data; + this.setState({ ...this.state }); + this.updateNode(node); + }; - /** - * 配置变化 - */ - onChange = data => { - const { editor } = this.props; - const { uuid } = data; + /** + * 配置变化 + */ + onChange = data => { + const { editor } = this.props; + const { uuid } = data; - // 步骤名称 - data.name = data.config.name; - // 更新editor - const node = editor.graph.node.nodes[uuid]; - this.changeTiemout && clearTimeout(this.changeTiemout); - this.changeTiemout = setTimeout(() => { - if (JSON.stringify(node.data) === JSON.stringify(data)) { - return false; - } - node.data.config = data.config; - node.data.name = data.config.name; - editor.graph.fire("node:change", { node }); - node.dom.querySelector("text").innerHTML = data.config.name; - }, 300); - }; + // 步骤名称 + data.name = data.config.name; + // 更新editor + const node = editor.graph.node.nodes[uuid]; + this.changeTiemout && clearTimeout(this.changeTiemout); + this.changeTiemout = setTimeout(() => { + if (JSON.stringify(node.data) === JSON.stringify(data)) { + return false; + } + node.data.config = data.config; + node.data.name = data.config.name; + editor.graph.fire("node:change", { node }); + node.dom.querySelector("text").innerHTML = data.config.name; + }, 300); + }; - // 递归更节点新树输入源 - updateNode(node) { - const { - editor: { - graph: { - line: { lines }, - node: { nodes } - }, - schema - } - } = this.props; - const { data } = node; - const toLines = node.toLines; - const toNodes = []; - toLines.forEach(lineId => { - toNodes.push(nodes[lines[lineId].data.to]); - }); - toNodes.forEach(async toNode => { - await this.refreshNode(data, toNode); - this.updateNode(toNode); - }); - } + // 递归更节点新树输入源 + updateNode(node) { + const { + editor: { + graph: { + line: { lines }, + node: { nodes } + }, + schema + } + } = this.props; + const { data } = node; + const toLines = node.toLines; + const toNodes = []; + toLines.forEach(lineId => { + toNodes.push(nodes[lines[lineId].data.to]); + }); + toNodes.forEach(async toNode => { + await this.refreshNode(data, toNode); + this.updateNode(toNode); + }); + } - async refreshNode(data, toNode) { - const { - editor: { - schema, - graph: { - node: { nodes } - } - } - } = this.props; - const refresh = refreshs[toNode.data.component]; - // 上游数据修改导致下属节点全部更新输入 - let newData = refresh ? await refresh(data, toNode.data, schema.data) : toNode.data; - // 刷新动画 - SVGHelper.animate( - 0, - 100, - val => { - const num = val < 50 ? 50 - val : val - 50; - SVGHelper.setAttrs(toNode.shape, { - fillOpacity: num / 50 - }); - }, - 1500, - 'ease-in-out' - ); + async refreshNode(data, toNode) { + const { + editor: { + schema, + graph: { + node: { nodes } + } + } + } = this.props; + const refresh = refreshs[toNode.data.component]; + // 上游数据修改导致下属节点全部更新输入 + let newData = refresh ? await refresh(data, toNode.data, schema.data) : toNode.data; + // 刷新动画 + SVGHelper.animate( + 0, + 100, + val => { + const num = val < 50 ? 50 - val : val - 50; + SVGHelper.setAttrs(toNode.shape, { + fillOpacity: num / 50 + }); + }, + 1500, + 'ease-in-out' + ); - toNode.data = newData; - schema.data.nodesMap[toNode.data.uuid] = newData; - return toNode; - } + toNode.data = newData; + schema.data.nodesMap[toNode.data.uuid] = newData; + return toNode; + } - /** - * 渲染 - */ - render() { - const { activeNode } = this.state; - const { editor } = this.props; - if (!editor || !activeNode) return null; - const input = []; - const nodes = editor.graph.node.nodes; - const lines = editor.graph.line.lines; - const node = nodes[activeNode.uuid] || {}; - const fromLines = node.fromLines || []; - fromLines.forEach(lineId => { - const line = lines[lineId]; - input.push(nodes[line.data.from].data); - }); + /** + * 渲染 + */ + render() { + const { activeNode } = this.state; + const { editor } = this.props; + if (!editor || !activeNode) return null; + const input = []; + const nodes = editor.graph.node.nodes; + const lines = editor.graph.line.lines; + const node = nodes[activeNode.uuid] || {}; + const fromLines = node.fromLines || []; + fromLines.forEach(lineId => { + const line = lines[lineId]; + input.push(nodes[line.data.from].data); + }); - if (!input.length) { - input[0] = { output: [] }; - } - const Component = Components[activeNode.component]; - return ( -
-
{activeNode.name}
-
- {Component && ( - - )} -
-
- ); - } + if (!input.length) { + input[0] = { output: [] }; + } + const Component = Components[activeNode.component]; + return ( +
+
{activeNode.name}
+
+ {Component && ( + + )} +
+
+ ); + } } export default RightBar; diff --git a/demo/Content/TopBar.js b/demo/Content/TopBar.js index 96bb85b..f84d944 100644 --- a/demo/Content/TopBar.js +++ b/demo/Content/TopBar.js @@ -1,6 +1,7 @@ import React, { Fragment, PureComponent } from "react"; import { Icon, Tooltip, message, Modal, Input } from "antd"; -import { SVGHelper, BezierLine } from "@"; +import { Utils } from "@"; +const { SVGHelper } = Utils; class TopBar extends PureComponent { componentWillReceiveProps(props) { if (props.editor && !this.props.editor) { diff --git a/index.js b/demo/app.js similarity index 82% rename from index.js rename to demo/app.js index bdf5dfa..5f7ab16 100644 --- a/index.js +++ b/demo/app.js @@ -1,4 +1,4 @@ import React from "react"; import ReactDom from "react-dom"; -import Editor from "./demo/index"; +import Editor from "./index"; if (document.getElementById("root")) ReactDom.render(, document.getElementById("root")); diff --git a/demo/index.js b/demo/index.js index debf88a..cda1e90 100644 --- a/demo/index.js +++ b/demo/index.js @@ -2,7 +2,7 @@ import React, { Fragment, PureComponent } from 'react'; import ReactDom from 'react-dom'; import 'antd/dist/antd.css'; import './index.less'; -import VEditor, { SVGHelper } from '../src/index.ts'; +import VEditor, { Utils } from '../src/index.ts'; import LeftBar from './Content/LeftBar'; import RightBar from './Content/RightBar'; import TopBar from './Content/TopBar'; @@ -10,7 +10,7 @@ import { message, Popover, Drawer, Modal } from 'antd'; import RightMenu from './Content/RightMenu'; import testdata from './testdata'; window.VEditor = VEditor; - +const { SVGHelper } = Utils; class Editor extends PureComponent { state = {}; // 编辑器实例 diff --git a/dist/VEditor.js b/dist/VEditor.js new file mode 100644 index 0000000..b6e30f4 --- /dev/null +++ b/dist/VEditor.js @@ -0,0 +1,4851 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("uuid"), require("dagre"), require("canvg")); + else if(typeof define === 'function' && define.amd) + define(["uuid", "dagre", "canvg"], factory); + else if(typeof exports === 'object') + exports["VEditor"] = factory(require("uuid"), require("dagre"), require("canvg")); + else + root["VEditor"] = factory(root["uuid"], root["dagre"], root["canvg"]); +})(self, (__WEBPACK_EXTERNAL_MODULE__459__, __WEBPACK_EXTERNAL_MODULE__987__, __WEBPACK_EXTERNAL_MODULE__973__) => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 274: +/***/ ((module, exports, __webpack_require__) => { + +exports = module.exports = __webpack_require__(252)(false); +// imports + + +// module +exports.push([module.id, "@keyframes dashing {\n from {\n stroke-dashoffset: 200;\n }\n to {\n stroke-dashoffset: 0;\n }\n}\n.ve-editor {\n width: 100%;\n height: 100%;\n position: relative;\n}\n.ve-editor .ve-editor-back {\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 0;\n left: 0;\n top: 0;\n}\n.ve-editor .ve-minimap {\n position: absolute;\n top: 10px;\n right: 10px;\n background: #fff;\n border: 1px solid #cecece;\n border-radius: 5px;\n overflow: hidden;\n width: 160px;\n height: 127px;\n}\n.ve-editor .ve-minimap .drag-rect {\n position: absolute;\n left: 0px;\n box-sizing: content-box;\n top: 0px;\n border: 2px solid #08c;\n cursor: pointer;\n transition: all 200ms ease;\n}\n.ve-editor .ve-minimap .drag-point {\n width: 10px;\n height: 10px;\n border-radius: 5px;\n border: 2px solid #08c;\n background: #fff;\n position: absolute;\n right: -5px;\n bottom: -5px;\n cursor: nwse-resize;\n}\n.ve-editor > .ve-editor-svg {\n cursor: grab;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.ve-editor > .ve-editor-svg svg {\n position: absolute;\n left: 0;\n top: 0;\n outline: none;\n}\n.ve-editor > .ve-editor-svg * {\n transition: x, y, transform, cx, cy, width, stroke, height, fill 400ms;\n outline: none;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-link-points {\n cursor: crosshair;\n display: none;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-link-points:hover,\n.ve-editor > .ve-editor-svg .ve-node .ve-link-points.hover {\n fill: #4c79ff;\n cursor: crosshair;\n display: block;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-node-shape {\n cursor: move;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-node-shape:hover > .icon-node {\n stroke: #4c79ff;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-node-shape.active > .icon-node {\n transition: stroke 400ms;\n stroke: #4c79ff;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-node-shape.success .icon-node {\n stroke: green;\n fill: #fff;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-node-shape.error .icon-node {\n stroke: red;\n}\n.ve-editor > .ve-editor-svg .ve-node .ve-node-shape.running .icon-node {\n stroke: #4c79ff;\n}\n.ve-editor > .ve-editor-svg .ve-line .ve-line-path {\n transition: stroke-dasharray 300ms ease-out;\n}\n.ve-editor > .ve-editor-svg .ve-line .ve-shdow-path {\n stroke: transparent;\n stroke-width: 3;\n fill: none;\n}\n.ve-editor > .ve-editor-svg .ve-line.active .ve-line-shape,\n.ve-editor > .ve-editor-svg .ve-line:hover .ve-line-shape {\n opacity: 0.5;\n}\n.ve-editor > .ve-editor-svg .ve-line.active .ve-line-arrow,\n.ve-editor > .ve-editor-svg .ve-line:hover .ve-line-arrow {\n opacity: 0.5;\n}\n.ve-editor > .ve-editor-svg .ve-line.running .ve-line-path {\n stroke-dasharray: 5 !important;\n animation: dashing 5s linear infinite;\n}\n.ve-editor > .ve-editor-svg .ve-line .ve-line-shape {\n cursor: pointer;\n}\n.ve-editor > .ve-editor-svg .ve-line .ve-line-arrow {\n cursor: crosshair;\n}\n.ve-editor > .ve-editor-svg .ve-line .ve-line-label text {\n text-anchor: middle;\n}\n.ve-editor > .ve-editor-svg .anchor-line {\n stroke: #4c79ff;\n}\n.ve-editor > .ve-editor-html {\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.ve-editor .anchor-back {\n position: absolute;\n top: 0;\n left: 0;\n}\n.ve-node-wrapper {\n border: 1px solid #08c;\n border-radius: 8px;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n background-color: #fff;\n align-items: center;\n}\n", ""]); + +// exports + + +/***/ }), + +/***/ 252: +/***/ ((module) => { + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +module.exports = function(useSourceMap) { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + return this.map(function (item) { + var content = cssWithMappingToString(item, useSourceMap); + if(item[2]) { + return "@media " + item[2] + "{" + content + "}"; + } else { + return content; + } + }).join(""); + }; + + // import a list of modules into the list + list.i = function(modules, mediaQuery) { + if(typeof modules === "string") + modules = [[null, modules, ""]]; + var alreadyImportedModules = {}; + for(var i = 0; i < this.length; i++) { + var id = this[i][0]; + if(typeof id === "number") + alreadyImportedModules[id] = true; + } + for(i = 0; i < modules.length; i++) { + var item = modules[i]; + // skip already imported module + // this implementation is not 100% perfect for weird media query combinations + // when a module is imported multiple times with different media queries. + // I hope this will never occur (Hey this way we have smaller bundles) + if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { + if(mediaQuery && !item[2]) { + item[2] = mediaQuery; + } else if(mediaQuery) { + item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; + } + list.push(item); + } + } + }; + return list; +}; + +function cssWithMappingToString(item, useSourceMap) { + var content = item[1] || ''; + var cssMapping = item[3]; + if (!cssMapping) { + return content; + } + + if (useSourceMap && typeof btoa === 'function') { + var sourceMapping = toComment(cssMapping); + var sourceURLs = cssMapping.sources.map(function (source) { + return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' + }); + + return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); + } + + return [content].join('\n'); +} + +// Adapted from convert-source-map (MIT) +function toComment(sourceMap) { + // eslint-disable-next-line no-undef + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); + var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; + + return '/*# ' + data + ' */'; +} + + +/***/ }), + +/***/ 176: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var content = __webpack_require__(274); + +if(typeof content === 'string') content = [[module.id, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(723)(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ 723: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +var stylesInDom = {}; + +var memoize = function (fn) { + var memo; + + return function () { + if (typeof memo === "undefined") memo = fn.apply(this, arguments); + return memo; + }; +}; + +var isOldIE = memoize(function () { + // Test for IE <= 9 as proposed by Browserhacks + // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 + // Tests for existence of standard globals is to allow style-loader + // to operate correctly into non-standard environments + // @see https://github.com/webpack-contrib/style-loader/issues/177 + return window && document && document.all && !window.atob; +}); + +var getTarget = function (target) { + return document.querySelector(target); +}; + +var getElement = (function (fn) { + var memo = {}; + + return function(target) { + // If passing function in options, then use it for resolve "head" element. + // Useful for Shadow Root style i.e + // { + // insertInto: function () { return document.querySelector("#foo").shadowRoot } + // } + if (typeof target === 'function') { + return target(); + } + if (typeof memo[target] === "undefined") { + var styleTarget = getTarget.call(this, target); + // Special case to return head of iframe instead of iframe itself + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch(e) { + styleTarget = null; + } + } + memo[target] = styleTarget; + } + return memo[target] + }; +})(); + +var singleton = null; +var singletonCounter = 0; +var stylesInsertedAtTop = []; + +var fixUrls = __webpack_require__(947); + +module.exports = function(list, options) { + if (typeof DEBUG !== "undefined" && DEBUG) { + if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); + } + + options = options || {}; + + options.attrs = typeof options.attrs === "object" ? options.attrs : {}; + + // Force single-tag solution on IE6-9, which has a hard limit on the # of
+
+ +
+
+
+
+ +

Class AnchorLine

+
+

Hierarchy

+
    +
  • AnchorLine
+
+
+
+ +
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
anchorDistance: number
+
+ +
anchorLines: {}
+
+

Type declaration

+
    +
    + +
    anchorXLength: number
    +
    + +
    anchorYLength: number
    +
    + +
    anchors: Position[]
    +
    + +
    graph: Graph
    +
    + +
    hideAchor: boolean
    +
    + +
    hideAchorLine: boolean
    +
    + +
    +
    + +
    paper: SVGGElement
    +
    + +
    path: SVGPathElement
    +
    +

    Methods

    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/Controller.html b/docs/classes/Controller.html new file mode 100644 index 0000000..623be84 --- /dev/null +++ b/docs/classes/Controller.html @@ -0,0 +1,545 @@ +Controller | @vesoft-inc/veditor
    +
    + +
    +
    +
    +
    + +

    Class Controller

    +
    +

    控制器

    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    achors: number[] = []
    +
    + +
    dispatch: ((event: string, data?: any) => void) = ...
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (event: string, data?: any): void
      • +
      • +
        +

        Parameters

        +
          +
        • +
          event: string
        • +
        • +
          Optional data: any
        +

        Returns void

    +
    + +
    editor: VEditor
    +
    + +
    events: {} = {}
    +
    +

    Type declaration

    +
      +
      + +
      paper: SVGGElement
      +
      + +
      scale: number = 1
      +
      + +
      scaleRatio: number = 0.01
      +
      + +
      startPosition: { x: any; y: any }
      +
      +

      Type declaration

      +
        +
      • +
        x: any
      • +
      • +
        y: any
      +
      + +
      status: string
      +
      + +
      svg: SVGSVGElement
      +
      + +
      x: number = 0
      +
      + +
      y: number = 0
      +
      +

      Methods

      +
      + +
        + +
      • +

        自适应,支持

        +
        +
        +

        Parameters

        +
          +
        • +
          center: boolean = true
        • +
        • +
          vertical: boolean = true
        +

        Returns Promise<void>

      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          event: string
        • +
        • +
          Optional data: any
        +

        Returns void

      +
      + +
      +
      + +
        + +
      • +

        移动到指定位置

        +
        +
        +

        Parameters

        +
          +
        • +
          x: number
        • +
        • +
          y: number
        +

        Returns void

      +
      + +
        + +
      • +

        关闭绑定的事件

        +
        +
        +

        Parameters

        +
          +
        • +
          event: string
        • +
        • +
          Optional offFunc: Function
        +

        Returns void

      +
      + +
        + +
      • +

        箭头

        +
        +
        +

        Parameters

        +
          +
        • +
          event: string
        • +
        • +
          func: Function
        • +
        • +
          Optional index: number
        +

        Returns void

      +
      + +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          e: WheelEvent
        +

        Returns void

      +
      + +
        + +
      • +

        移动到指定位置

        +
        +
        +

        Parameters

        +
          +
        • +
          x: number
        • +
        • +
          y: number
        +

        Returns void

      +
      + +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          ev: MouseEvent
        +

        Returns void

      +
      + +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          ev: MouseEvent
        +

        Returns void

      +
      + +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          ev: MouseEvent
        +

        Returns void

      +
      + +
        + +
      • +

        做指定转换

        +
        +
        +

        Parameters

        +
          +
        • +
          newScale: number
        • +
        • +
          x: number = 0
        • +
        • +
          y: number = 0
        +

        Returns void

      +
      + +
      +
      + +
        + +
      • +

        缩放

        +
        +
        +

        Parameters

        +
          +
        • +
          newScale: any
        • +
        • +
          cx: number = 0
        • +
        • +
          cy: number = 0
        +

        Returns void

      +
      + +
        + +
      • +

        滚动到指定位置

        +
        +
        +

        Parameters

        +
          +
        • +
          newScale: number
        +

        Returns void

      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/docs/classes/Graph.html b/docs/classes/Graph.html new file mode 100644 index 0000000..0d12a90 --- /dev/null +++ b/docs/classes/Graph.html @@ -0,0 +1,344 @@ +Graph | @vesoft-inc/veditor
      +
      + +
      +
      +
      +
      + +

      Class Graph

      +
      +

      Hierarchy

      +
      +
      +
      +
      + +
      +
      +

      Constructors

      +
      + +
      +
      +

      Properties

      +
      + +
      anchorLine: AnchorLine
      +
      + +
      +
      + +
      dispatch: ((event: string, data?: any) => void) = ...
      +
      +

      Type declaration

      +
        +
      • +
          +
        • (event: string, data?: any): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            event: string
          • +
          • +
            Optional data: any
          +

          Returns void

      +
      + +
      editor: VEditor
      +
      + +
      events: {} = {}
      +
      +

      Type declaration

      +
        +
        + +
        +
        + +
        linkStatus: string
        +
        + +
        mode: "view" | "edit"
        +
        + +
        +
        +

        Methods

        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
          + +
        • +
          +

          Parameters

          +
            +
          • +
            event: string
          • +
          • +
            Optional data: any
          +

          Returns void

        +
        + +
        +
        + +
          + +
        • +

          关闭绑定的事件

          +
          +
          +

          Parameters

          +
            +
          • +
            event: string
          • +
          • +
            Optional offFunc: Function
          +

          Returns void

        +
        + +
          + +
        • +

          箭头

          +
          +
          +

          Parameters

          +
            +
          • +
            event: string
          • +
          • +
            func: Function
          • +
          • +
            Optional index: number
          +

          Returns void

        +
        + +
          + +
        • +
          +

          Parameters

          +
            +
          • +
            e: KeyboardEvent
          +

          Returns boolean

        +
        + +
        +
        +
        +

        Generated using TypeDoc

        +
        \ No newline at end of file diff --git a/docs/classes/History.html b/docs/classes/History.html new file mode 100644 index 0000000..c7f39ff --- /dev/null +++ b/docs/classes/History.html @@ -0,0 +1,209 @@ +History | @vesoft-inc/veditor
        +
        + +
        +
        +
        +
        + +

        Class History

        +
        +

        History

        +
        +
        +

        Hierarchy

        +
          +
        • History
        +
        +
        +
        + +
        +
        +

        Constructors

        +
        +
        +

        Properties

        +
        +
        +

        Methods

        +
        +
        +

        Constructors

        +
        + +
        +
        +

        Properties

        +
        + +
        index: number = -1
        +
        + +
        schema: Schema.default
        +
        + +
        schemaList: string[] = []
        +
        +

        Methods

        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
          + +
        • +
          +

          Parameters

          +
            +
          • +
            index: number
          • +
          • +
            data: string
          +

          Returns void

        +
        + +
        +
        +
        +

        Generated using TypeDoc

        +
        \ No newline at end of file diff --git a/docs/classes/Line.default.html b/docs/classes/Line.default.html new file mode 100644 index 0000000..9527e12 --- /dev/null +++ b/docs/classes/Line.default.html @@ -0,0 +1,510 @@ +default | @vesoft-inc/veditor
        +
        + +
        +
        +
        +
        + +

        Class default

        +
        +

        Hierarchy

        +
          +
        • default
        +
        +
        +
        + +
        +
        +

        Constructors

        +
        + +
        +
        +

        Properties

        +
        + +
        activeLine: InstanceLine
        +
        + +
        allLinkPoints: InstanceNodePoint[]
        +
        + +
        graph: Graph
        +
        + +
        hoverLinkPoint: InstanceNodePoint
        +
        + +
        lineG: SVGGElement
        +
        + +
        lines: Record<string, InstanceLine>
        +
        + +
        +
        + +
        paper: SVGGElement
        +
        + +
        shapes: Record<string, LineRender>
        +
        + +
        tempLine: { data: VEditorLine; dom: SVGPathElement }
        +
        +

        Type declaration

        +
        +
        + +
        tempLineRender: { render: (() => SVGPathElement); renderPath: ((__namedParameters: Object, line: { data: VEditorLine; dom: SVGPathElement }) => void) } = ...
        +
        +

        Type declaration

        +
          +
        • +
          render: (() => SVGPathElement)
          +
            +
          • +
              +
            • (): SVGPathElement
            • +
            • +

              Returns SVGPathElement

        • +
        • +
          renderPath: ((__namedParameters: Object, line: { data: VEditorLine; dom: SVGPathElement }) => void)
          +
            +
          • +
              +
            • (__namedParameters: Object, line: { data: VEditorLine; dom: SVGPathElement }): void
            • +
            • +
              +

              Parameters

              +
                +
              • +
                __namedParameters: Object
              • +
              • +
                line: { data: VEditorLine; dom: SVGPathElement }
                +
              +

              Returns void

        +
        +

        Methods

        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
          + +
        • +

          检查是否生成新线

          +
          +

          Returns void

        +
        + +
        +
        + +
          + +
        • +

          删除线

          +
          +
          +

          Parameters

          +
            +
          • +
            data: string | VEditorLine
          • +
          • +
            notEvent: boolean = false
          • +
          • +
            byNode: boolean = false
          +

          Returns void

        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
          + +
        • +

          取消激活

          +
          +

          Returns void

        +
        + +
        +
        + +
        +
        + +
          + +
        • +

          重绘某个线

          +
          +
          +

          Parameters

          +
            +
          • +
            data: string | VEditorLine
          • +
          • +
            rerenderShape: boolean = true
          +

          Returns void

        +
        +
        +

        Generated using TypeDoc

        +
        \ No newline at end of file diff --git a/docs/classes/Minimap.html b/docs/classes/Minimap.html new file mode 100644 index 0000000..f23bb28 --- /dev/null +++ b/docs/classes/Minimap.html @@ -0,0 +1,303 @@ +Minimap | @vesoft-inc/veditor
        +
        + +
        +
        +
        +
        + +

        Class Minimap

        +
        +

        Hierarchy

        +
          +
        • Minimap
        +
        +
        +
        + +
        +
        +

        Constructors

        +
        + +
        +
        +

        Properties

        +
        + +
        canvas: HTMLCanvasElement
        +
        + +
        container: HTMLDivElement
        +
        + +
        converting: Canvg
        +
        + +
        ctx: CanvasRenderingContext2D
        +
        + +
        drag: HTMLDivElement
        +
        + +
        dragBBox: { height: number; width: number }
        +
        +

        Type declaration

        +
          +
        • +
          height: number
        • +
        • +
          width: number
        +
        + +
        dragPoint: HTMLDivElement
        +
        + +
        dragStart: Position
        +
        + +
        dragStartBBox: DOMRect
        +
        + +
        editor: VEditor
        +
        + +
        height: number
        +
        + +
        limitScale: number
        +
        + +
        padding: number
        +
        + +
        scale: number
        +
        + +
        svgBBox: DOMRect
        +
        + +
        timeout: any
        +
        + +
        width: number
        +
        +

        Methods

        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        +
        +

        Generated using TypeDoc

        +
        \ No newline at end of file diff --git a/docs/classes/Node.default.html b/docs/classes/Node.default.html new file mode 100644 index 0000000..ade4f78 --- /dev/null +++ b/docs/classes/Node.default.html @@ -0,0 +1,466 @@ +default | @vesoft-inc/veditor
        +
        + +
        +
        +
        +
        + +

        Class default

        +
        +

        Hierarchy

        +
          +
        • default
        +
        +
        +
        + +
        +
        +

        Constructors

        +
        + +
        +
        +

        Properties

        +
        + +
        actives: {}
        +
        +

        Type declaration

        +
          +
          + +
          copyNode: {}
          +
          +

          Type declaration

          +
            +
            + +
            destroyFunc: Function[]
            +
            + +
            graph: Graph
            +
            + +
            nodeG: SVGGElement
            +
            + +
            nodes: Record<string, InstanceNode>
            +
            + +
            paper: SVGGElement
            +
            + +
            shadow: SVGElement
            +
            + +
            shapes: { [key: string]: NodeRender }
            +
            +

            Type declaration

            +
            +
            + +
            timeout: Timeout
            +
            + +
            tmpLinkPoints: InstanceNode[]
            +
            +

            Methods

            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
              + +
            • +
              +

              Parameters

              +
                +
              • +
                type: string
              • +
              • +
                data: NodeRender
              • +
              • +
                extend: string = "default"
              +

              Returns void

            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
              + +
            • +

              根据数据更新节点位置

              +
              +
              +

              Parameters

              +
                +
              • +
                input: string | VEditorNode
              • +
              • +
                rerenderShape: boolean = false
              +

              Returns void

            +
            +
            +

            Generated using TypeDoc

            +
            \ No newline at end of file diff --git a/docs/classes/Schema.default.html b/docs/classes/Schema.default.html new file mode 100644 index 0000000..9b69fe1 --- /dev/null +++ b/docs/classes/Schema.default.html @@ -0,0 +1,296 @@ +default | @vesoft-inc/veditor
            +
            + +
            +
            +
            +
            + +

            Class default

            +
            +

            Schema

            +
            +
            +

            Hierarchy

            +
              +
            • default
            +
            +
            +
            + +
            +
            +

            Constructors

            +
            + +
            +
            +

            Properties

            +
            + +
            +
            + +
            editor: VEditor
            +
            + +
            history: History
            +
            +

            Methods

            +
            + +
              + +
            • +

              格式化有向图

              +
              +

              Returns Promise<void>

            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            + +
              + +
            • +

              历史入栈最新数据

              +
              +

              Returns void

            +
            + +
            +
            + +
              + +
            • +

              渲染数据

              +
              +

              Returns Promise<void>

            +
            + +
            +
            + +
            +
            + +
            +
            +
            +

            Generated using TypeDoc

            +
            \ No newline at end of file diff --git a/docs/classes/Utils.BezierLine.html b/docs/classes/Utils.BezierLine.html new file mode 100644 index 0000000..de867ae --- /dev/null +++ b/docs/classes/Utils.BezierLine.html @@ -0,0 +1,265 @@ +BezierLine | @vesoft-inc/veditor
            +
            + +
            +
            +
            +
            + +

            Class BezierLine

            +
            +

            Hierarchy

            +
              +
            • BezierLine
            +
            +
            +
            + +
            +
            +

            Constructors

            +
            +
            +

            Properties

            +
            lengths +v0 +v1 +v2 +v3 +
            +
            +

            Methods

            +
            +
            +

            Constructors

            +
            + +
            +
            +

            Properties

            +
            + +
            lengths: { length: number; x: number; y: number }[] = []
            +
            + +
            +
            + +
            +
            + +
            +
            + +
            +
            +

            Methods

            +
            + +
              + +
            • +
              +

              Parameters

              +
                +
              • +
                t: number
              +

              Returns number

            +
            + +
              + +
            • +

              获取线总长度

              + +

              Returns

              +
              +

              Parameters

              +
                +
              • +
                n: any
              +

              Returns number

            +
            + +
            +
            + +
            +
            + +
            +
            + +
              + +
            • +
              +

              Parameters

              +
                +
              • +
                u: number
              +

              Returns number

            +
            + +
            +
            +
            +

            Generated using TypeDoc

            +
            \ No newline at end of file diff --git a/docs/classes/Utils.Event.html b/docs/classes/Utils.Event.html new file mode 100644 index 0000000..9d3985d --- /dev/null +++ b/docs/classes/Utils.Event.html @@ -0,0 +1,212 @@ +Event | @vesoft-inc/veditor
            +
            + +
            +
            +
            +
            + +

            Class Event

            +
            +

            Hierarchy

            +
            +
            +
            +
            + +
            +
            +

            Constructors

            +
            +
            +

            Properties

            +
            +
            +

            Methods

            +
            +
            +

            Constructors

            +
            + +
            +
            +

            Properties

            +
            + +
            dispatch: ((event: string, data?: any) => void) = ...
            +
            +

            Type declaration

            +
              +
            • +
                +
              • (event: string, data?: any): void
              • +
              • +
                +

                Parameters

                +
                  +
                • +
                  event: string
                • +
                • +
                  Optional data: any
                +

                Returns void

            +
            + +
            events: {} = {}
            +
            +

            Type declaration

            +
              +
              +

              Methods

              +
              + +
              +
              + +
                + +
              • +
                +

                Parameters

                +
                  +
                • +
                  event: string
                • +
                • +
                  Optional data: any
                +

                Returns void

              +
              + +
                + +
              • +

                关闭绑定的事件

                +
                +
                +

                Parameters

                +
                  +
                • +
                  event: string
                • +
                • +
                  Optional offFunc: Function
                +

                Returns void

              +
              + +
                + +
              • +

                箭头

                +
                +
                +

                Parameters

                +
                  +
                • +
                  event: string
                • +
                • +
                  func: Function
                • +
                • +
                  Optional index: number
                +

                Returns void

              +
              +
              +

              Generated using TypeDoc

              +
              \ No newline at end of file diff --git a/docs/classes/Utils.Path.html b/docs/classes/Utils.Path.html new file mode 100644 index 0000000..221a15a --- /dev/null +++ b/docs/classes/Utils.Path.html @@ -0,0 +1,264 @@ +Path | @vesoft-inc/veditor
              +
              + +
              +
              +
              +
              + +

              Class Path

              +
              +

              Hierarchy

              +
                +
              • Path
              +
              +
              +
              + +
              +
              +

              Constructors

              +
              + +
              +
              +

              Properties

              +
              + +
              d: string
              +
              + +
              pathCommand: RegExp = ...
              +
              + +
              pathValues: RegExp = ...
              +
              + +
              tCommand: RegExp = ...
              +
              +

              Methods

              +
              + +
                + +
              • +
                +

                Parameters

                +
                  +
                • +
                  d: string
                • +
                • +
                  Optional length: number
                +

                Returns any

              +
              + +
                + +
              • +
                +

                Parameters

                +
                  +
                • +
                  length: number
                +

                Returns { alpha: number; end: { x: number; y: number }; m: { x: number; y: number }; n: { x: number; y: number }; start: { x: number; y: number }; x: number; y: number }

                +
                  +
                • +
                  alpha: number
                • +
                • +
                  end: { x: number; y: number }
                  +
                    +
                  • +
                    x: number
                  • +
                  • +
                    y: number
                • +
                • +
                  m: { x: number; y: number }
                  +
                    +
                  • +
                    x: number
                  • +
                  • +
                    y: number
                • +
                • +
                  n: { x: number; y: number }
                  +
                    +
                  • +
                    x: number
                  • +
                  • +
                    y: number
                • +
                • +
                  start: { x: number; y: number }
                  +
                    +
                  • +
                    x: number
                  • +
                  • +
                    y: number
                • +
                • +
                  x: number
                • +
                • +
                  y: number
              +
              + +
              +
              + +
                + +
              • +
                +

                Parameters

                +
                  +
                • +
                  d: string
                +

                Returns any[]

              +
              + +
                + +
              • +
                +

                Parameters

                +
                  +
                • +
                  path: string
                +

                Returns any[]

              +
              + +
                + +
              • +
                +

                Parameters

                +
                  +
                • +
                  pathString: any
                +

                Returns any[]

              +
              +
              +

              Generated using TypeDoc

              +
              \ No newline at end of file diff --git a/docs/classes/VEditor.html b/docs/classes/VEditor.html new file mode 100644 index 0000000..6cf0fdd --- /dev/null +++ b/docs/classes/VEditor.html @@ -0,0 +1,335 @@ +VEditor | @vesoft-inc/veditor
              +
              + +
              +
              +
              +
              + +

              Class VEditor

              +
              +

              Hierarchy

              +
              +
              +
              +
              + +
              +
              +

              Constructors

              +
              +
              +

              Properties

              +
              +
              +

              Methods

              +
              +
              +

              Constructors

              +
              + +
              +
              +

              Properties

              +
              + +
              +
              + +
              container: HTMLDivElement
              +
              + +
              controller: Controller
              +
              + +
              dispatch: ((event: string, data?: any) => void) = ...
              +
              +

              Type declaration

              +
                +
              • +
                  +
                • (event: string, data?: any): void
                • +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    event: string
                  • +
                  • +
                    Optional data: any
                  +

                  Returns void

              +
              + +
              dom: HTMLDivElement
              +
              + +
              events: {} = {}
              +
              +

              Type declaration

              +
                +
                + +
                graph: Graph
                +
                + +
                minimap: Minimap
                +
                + +
                paper: SVGGElement
                +
                + +
                schema: Schema.default
                +
                + +
                svg: SVGSVGElement
                +
                +

                Methods

                +
                + +
                +
                + +
                  + +
                • +

                  destroy

                  +
                  +

                  Returns void

                +
                + +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    event: string
                  • +
                  • +
                    Optional data: any
                  +

                  Returns void

                +
                + +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    dom: HTMLDivElement
                  +

                  Returns HTMLDivElement

                +
                + +
                  + +
                • +

                  关闭绑定的事件

                  +
                  +
                  +

                  Parameters

                  +
                    +
                  • +
                    event: string
                  • +
                  • +
                    Optional offFunc: Function
                  +

                  Returns void

                +
                + +
                  + +
                • +

                  箭头

                  +
                  +
                  +

                  Parameters

                  +
                    +
                  • +
                    event: string
                  • +
                  • +
                    func: Function
                  • +
                  • +
                    Optional index: number
                  +

                  Returns void

                +
                + +
                  + +
                • +

                  repaint

                  +
                  +

                  Returns void

                +
                + +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.Vector2.addVector.html b/docs/functions/Utils.Vector2.addVector.html new file mode 100644 index 0000000..617d02a --- /dev/null +++ b/docs/functions/Utils.Vector2.addVector.html @@ -0,0 +1,90 @@ +addVector | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function addVector

                +
                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.Vector2.getVectorLength.html b/docs/functions/Utils.Vector2.getVectorLength.html new file mode 100644 index 0000000..c25aa66 --- /dev/null +++ b/docs/functions/Utils.Vector2.getVectorLength.html @@ -0,0 +1,90 @@ +getVectorLength | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function getVectorLength

                +
                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.Vector2.multiple.html b/docs/functions/Utils.Vector2.multiple.html new file mode 100644 index 0000000..f7da2bd --- /dev/null +++ b/docs/functions/Utils.Vector2.multiple.html @@ -0,0 +1,97 @@ +multiple | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function multiple

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                  +

                  Returns { x: number; y: number }

                  +
                    +
                  • +
                    x: number
                  • +
                  • +
                    y: number
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.Vector2.normalize.html b/docs/functions/Utils.Vector2.normalize.html new file mode 100644 index 0000000..6b82330 --- /dev/null +++ b/docs/functions/Utils.Vector2.normalize.html @@ -0,0 +1,95 @@ +normalize | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function normalize

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                  +

                  Returns { x: number; y: number }

                  +
                    +
                  • +
                    x: number
                  • +
                  • +
                    y: number
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.Vector2.subVector.html b/docs/functions/Utils.Vector2.subVector.html new file mode 100644 index 0000000..e0da265 --- /dev/null +++ b/docs/functions/Utils.Vector2.subVector.html @@ -0,0 +1,97 @@ +subVector | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function subVector

                +
                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.animate.html b/docs/functions/Utils.dom.animate.html new file mode 100644 index 0000000..dde9300 --- /dev/null +++ b/docs/functions/Utils.dom.animate.html @@ -0,0 +1,114 @@ +animate | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function animate

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    start: number
                  • +
                  • +
                    end: number
                  • +
                  • +
                    callback: ((val: number) => void)
                    +
                      +
                    • +
                        +
                      • (val: number): void
                      • +
                      • +
                        +

                        Parameters

                        +
                          +
                        • +
                          val: number
                        +

                        Returns void

                  • +
                  • +
                    duration: number
                  • +
                  • +
                    Optional endCallback: Function
                  • +
                  • +
                    easeType: string = "ease-in"
                  +

                  Returns number

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.createSVGElement.html b/docs/functions/Utils.dom.createSVGElement.html new file mode 100644 index 0000000..b355f65 --- /dev/null +++ b/docs/functions/Utils.dom.createSVGElement.html @@ -0,0 +1,95 @@ +createSVGElement | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function createSVGElement

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    name: string
                  • +
                  • +
                    Optional parent: SVGElement
                  +

                  Returns SVGElement

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.drag.html b/docs/functions/Utils.dom.drag.html new file mode 100644 index 0000000..5d331e1 --- /dev/null +++ b/docs/functions/Utils.dom.drag.html @@ -0,0 +1,138 @@ +drag | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function drag

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    node: Element
                  • +
                  • +
                    dragMove: ((e: MouseEvent) => void)
                    +
                      +
                    • +
                        +
                      • (e: MouseEvent): void
                      • +
                      • +
                        +

                        Parameters

                        +
                          +
                        • +
                          e: MouseEvent
                        +

                        Returns void

                  • +
                  • +
                    dragStart: ((e: MouseEvent) => void)
                    +
                      +
                    • +
                        +
                      • (e: MouseEvent): void
                      • +
                      • +
                        +

                        Parameters

                        +
                          +
                        • +
                          e: MouseEvent
                        +

                        Returns void

                  • +
                  • +
                    dragEnd: ((e: MouseEvent) => void)
                    +
                      +
                    • +
                        +
                      • (e: MouseEvent): void
                      • +
                      • +
                        +

                        Parameters

                        +
                          +
                        • +
                          e: MouseEvent
                        +

                        Returns void

                  +

                  Returns (() => void)

                  +
                    +
                  • +
                      +
                    • (): void
                    • +
                    • +

                      Returns void

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.getAngle.html b/docs/functions/Utils.dom.getAngle.html new file mode 100644 index 0000000..a823be0 --- /dev/null +++ b/docs/functions/Utils.dom.getAngle.html @@ -0,0 +1,95 @@ +getAngle | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function getAngle

                +
                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.getDOMRect.html b/docs/functions/Utils.dom.getDOMRect.html new file mode 100644 index 0000000..b455e54 --- /dev/null +++ b/docs/functions/Utils.dom.getDOMRect.html @@ -0,0 +1,95 @@ +getDOMRect | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function getDOMRect

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    str: any
                  • +
                  • +
                    callback: any
                  +

                  Returns DOMRect

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.getEase.html b/docs/functions/Utils.dom.getEase.html new file mode 100644 index 0000000..6e7fc7a --- /dev/null +++ b/docs/functions/Utils.dom.getEase.html @@ -0,0 +1,93 @@ +getEase | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function getEase

                +
                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.setAttrs.html b/docs/functions/Utils.dom.setAttrs.html new file mode 100644 index 0000000..ca4d63a --- /dev/null +++ b/docs/functions/Utils.dom.setAttrs.html @@ -0,0 +1,95 @@ +setAttrs | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function setAttrs

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    dom: Element
                  • +
                  • +
                    attrs: Record<string, any>
                  +

                  Returns void

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.setTransform.html b/docs/functions/Utils.dom.setTransform.html new file mode 100644 index 0000000..681e131 --- /dev/null +++ b/docs/functions/Utils.dom.setTransform.html @@ -0,0 +1,97 @@ +setTransform | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function setTransform

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    scale: any
                  • +
                  • +
                    translateX: any
                  • +
                  • +
                    translateY: any
                  +

                  Returns string

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/functions/Utils.dom.svgWrapper.html b/docs/functions/Utils.dom.svgWrapper.html new file mode 100644 index 0000000..8edf48c --- /dev/null +++ b/docs/functions/Utils.dom.svgWrapper.html @@ -0,0 +1,95 @@ +svgWrapper | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Function svgWrapper

                +
                +
                  + +
                • +
                  +

                  Parameters

                  +
                    +
                  • +
                    svgString: string
                  • +
                  • +
                    Optional parent: SVGElement
                  +

                  Returns SVGElement

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..b0094f5 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,138 @@ +@vesoft-inc/veditor
                +
                + +
                +
                +
                +
                +

                @vesoft-inc/veditor

                +
                + +

                NebulaGraph veditor

                +
                +

                NebulaGraph VEditor is a highly customizable flow chart library, with which you create flow charts, sequence diagrams, workflow, and more.

                +

                + +

                + + +

                Features

                +
                +
                  +
                • Typescript: Natively TS support
                • +
                • Customizable: Support SVG, HTML, CSS, Canvas, React/Vue and more to custome node/line shapes
                • +
                • Minimap: Birdview of given viewport in the diagram
                • +
                • Shortcuts Keys: undo, redo, copy, paste, select, zoom, pan and more
                • +
                • Performant: Async/Await pattern enabled high performance of graph loading
                • +
                + + +

                Installation

                +
                +
                npm install @vesoft-inc/veditor
                +
                + + +

                demo

                +
                +
                npm run start
                +
                + + + +

                Build

                +
                +
                npm run build
                # make declaration
                npm run makeDts +
                + + +

                Quick Start

                +
                +
                import VEditor from "@vesoft-inc/veditor";

                let index = 0;
                const editor = new VEditor({
                dom: document.getElementById("root")
                });
                // add node
                function add(){
                editor.graph.node.addNode({
                uuid:index,
                type:"default",// node shape type
                name:"test"+index++,
                x:window.innerWidth*Math.random(),
                y:300*Math.random()
                })
                }
                for(let x = 0;x<50;x++){
                add();
                }
                // add line
                for(let x = 0;x<10;x++){
                editor.graph.line.addLine({
                from:Math.floor(50*Math.random()),
                to:Math.floor(50*Math.random()),
                fromPoint:1,
                toPoint:0
                })
                }
                // result
                console.log(editor.schema.getData()) +
                + + +

                API

                +
                + + + +

                License

                +
                +

                Apache 2.0

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..15c57e3 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,37 @@ +## Welcome to GitHub Pages + +You can use the [editor on GitHub](https://github.com/mizy/nebulagraph-veditor/edit/master/docs/index.md) to maintain and preview the content for your website in Markdown files. + +Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. + +### Markdown + +Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for + +```markdown +Syntax highlighted code block + +# Header 1 +## Header 2 +### Header 3 + +- Bulleted +- List + +1. Numbered +2. List + +**Bold** and _Italic_ and `Code` text + +[Link](url) and ![Image](src) +``` + +For more details see [Basic writing and formatting syntax](https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). + +### Jekyll Themes + +Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/mizy/nebulagraph-veditor/settings/pages). The name of this theme is saved in the Jekyll `_config.yml` configuration file. + +### Support or Contact + +Having trouble with Pages? Check out our [documentation](https://docs.github.com/categories/github-pages-basics/) or [contact support](https://support.github.com/contact) and we’ll help you sort it out. diff --git a/docs/interfaces/DefaultLine.LabelInstance.html b/docs/interfaces/DefaultLine.LabelInstance.html new file mode 100644 index 0000000..a0709a9 --- /dev/null +++ b/docs/interfaces/DefaultLine.LabelInstance.html @@ -0,0 +1,124 @@ +LabelInstance | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface LabelInstance

                +
                +

                Hierarchy

                +
                  +
                • LabelInstance
                +
                +
                +
                + +
                +
                +

                Properties

                +
                +
                +

                Properties

                +
                + +
                labelGroup: SVGGElement
                +
                + +
                oldText?: string
                +
                + +
                text: SVGTextElement
                +
                + +
                textBBox?: DOMRect
                +
                + +
                textRect: SVGRectElement
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/DefaultLine.LineRender.html b/docs/interfaces/DefaultLine.LineRender.html new file mode 100644 index 0000000..59ef6e3 --- /dev/null +++ b/docs/interfaces/DefaultLine.LineRender.html @@ -0,0 +1,207 @@ +LineRender | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface LineRender

                +
                +

                Hierarchy

                +
                +
                +
                +
                + +
                +
                +

                Properties

                +
                + +
                adsorb?: [number, number]
                +
                + +
                checkNewLine?: ((lineData: VEditorLine, editor: VEditor) => boolean)
                +
                +

                Type declaration

                +
                +
                + +
                graph?: Graph
                +
                + +
                render?: ((instanceLine: InstanceLine) => SVGElement)
                +
                +

                Type declaration

                +
                +
                + +
                renderArrow?: ((instanceLine?: InstanceLine) => SVGElement)
                +
                +

                Type declaration

                +
                  +
                • +
                    +
                  • (instanceLine?: InstanceLine): SVGElement
                  • +
                  • +
                    +

                    Parameters

                    +
                    +

                    Returns SVGElement

                +
                + +
                renderArrow2?: ((instanceLine?: InstanceLine) => SVGElement)
                +
                +

                Type declaration

                +
                  +
                • +
                    +
                  • (instanceLine?: InstanceLine): SVGElement
                  • +
                  • +
                    +

                    Parameters

                    +
                    +

                    Returns SVGElement

                +
                + +
                renderLabel?: ((instanceLine?: InstanceLine) => SVGElement)
                +
                +

                Type declaration

                +
                  +
                • +
                    +
                  • (instanceLine?: InstanceLine): SVGElement
                  • +
                  • +
                    +

                    Parameters

                    +
                    +

                    Returns SVGElement

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Line.InstanceLine.html b/docs/interfaces/Line.InstanceLine.html new file mode 100644 index 0000000..04634a0 --- /dev/null +++ b/docs/interfaces/Line.InstanceLine.html @@ -0,0 +1,179 @@ +InstanceLine | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface InstanceLine

                +
                +

                Hierarchy

                +
                +
                +
                +
                + +
                +
                +

                Properties

                +
                + +
                arrow: SVGElement
                +
                + +
                bezierData?: { endControlPoint: Position; from: Position; startControlPoint: Position; to: Position }
                +
                +

                Type declaration

                +
                +
                + +
                +
                + +
                dom: SVGElement
                +
                + +
                +
                + +
                +
                + +
                path?: SVGPathElement
                +
                + +
                pathData: Path
                +
                + +
                shadowPath?: SVGPathElement
                +
                + +
                shape: SVGElement
                +
                + +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Node.InstanceNode.html b/docs/interfaces/Node.InstanceNode.html new file mode 100644 index 0000000..a49efc4 --- /dev/null +++ b/docs/interfaces/Node.InstanceNode.html @@ -0,0 +1,180 @@ +InstanceNode | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface InstanceNode

                +
                +

                Hierarchy

                +
                  +
                • InstanceNode
                +
                +
                +
                + +
                +
                +

                Properties

                +
                + +
                _destroys: Function[]
                +
                + +
                clientX?: number
                +
                + +
                clientY?: number
                +
                + +
                +
                + +
                dom: SVGGElement
                +
                + +
                fromLines: Set<string>
                +
                + +
                linkPoints?: InstanceNodePoint[]
                +
                + +
                linkPointsTypes?: Position[]
                +
                + +
                shape?: SVGGElement
                +
                + +
                shapeBBox?: DOMRect
                +
                + +
                startX?: number
                +
                + +
                startY?: number
                +
                + +
                toLines: Set<string>
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Node.InstanceNodePoint.html b/docs/interfaces/Node.InstanceNodePoint.html new file mode 100644 index 0000000..6bcb5d3 --- /dev/null +++ b/docs/interfaces/Node.InstanceNodePoint.html @@ -0,0 +1,154 @@ +InstanceNodePoint | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface InstanceNodePoint

                +
                +

                Hierarchy

                +
                  +
                • InstanceNodePoint
                +
                +
                +
                + +
                +
                +

                Properties

                +
                +
                +

                Properties

                +
                + +
                data?: { x: number; y: number; [key: number | string]: unknown }
                +
                +

                Type declaration

                +
                  +
                • +
                  [key: number | string]: unknown
                • +
                • +
                  x: number
                • +
                • +
                  y: number
                +
                + +
                dom?: SVGGElement
                +
                + +
                index?: number
                +
                + +
                local?: { x: number; y: number }
                +
                +

                Type declaration

                +
                  +
                • +
                  x: number
                • +
                • +
                  y: number
                +
                + +
                nodeId?: string
                +
                + +
                x: number
                +
                + +
                y: number
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Schema.VEditorData.html b/docs/interfaces/Schema.VEditorData.html new file mode 100644 index 0000000..2228d1f --- /dev/null +++ b/docs/interfaces/Schema.VEditorData.html @@ -0,0 +1,103 @@ +VEditorData | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface VEditorData

                +
                +

                Hierarchy

                +
                  +
                • VEditorData
                +
                +
                +
                + +
                +
                +

                Properties

                +
                +
                +

                Properties

                +
                + +
                lines: VEditorLine[]
                +
                + +
                nodes: VEditorNode[]
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Schema.VEditorNode.html b/docs/interfaces/Schema.VEditorNode.html new file mode 100644 index 0000000..90fa46f --- /dev/null +++ b/docs/interfaces/Schema.VEditorNode.html @@ -0,0 +1,161 @@ +VEditorNode | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface VEditorNode

                +
                +

                Hierarchy

                +
                +
                +
                +
                + +
                +
                +

                Properties

                +
                + +
                className?: string
                +
                + +
                data?: AnyMap
                +
                + +
                iconPath?: string
                +
                + +
                linkPointsTypes?: Position[]
                +
                + +
                name?: string
                +
                + +
                style?: AnyMap
                +
                + +
                type: string
                +
                + +
                uuid?: string
                +
                + +
                x?: number
                +
                + +
                y?: number
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Schema.VEditorSchema.html b/docs/interfaces/Schema.VEditorSchema.html new file mode 100644 index 0000000..5e5f7a0 --- /dev/null +++ b/docs/interfaces/Schema.VEditorSchema.html @@ -0,0 +1,103 @@ +VEditorSchema | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface VEditorSchema

                +
                +

                Hierarchy

                +
                  +
                • VEditorSchema
                +
                +
                +
                + +
                +
                +

                Properties

                +
                +
                +

                Properties

                +
                + +
                linesMap: Record<string, VEditorLine>
                +
                + +
                nodesMap: Record<string, VEditorNode>
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Utils.Position.html b/docs/interfaces/Utils.Position.html new file mode 100644 index 0000000..8b07f5b --- /dev/null +++ b/docs/interfaces/Utils.Position.html @@ -0,0 +1,106 @@ +Position | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface Position

                +
                +

                Hierarchy

                +
                  +
                • Position
                +
                +

                Indexable

                +
                [key: string]: any
                +
                +
                +
                + +
                +
                +

                Properties

                +
                x +y +
                +
                +

                Properties

                +
                + +
                x: number
                +
                + +
                y: number
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/Utils.Vector2.Vector2.html b/docs/interfaces/Utils.Vector2.Vector2.html new file mode 100644 index 0000000..2165460 --- /dev/null +++ b/docs/interfaces/Utils.Vector2.Vector2.html @@ -0,0 +1,104 @@ +Vector2 | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface Vector2

                +
                +

                Hierarchy

                +
                  +
                • Vector2
                +
                +
                +
                + +
                +
                +

                Properties

                +
                x +y +
                +
                +

                Properties

                +
                + +
                x: number
                +
                + +
                y: number
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/interfaces/VEditorOptions.html b/docs/interfaces/VEditorOptions.html new file mode 100644 index 0000000..22f1d9e --- /dev/null +++ b/docs/interfaces/VEditorOptions.html @@ -0,0 +1,150 @@ +VEditorOptions | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Interface VEditorOptions

                +
                +
                +

                Link

                +
                +

                Hierarchy

                +
                  +
                • VEditorOptions
                +
                +

                Indexable

                +
                [key: string]: any
                +
                +
                +
                + +
                +
                +

                Properties

                +
                + +
                anchorDistance?: number
                +
                + +
                dagreOption?: Record<string, any>
                +
                + +
                dom: HTMLDivElement
                +
                + +
                hideAchor?: boolean
                +
                + +
                hideAchorLine?: boolean
                +
                + +
                mode?: "view" | "edit"
                +
                + +
                showBackGrid?: boolean
                +
                + +
                showMiniMap?: boolean
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 0000000..50b2f22 --- /dev/null +++ b/docs/modules.html @@ -0,0 +1,114 @@ +@vesoft-inc/veditor
                +
                + +
                +
                +
                +
                +

                @vesoft-inc/veditor

                +
                +
                +
                + +
                +
                +

                References

                +
                +
                +

                Namespaces

                +
                +
                +

                Classes

                +
                +
                +

                Interfaces

                +
                +
                +

                References

                +
                +Re-exports Event
                +
                +Renames and re-exports VEditor
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/DefaultLine.html b/docs/modules/DefaultLine.html new file mode 100644 index 0000000..7f1299c --- /dev/null +++ b/docs/modules/DefaultLine.html @@ -0,0 +1,87 @@ +DefaultLine | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace DefaultLine

                +
                +
                +

                Index

                +
                +

                Interfaces

                +
                +
                +

                Variables

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/DefaultNode.html b/docs/modules/DefaultNode.html new file mode 100644 index 0000000..bd9851d --- /dev/null +++ b/docs/modules/DefaultNode.html @@ -0,0 +1,85 @@ +DefaultNode | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace DefaultNode

                +
                +
                +

                Index

                +
                +

                Type Aliases

                +
                +
                +

                Variables

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/Line.html b/docs/modules/Line.html new file mode 100644 index 0000000..a92d833 --- /dev/null +++ b/docs/modules/Line.html @@ -0,0 +1,85 @@ +Line | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace Line

                +
                +
                +

                Index

                +
                +

                Classes

                +
                +
                +

                Interfaces

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/Node.html b/docs/modules/Node.html new file mode 100644 index 0000000..3050e3d --- /dev/null +++ b/docs/modules/Node.html @@ -0,0 +1,87 @@ +Node | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace Node

                +
                +
                +

                Index

                +
                +

                Classes

                +
                +
                +

                Interfaces

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/Schema.html b/docs/modules/Schema.html new file mode 100644 index 0000000..11c37f6 --- /dev/null +++ b/docs/modules/Schema.html @@ -0,0 +1,94 @@ +Schema | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace Schema

                +
                +
                +

                Index

                +
                +

                Classes

                +
                +
                +

                Interfaces

                +
                +
                +

                Type Aliases

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/Utils.Vector2.html b/docs/modules/Utils.Vector2.html new file mode 100644 index 0000000..7aa7917 --- /dev/null +++ b/docs/modules/Utils.Vector2.html @@ -0,0 +1,94 @@ +Vector2 | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace Vector2

                +
                +
                +

                Index

                +
                +

                Interfaces

                +
                +
                +

                Functions

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/Utils.dom.html b/docs/modules/Utils.dom.html new file mode 100644 index 0000000..ee21d80 --- /dev/null +++ b/docs/modules/Utils.dom.html @@ -0,0 +1,97 @@ +dom | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace dom

                +
                +
                +

                Index

                +
                +

                Functions

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/modules/Utils.html b/docs/modules/Utils.html new file mode 100644 index 0000000..4a5ad30 --- /dev/null +++ b/docs/modules/Utils.html @@ -0,0 +1,104 @@ +Utils | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Namespace Utils

                +
                +
                +

                Index

                +
                +

                Namespaces

                +
                +
                +

                Classes

                +
                +
                +

                Interfaces

                +
                +
                +

                Type Aliases

                +
                +
                +

                Variables

                +
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/variables/DefaultLine.default.html b/docs/variables/DefaultLine.default.html new file mode 100644 index 0000000..11da588 --- /dev/null +++ b/docs/variables/DefaultLine.default.html @@ -0,0 +1,77 @@ +default | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Variable defaultConst

                +
                default: LineRender = ...
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/variables/DefaultNode.default.html b/docs/variables/DefaultNode.default.html new file mode 100644 index 0000000..1984a98 --- /dev/null +++ b/docs/variables/DefaultNode.default.html @@ -0,0 +1,76 @@ +default | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Variable defaultConst

                +
                default: NodeRender = ...
                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/docs/variables/Utils.SVGHelper.html b/docs/variables/Utils.SVGHelper.html new file mode 100644 index 0000000..95b3a58 --- /dev/null +++ b/docs/variables/Utils.SVGHelper.html @@ -0,0 +1,384 @@ +SVGHelper | @vesoft-inc/veditor
                +
                + +
                +
                +
                +
                + +

                Variable SVGHelperConst

                +
                SVGHelper: { circle: ((cx: number, cy: number, r: number) => SVGCircleElement); group: ((...others: SVGElement[]) => SVGGElement); image: ((src: string, x: number, y: number, w: number, h: number) => SVGImageElement); path: ((d?: string) => SVGPathElement); rect: ((x: number, y: number, w: number, h: number, rx?: number, ry?: number) => SVGRectElement); text: ((x: number, y: number, text?: string) => SVGTextElement); animate: any; createSVGElement: any; drag: any; getAngle: any; getDOMRect: any; getEase: any; setAttrs: any; setTransform: any; svgWrapper: any } = ...
                +
                +

                Type declaration

                +
                  +
                • +
                  circle: ((cx: number, cy: number, r: number) => SVGCircleElement)
                  +
                    +
                  • +
                      +
                    • (cx: number, cy: number, r: number): SVGCircleElement
                    • +
                    • +
                      +

                      Parameters

                      +
                        +
                      • +
                        cx: number
                      • +
                      • +
                        cy: number
                      • +
                      • +
                        r: number
                      +

                      Returns SVGCircleElement

                • +
                • +
                  group: ((...others: SVGElement[]) => SVGGElement)
                  +
                    +
                  • +
                      +
                    • (...others: SVGElement[]): SVGGElement
                    • +
                    • +
                      +

                      Parameters

                      +
                        +
                      • +
                        Rest ...others: SVGElement[]
                      +

                      Returns SVGGElement

                • +
                • +
                  image: ((src: string, x: number, y: number, w: number, h: number) => SVGImageElement)
                  +
                    +
                  • +
                      +
                    • (src: string, x: number, y: number, w: number, h: number): SVGImageElement
                    • +
                    • +
                      +

                      Parameters

                      +
                        +
                      • +
                        src: string
                      • +
                      • +
                        x: number
                      • +
                      • +
                        y: number
                      • +
                      • +
                        w: number
                      • +
                      • +
                        h: number
                      +

                      Returns SVGImageElement

                • +
                • +
                  path: ((d?: string) => SVGPathElement)
                  +
                    +
                  • +
                      +
                    • (d?: string): SVGPathElement
                    • +
                    • +
                      +

                      Parameters

                      +
                        +
                      • +
                        d: string = ""
                      +

                      Returns SVGPathElement

                • +
                • +
                  rect: ((x: number, y: number, w: number, h: number, rx?: number, ry?: number) => SVGRectElement)
                  +
                    +
                  • +
                      +
                    • (x: number, y: number, w: number, h: number, rx?: number, ry?: number): SVGRectElement
                    • +
                    • +
                      +

                      Parameters

                      +
                        +
                      • +
                        x: number
                      • +
                      • +
                        y: number
                      • +
                      • +
                        w: number
                      • +
                      • +
                        h: number
                      • +
                      • +
                        rx: number = 0
                      • +
                      • +
                        ry: number = 0
                      +

                      Returns SVGRectElement

                • +
                • +
                  text: ((x: number, y: number, text?: string) => SVGTextElement)
                  +
                    +
                  • +
                      +
                    • (x: number, y: number, text?: string): SVGTextElement
                    • +
                    • +
                      +

                      Parameters

                      +
                        +
                      • +
                        x: number
                      • +
                      • +
                        y: number
                      • +
                      • +
                        text: string = ''
                      +

                      Returns SVGTextElement

                • +
                • +
                  animate:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      start: number
                    • +
                    • +
                      end: number
                    • +
                    • +
                      callback: ((val: number) => void)
                      +
                        +
                      • +
                          +
                        • (val: number): void
                        • +
                        • +
                          +

                          Parameters

                          +
                            +
                          • +
                            val: number
                          +

                          Returns void

                    • +
                    • +
                      duration: number
                    • +
                    • +
                      Optional endCallback: Function
                    • +
                    • +
                      easeType: string = "ease-in"
                    +

                    Returns number

                • +
                • +
                  createSVGElement:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      name: string
                    • +
                    • +
                      Optional parent: SVGElement
                    +

                    Returns SVGElement

                • +
                • +
                  drag:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      node: Element
                    • +
                    • +
                      dragMove: ((e: MouseEvent) => void)
                      +
                        +
                      • +
                          +
                        • (e: MouseEvent): void
                        • +
                        • +
                          +

                          Parameters

                          +
                            +
                          • +
                            e: MouseEvent
                          +

                          Returns void

                    • +
                    • +
                      dragStart: ((e: MouseEvent) => void)
                      +
                        +
                      • +
                          +
                        • (e: MouseEvent): void
                        • +
                        • +
                          +

                          Parameters

                          +
                            +
                          • +
                            e: MouseEvent
                          +

                          Returns void

                    • +
                    • +
                      dragEnd: ((e: MouseEvent) => void)
                      +
                        +
                      • +
                          +
                        • (e: MouseEvent): void
                        • +
                        • +
                          +

                          Parameters

                          +
                            +
                          • +
                            e: MouseEvent
                          +

                          Returns void

                    +

                    Returns (() => void)

                    +
                      +
                    • +
                        +
                      • (): void
                      • +
                      • +

                        Returns void

                • +
                • +
                  getAngle:function
                  +
                • +
                • +
                  getDOMRect:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      str: any
                    • +
                    • +
                      callback: any
                    +

                    Returns DOMRect

                • +
                • +
                  getEase:function
                  +
                • +
                • +
                  setAttrs:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      dom: Element
                    • +
                    • +
                      attrs: Record<string, any>
                    +

                    Returns void

                • +
                • +
                  setTransform:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      scale: any
                    • +
                    • +
                      translateX: any
                    • +
                    • +
                      translateY: any
                    +

                    Returns string

                • +
                • +
                  svgWrapper:function
                  +
                    + +
                  • +
                    +

                    Parameters

                    +
                      +
                    • +
                      svgString: string
                    • +
                    • +
                      Optional parent: SVGElement
                    +

                    Returns SVGElement

                +
                +
                +

                Generated using TypeDoc

                +
                \ No newline at end of file diff --git a/package.json b/package.json index fcb3be0..2086509 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "start": "webpack serve ", "demo:build": "webpack --mode production --config webpack.config.js", "build": "webpack --config webpack.config.build.js", - "doc": "typedoc src --out doc ", - "makeDts": "npx -p typescript tsc -p ./dts.json" + "makeDts": "npx -p typescript tsc -p ./dts.json", + "doc": "typedoc " }, "repository": { "type": "git", @@ -31,12 +31,13 @@ "uuid": "^8.3.2" }, "devDependencies": { + "@types/react": "^18.0.17", "antd": "^3.22.0", "babel-loader": "^8.0.2", "babel-plugin-import": "^1.12.0", "core-js": "^3.18.3", "css-loader": "^1.0.0", - "jsdoc": "^3.6.3", + "fs-extra": "^10.1.0", "less": "^3.8.1", "less-loader": "^4.1.0", "react": "^16.0.0", @@ -45,6 +46,7 @@ "ts-loader": "^9.2.8", "tslib": "^2.3.1", "typedoc": "^0.23.8", + "typedoc-theme-stacks": "^1.0.0", "typescript": "^4.6.3", "url-loader": "^1.0.1", "webpack": "^5.71.0", @@ -57,4 +59,4 @@ "url": "https://github.com/vesoft-inc/nebula-VEditor/issues" }, "homepage": "https://github.com/vesoft-inc/nebula-VEditor#readme" -} \ No newline at end of file +} diff --git a/public/demo.html b/public/demo.html new file mode 100644 index 0000000..a12f1af --- /dev/null +++ b/public/demo.html @@ -0,0 +1,9 @@ + + + +
                + + + + + \ No newline at end of file diff --git a/public/flowChart.html b/public/flowChart.html index e7b8311..1701a67 100644 --- a/public/flowChart.html +++ b/public/flowChart.html @@ -3,7 +3,7 @@
                - + - - + + +
                + + + + + \ No newline at end of file diff --git a/snapshot.png b/snapshot.png deleted file mode 100644 index b232ee44148513be872652c21c46957656d3f346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120238 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

                eEtQhxr;D;H7vFmDEm^;WH zt10h2i#!C;hzg#Ez{I|7ISv_Mp?@c(=d%DQ{oubsO7lTx$0M89{n&GOmr~)~j-}Cy-&tW)l(77Bdg@;uL7WPNAfp$m%u|jc9&-qACEfCI#cVL2 z1xONzR z8Vz8+`CoN({>`V|gciqk=)1FY3>%`8#b+?oiqN+!`+-yX`;x<6c4(jIF>IkL#=kh? zu0DiZ|B;qH;&J^Tgtd4ML*u(I>CQoR`Y%uNH{VUlrHo~y!S4zAbMa5<6#8q@aG!_XJ&(2J!Ir+eOzAmc2xKa@0+oHVKlzta7l9k5kiVQ_@!6+jPc87FGh%DR@Ol9oJZ zT|Dlkm2aK?;%2KP+V>D$b;D&;H7rOnT|dQxZ3E}cHfOsxm~lG`8?_ahl%aHUk0X6*#?HCgq9ad-&HkOdLRJLCy6BXEzme=RE%4 zthBc~ODN-$|5^%!X+C?cWIv7_unT=i_j=*I^V8Xpq)@_;t7Xqli$JAK-`N|WJD9WY zeUIjXc-nN}I<7e|vUmHLF>BzB%DM>Sdujn5?viDBOtS|M9m)s^VfkX#q}?m>5H|ce zAf29w-8{k*8rLzQh>99i-dvPGEj|87<;y?5cWmW?^J^fsU?~4#5g|(I!?_H|tA_Vg zL)fpQi7v?UDQ|VgvZ=h}f`YQEbjXM{TI8A=7yit#*6Z-fN+(}#t~v)lxMYTAvTq!! zo88o6*#R_#ZlA(_kKH==S}W9ZE39N3@svLpK1U}SS}Lk;9vexq6hb#33p ztm+{|_t$#E1BWDfl5;R;HnEloF_*2@&)`0n{h6@jRG{X%I37=><~myHq|D0Tz9VJ? zMr1y}ROyaD`<5n^-#XX8kJvrQ@64~}y3sB=D%F`|iJuFPLzyTPYM>Omm%ZE*ahPu4 zGFrE{pQ-ds@L_cngheR`RMrHT?pX!CY-s-9FBF=RDN1O!?_bq8Acs|P@4?^FiYYhL z9p5$98jTVIvTxQi^F>vZ`(09@g_NrMVD@vnv+oI+L|NYta$4}47Q zI*%LE--sT5`h7NhcoSYrqRYsll#C4`bCwF)q6vwZmzi?B1^6d!M8b?pT2EMhukWb^tOo*O$;)hqLrZuw}+=hcpGBsS= z)=N`Dbe^cgM8Lk&%wgJX#F@Yi;t5LedP4NhU(3f;xU)(kpvxH;_`tNl8r7A;I)wlI zWeXBinwRBewiHg@2ZImDAp+6^Z{nEuq_)y00??@6mIME$rtSZSxBs$Ct`E4=#Ugdb za-FYCM+!r7HS2)?RM-_qE25{2h1@Ab+N-?Z zeBl!NlVpCqnNXew8(-z(L`RYv9~D%Fb~pWAW(cYU;H&ay1+0HR5mTm2Sm2 zi)O`o+!~!u%=iYCC+wqnB&Zmt*?QXQ*G*);iS&0XS2TvIn_UdUpL5}RjFOb%P!jt- zuuLUTd+l1PopvSI+%fe{cV3p8mb@pwWmsBTT2GcMaC#zZ-um|UkyO5_jEAv0R##8_ z@;(%K=BVz7SA@ZDCA}C%2PkJec`ehD2|oMW3Kffp3tL&ObTph z?sUi}FF7`cKRQVf1PNB2PNC#a7he7~%?AEPQJW^y_?eLT?NhQ@Prx%emAy;#;!vcX zz&Gow<{J|E#N+1a?~?8@>VEMUr)U3;D{bg8(kM}VyN}{hXQ*fhb)VjY{P(Y<>Sl>g zFXQqH=G5m*8IN+W8RVj(MwQLCSD)!lpc)QrHr><=!xvsKnb4#?drY6&H~rbN5Ha6C zeyb51wjgpHDhUA00}I%OSmuRaw<9QCrG>WPeD0xaMmpF=6smcS&p3QgnQrHO+33sX zOluNU$e#Dc76@4QvT|0yl}GyF$5PX`yd=dVdYw>j;Y}5?l)NX;Vd;HT$e&7TwUj6S zATW$ai`oX#EyXY3u;ljrIWkwal4Azvk87J>8eVK1L6_P0MvB-~k=ifX>C3 z$k=){^Bsxj-mMSN`93gq4lm)7Yw30lE+tz>ksIJ)W_T4mYdmFatM7{ghp}OYEoA@3 zduKyJHaS!pRG*=i>nC20%9o%pLPMu@K~Jb{qu zU%BGjpEc9Pm!Qcj&WNM{mb&{sis)yI-+#%&|3l)BZ7AJ!Idh5=9djC$`n=}DT3X<>-F1k%G4ZBL$d)Jztq&?B^;fmR%PK-iCu1+~TiP2KzAwK8?!Qt-lyd)<6nzw7 zbcQr9|1t`t=&zyxB;@+}J0G|-a<6eDiPxgWdVJwHH9FF>o?|BNl{OA4A3yfB9N3mf z-Wrnb?XRlzOpN$#%WEMg5(v2>dLa5cF9ariKs1PVsJ`*wz+cKY1=QUMrLgLf=d93N;~{n_KdC zvCFcJLh_=vCdudv&ym7{Em7I6}-* zE_PpH!5;N+x<{!gd+OuEgm?4yN;~mdjj+`!sbrSy)5AI4AH+axZgW}J>F;eBURQnF zv9D4xsH52{p|Y9&X8@XO-x9mry&9KQ#*2A6&(U026J^`9(F12{I)d*!HQIfyzVLp+ zQdy)#%&SHap}JC#z-q{jd2m!tV0*BOAv@3{_jSyX-G#@r{olj~>NM!R5QWd@f3n*= ziU7iXabAEJ_JGbqUy*JL`>l1sRAW)EubDJg@%*`0v+&C36)La`%yFQ-RLDp68iAC% zXFB}Max6CA&Cv81)|B)vNmG=~7hb4e8cn0HyKvwsX5eohn?j@TKiCcV2rz0Sm#|VG z#dv~}5-es^897Iu`}Uz(4T)2z*Z9tXd@G*dbEfjbJ3lt)q7OnBEiK)@?aiR$`i&d? z`!$CO0V^=Quv2qHL5^xf{2yoWKU>r}@1DV!#(Jp(%2EWV_0w$>L00cQ&PiK0Z8mJjM-F-sI2leLR z3RV#Y%rs{4K3>zUIqc?zig=I?6%?mAHW&{vxMzqT-SHz5o2wk*y0JdK?0$K0>`TNPobep8xVtX0L^ zR=99EihPiX^2T{$Lr-N!>=vlVh|c6Qkk@kR)Zwt=lbROA4^ z3Uq2U-~XmHQ3A4HT(#N4y~n_*{S3rDFg+oT(jR$J|2Z^NJG@_+pO0_!z~-p}&Fe25 z((1qk-N~5c2C_W%>33N^$)gyDq86jN_Ddk87#9k8YLP+DRwki=Qx@+Za(36i1q1~0 zEw_xjbll9%%~dRvUb3u&MMSV|-bK_aLwm{wdy*v7{f{3bt7=M!zsWqR?*>K+<~v!& zzAsZtvIsh%%_pSn=$J2HWWJSGfPJfYHk^H8ET`h(4jTk_Dk?5Zg~#ZBD9gCa_4~Ur z)6N226*iHt{~M+i@}u@Cmsl1akX2L9(dKbt6HGbR7#Yk)3F_L0hP)f|y&+{T)@qAG zUj*djTKaeZq7QrwyKfOM?6e%9on{!->(rrl_bygcR8*id#j*V)rA=bu9OQuzSB_J< z!2a3;X+i20{JE**}Gvc&IQ)oqjR6n?<8grI5@0AL$ay7 zdLn~r`4*G!^-PYT_RNbwY_+z&UP&PTc59T?!}E8yb~6@u&ZdHtzj^=KBLT>B-r3VF z;(E@NN$WDhz4yf_N0~G-7qWcu*_0C(Hi1D?{`%AhLE!?;L#UpcB6@@Fs&!cwf@{y@ z>m_8*35kl1viF3AgrrfqILpR1`gydndNF81T z8ZsykAI2B!-uMdOD*{{i0=n;ao{(+yK6HHFug!2cD+GxKH%(nG*D&>kTEwAZ^XF?> z?RE@k2~(`@-?EqvG2xrSN6Qf^4i0%Cy+VBQM)|rAGY$5s(TdWi&GQ<wEdw`Dd0O7CQ&K=FsFJ)&FG^=}z#N=J{^CXaw8uva6?uO#=2geJI<~TTn zFM+F_OXM(c%k*F}x<^F zfTJtc;W>bKwV;X}UyG`NyLnXRS5;e^?a0I>-;B9MzSv_=vqig$)s9sCl7O)hkN3(- z{n#ZTFSel$z})sJ`5^rZZNuD}td}99&ffcLSLl0y_KjMg`3?bXHl1uTh04OT5V*XX zB6frFowk?;zZBnA9r?ymbX^KKQ634Zs5t{|k(8nfse`va_SuSwa&q$rT$H&Qd^s+w z(0WiMiP)~%s)&Vl_botNyUbxA$>j*GZo8_89;@pY`ba30pMs8oeBJyKBN? z5CYCmsNHE_ypIkTA|=WXo9&~UV6T4YL9Ou5Z?6$;2RAaNF5EqBl5_90Lgr3={-JdP z8-oxA$asFDt*Ez$)w*`?yqlbUQL7mqcAs2(fFxnPz8r9dWmL$kt29daho$QEt=A^b zb~9SrQAfIvKiOlV-Hv%BUw1}t-7GAg$X=>5l0CeL7$Z}ln^?6)*H&hM!kRJkPE zh#7L<&Qo7cm`-I|oX$)Xg$79+Xe{bQ5t8#e4`t*`3X;> zZQ6%VTf1h4^xnVIn8O*-WX~D7{~-8~O-J_zub*wil%B>+`-Mr25cMnGp^5SFS098k zUzqq`U|Fmd=S^l1`JsPG{kq&r;H$K+s@r-uk9INb@;*w>J>tdMeZ7zx1O2&f?=BRY z9tfG>qLJf2{%PqXA3&i*wTB=UOwe3tt1Wsqn#+=3oO;(WzhJ7=f!RN+MFWy4Uo1p| zjA_6Odc6)8c29U_z4*G^AYOs$9m7o&BZw#5CNs`RP7e3KjdQi_j=RG*=dLR*GuLS6 zIP%cwtq-?|$R<<=oyHSK?Nen`d6O;2kOxhc)kG`}*&Q5Cl2k|7ImGW~eG`x@Sq=$@ zhvQb30~C(T&gVSz=29S9kd!B8|0~~CrtcV3t`vzML-PSGMu}vB>;q85{zhEs>`M|&Cvam-5MW?VWQ;n`(w4)^}k4jCPMO!9YMjy~0Uw~rPQOkNsbFA3w)Af3-) zH+nKGTgQuD?@krd?*e6VB6=Y?*p< zQCOnam2LxU8Q0=E!mkBz?gwM7!vd5>*!uippmkON=lVMG>>|WXgwR)Pv}H&>9J?#^ zMLpi3dN8IV%sb{;=}9-m;l>kjP`TjkZ!~x82;Um*F3txOzdfH3Zgf9;*(Lgu>#l&_ z!YvuDe>WeBJVlWGFde>+&jQe1QR(Cm`K zPQYb8(opq-)^?qW6OkS601FNk*Y~vOSw`sEm*x}IyOZ6BuYyyKfIpuw^WBgmg&HVC z(Bkd}>1b*_Bhg3F>Je=xC8I8r&ls%C8=8(cWsy(Swx2vBdZLgaUF|>kVxLzK7Cp|g zF!5fb=F$;SD5i1%kevgB&fG=cp8CQ)0^igvZr)Ta@`*A% z77XINsH@ZQVu`nB^~Sev`CgM2gQe&7Ph7N#8+wehF835E%aQj8eEai+%wT9l#GR@) zc}CjW!ruf0o?z6TOidj(pUESvC(A8MH-D6}I=eLr@42g~sTuZZ!NxR(Qgg=(p`RC$ zNXX0hQlUl3H@Ur*#m)>wiw8ZC4v9}07f5kkV88oX6teUFw6R39Pq%h<2Vb@Gi16Kq zV_e<*U1ra^X~uq9e`O;+BJARbYaZR>4)HFOOZZAy_?NMVzDv)bAoG&L|M4_@;d#=` z!;eZ7(KSz+MT!~TTlMDqkGQS7tf60vH@(sGrYVdJixKEIM8uyQme>~myobWf_MKYm zYaNtyC9&^oNXeLpF&@y{sZE(M1RbuKr^dfSX;jZUQNs{m}btAuia{ z%uEWKkYG*uf;XbXS~?`w1%HN)p7H^1!#aKQpH(Rq6QWs=mad1dKR>%??w_}_yB#1PBBH~Vrih*eUgI_NrnrBLg5!n` zVBa3oVXu7rY59x1UARcup*)u*M%@)5YWKJ%LW=^DTeJcaRS?O?4a8f%32V)`5$U9HIfFz3D3h;lZbzdjpSf$ueta5zxZg&rnW;gytH7OS;lgq34Yjg@vzks98cmu@EeZK4zol8qmF@|U}*9Eciw@TGy2aR`0qi!_a}tR zy}YXQ=`77=d)^|K3yH*s4?d!4^qJRbDf@(u?v-7%!?@-9bOso#x_h z@Dip+3GsFB#P!!U+n0^~O>bV!? z3;#jo?>yb>ogGfc?cIH8DRDA5+*+K|Eb}PV^xVoJ;J{vi7*cQQs^bZ8o0oh?Mu9=6 zN19uc1WP{;A1*Cw$ciu>xzC?(^F`T0^lbRFwJrlJXZloLT3qt_6W5y`KOvvIEL1qF z?wD`-{cIM1AR9-Yx&5GtI%jWF{o31W*|Dkl)wrMe&y>mOB-)OfVP$lU8T}pa2~wQ< z@f}c~_P=iQwhFK$l`jUmx-q$^`|2To5HmoHH0zCbGF5fA1}S=WI0_T_d(U zz+cvommY65mYH_hae46+s^5Qy)?X5ztyNFD#%w3RXAgVwtBr=7w+ok18w(RtMntZ% zYv!LE&z9#MKkL#$XA;po)b{$#3jN7D85UwP^HT?9NLc4IJ-(-~`w+(Br}8toq#uz* z?9%^oEu($ytDgN%(c~A$d22uOuI3#ma*)K0tghl-BL2)6C^J&zb%Ops_{5Iz$jDi} zz{4PevU^)pkhilzIH6-XqrVZm+Ht&AZs!H2sW;N_L8kHv?D~MtQS%*p3}?e-1=7Q& z=4O0Mdc$OhNC1;`QLVY)8do&~IMTyHz&`z?Q7ZuUDT{VSbWd@~%_-H)a;mZCR6&w? zt>0I7>@9d;WQjRJNFbk2+@`l=+2*e1)NX8)qjrO{B(csYn(1)rJt_~i&6`_Y%5%-eyAu0sN?~^Kv8Pb9ber`$SmxJhtFx*CE?K=W2u5D2A!#=QA=G&H=9M0~^&X*$(MVZj> zPZH*76$Kc6+UE<`C_VC)&zMTK+OqqrOTLWBp1 zuJUu2O4mNG2f2{#%eNLnqF;`S+qraL1q|afM`ge0Rd?Ma*HZE)N1*DBuc>pOdL#XH zbi7d~VIe`QX~?dJWWVhhucoXpWL@NMNF#n{WSi0H!=6eDuTDlcQbiktZ_Tw*cm zru&nMPaKD`_8J_g|2P$HDspVO(ip)mAuG9q=;5@384DPYec5bIMPY?iS7Jg_6=BGG ze0E&C%G`*X)f`pw*1;8ItwEFDl2ekJ>Q*{4LyVKW6`XT=a`gL)+aP86cV})yLkM2{+?{I|p)CG^ zXLKl*ZL`pI%452hSM+wNN4LGL|xEA5o1)(TrK-m*mIKZSeM5)`^f@-`LnlcT_Kt05s zL(=$De&QjMvaWdB`S4+7IPd-9<#Wx>O0nytLFJDZp70Or4pz{bG^6MH=z7F~-*Y96 zzoHY679UUT&-Id@L#)wvXR4UWtS-k;2b)7xIImKGTUhN$0##9|c2vt=((3iC70R-O zvUiM2aBaCMIVlT-pAFhkc;hszOSu{%;-)C8b!^yT=)$d#TN_E|mlGEQn^sfN#?JL| zKaXtaoy|{a6e-_~uvH$4j4iT$ia97V{o!Ep%9~?B?gw;re1l5o6Uj$MsoK33ZiqLY z$?~9iFYss*$4=MWVU3BDBL+t}k>IEQvpgMul)q5n zJ8oOfmLKZYCx~}!2Sw4OeD!3n%2TOJqn2Fl7mTk6|6m01KH&Jr#AiH?vS6Ja1X5q8 zn>$Nh++t|(zO(H8Dt0VmH{Y&SkV9sMe!RzUdaFM*gpclmEw6W~RTch-aObRFDY_|o z8F`mOLMgv)7kx2IuldeIG+ zm49zPUfVv#G`G`u`Y@P57yR2+Ae8vtYuJnoqE$1S^2zH?(IHPT5LNLehiyjZ!pXNp zBgXqVyftq>G^)I&U_76SrjC|Is1&>uv$`v;j_U)}Pf~{3eD|-@?U`AWP*EXA(hcMT zZ5&?f(-s6S=$ZJJSB7HL%sgV1ixyUz>urtCj3k88`*VC{p(~r3VJt{gq292+HlURc zqQmrpYJ84K#3~GaSaD^ivPD4TntbAsiq=0cdN-+BLvjw6f9BZER+c0CzW+vAJR=kh z*q4a{O$~aGQ*lV?-)8tkY~9M2!8G=(v=C(06v=(vGrw&FjvQ{uiAFRvy54Cd7;f}O z5hE;I3e4-@nYO9J`3~n&YG0`8?%n~>kaKnGiw4-i$L=egKa_mhYUqmIYq^q4s^LzP zASiAsu{61GQT*~U+VS3&PMgsq?i_055@ymOYGc(>Qb+y!bf5jzP0=V^M=kOK(oYnw-QQQAuKpHgHcpjb)R?B9Fgl$wxY0=2gE3`(!~wxR5TcorCyj zmUdT_>siA2&4oK4lccMNYM;~D5R>&W+s<<(Qj>Es*M``Ud7 z2yMTV@y?DbYKrYe@MhQIL0S20gioJNaiq&f;Dq8*#7H}{=;@4{s?f~Lvofo7N0V%a zi$aqn6Y_Z;FpS{W1lAUDH)fKXZTbw%FM6~T$6&+HbIWT0YT(_O{wkrC$l_I(4sSH! zG_Uaw3^U+K4OlSm&a$xoWS7uue6#Iu_PXRS=2hC&J9XmxYIXkGH*T@!^Lm{!;1#PA zf0X`?HEhum&5SCz(wZpTAS_?1r*T`g0zb(>YAq19XkJsDyNoW0P@&DhiCh9MEw!xF=in+&iuV;6skdUhi)eE=0s&6`%eIsZ4ReJ-ymy@0WdGxmVw& zjYFsfTBr-$C#!sEGvA7p|9QvWBEN?-+GeB0i4vD-fk;PJLv~Q1#2_ek^H9E`*g}G~|V6A&McG1n)ZNmT2V4=M8(;&B}eq~~FZiZ#fau#CYg{=W1+P@`&S39JGRvx}3vuhydeC;?f&cQQWj^r&q$S_W*G@M8>^yjDou0i!*?cC7JdZHJ0Bg+Y zesW=$sd#N6#e4s)$=poTa)h5zhR4-^b(!{IutYJy#r6^XBJE^TV%}E+^<;xhd@qVV0j}Ojo z4%E?Jl;Tm=GkE_c?-dO>;Lc`_fSD7p=(7g(l6l)pH>{W<>tHg z9Z~tLw0Y+HW&C@iY0b_4pz^8oGsFVIIi$W@{K_x|V=*j8YJ1S*Rnl6%Jz!DfX$K-- z$MIo?MKSK)0UMD4UQ3j`ild};+Al3Swk6AS= zR68fcSDB7sacDkV{t0fTQn*(0H3R94m}tw?q@KF_<~Lko+Qdoug3$Jbu(afzZXMTY zvw5qE>rc`(zuZ?HF}D>nnvUr2z3|A}<^VX~fM<>=&ZVonw-VaUUCTaF?!LKj2JJ;i za}X0?xWs2_a{Ya6y9OPf%i>V)@m_3Kf_dF5775NDz;KD%SM4Nsjpa3PTbnJ*khUky z*Js+++U1rTja)~k=jRuT$0JC4L}HOanimy$2YV{2=vn@9-F&YNkJC%<*C&o?+sY?;7ZV1#gj6lc zNQW{vK6@(@Q4LjVdbf1EU3PY2ga}0j^x_XTMx3T+XFWEKshi>HnWGq>~I}VN? zvN-&zAH4waAk5ebMm&_RZ_MinqIGnY(2=#VxLDqhcoe(dCG`k$jYXX1_m^Tjj~&uJ zW~)ubQR`Z8hX*M~_U2564hi2!#m0(^Xn&^iWzg$G$Ltsn=3i6a`_g6#&Lr31BmTCI z-`s-Y9bdSMb?H>oa6yt1q9iuGz6!^UO(@s_Dg8}$Wl&8LCSJ9D^~8n8ho3s2-En6) zWSvvB5N%TZjdib&Qg0S$RnqL=EibnjDD89YMxwY*^AUnpZH26-XY|Fwa`cg>OvM0> z9*&L3eAp@er%2%4IZFL5=c^ma)6~eb=>?p=?~eld(IK)G!o4jm>*@ZA=sKgYk`3p{ zl@JK+LM+rl*okudrUU1>Lr`wZ;TZUj;F1fVn59=~Vn-AGu8A==qNU7Oynm}gbis|h z60OXQEFEwh5*vNRf&Ctr-Plr~Iz2lsuN0@Q5uujf``$2$L%2~{AUZ86A8(eHDeo?v zeQ+a^mte1~+H3Os_@I|=J$h7_h>GpYxNA-;EG*VSlSmz`AuFp+a&b@2)c@`a$_}t| zTa^>nfAn!nyGHn=v-DYM?k+OIk=sIY0lH z_NyDk8GZ(M?Q(=|cv9-Zr&iOB%j>sx)>_1a_Q0gR74=cQ6b&v@Rkcdf{%oV4i1MJk zo>Z;c)N;!XZi79TtCMX7d~p2FBGblSJ4X%NTk!p_4KPEAzQ8*f*9>P}wZW*7*W2%<;74Uben^XMbW zwX)|N)Si2!$o(n8;aPyvyF%pY3?>Hq#M2$r&G` zMe06J>f&{cWREL*&)u+m(`(``EG}teOSN(N$|-9tt8zk3CDkW}c6aIHQx?$f|Gn zaDlK;(2?k|wUmz}BCJMA98z&r`8ibtRgFvWXXE0*2-45gei{mU&RshCL7dVW;F#ei zMwQ@~&MQH&GtCDDB}H04N~sYx7p-kH&~PKjFDx-^SM08}OixFeTx@oJs);}p9pt>& zx>c!S1zOAgvSH5*J#(U3vxjxq$GpO zf4tOzdCTvkr6aKrNqqI>DFL%>gIvey8t4At`gSaJUYth`h$`Hl^=l(o#1pOs36x| z#A*`~Ra^C5(1rPcTsE0gpP#ch?SdT3Sq(-&j1CBpxg)r08WVCp7pxrQlI?k{Xj#{_ zPp;B^LsIf5HtuAMZGG$7IuJ6>LC4lH;iJI#A3&1#wv=>a4?J!P&4=Z>Jk@*|3sV=B zjZ3m<`&eJbfi<;BwU_G^@OkNQBjG#7+j|^gPKE5tF%jpK zwtEkpalLd_1oyg2f4I7uA;t@7I&{v&(&28@C5O*BnE4!xaV&Ck@Dl!NmZ1M@`hqE(;|FD?G zF@vORb!msEc=Y-fIXKaL?<7Z(}!Pz4>=2#m0DC3fW;9!)@!~aL!TZdJ-Mem{t zf(i;2B@z_Q{E#XAWt~d2N!hO2?lDno4zyL1Qhrl^8rf;=6lU;Qb zsGO-*TOfDcKB=0G)HRgpR?OAg#S0JS8t?hwU8I-p6_an&THr3N&@+$^PsopK9SdFDtC8XEZG|l#div`#juVkRb1PN#>!Nrq?*Itj@qfk z$|XseZVtZQz}<2f_c-gUpaB$T>!&!zU~f0>aQ@ZeZ#+L#axq-Cy48qa&Xy^kn?#8; zX%v!Wxpo%3?*UcK-K)UWo}82OSXO9X4^|hCPz||H^%xlHnB%SU;pOATWBWbn10u5* zj$4aX-VpG&8Pa)&{ZWG!av7>83@_vboCFzIM}qb~<=Z1-OCN7OkJ{axMYvVqpa1eM z?!^friIZH9o-*$d4E2xcvyou}DLi|=-yuLIR<4$)RXC_MSHIaiu;{7l^-FO*p1pLb;p|7s+b`?^d%-m1dcDXC(_cwfAee# z&QQMb6s|~GiZ3f03rompOl;zT_gi*jl`cLEjra8hIuBISDywO)wuXj8x^6@pjp?3k zdhe?1JS6+{%cis4*Ow%i|8Tb+lR)lPh;gJYa5C9Fj9$5%LwsoAR%AgJZro3mNB6<` zBY^vvfTEoS@?U)#0{~-@Ua^?6${9~}IF%I@X;f8JZ<6l36bOuoF<&+r%uh8PEgyI) z2U`5xjz43U=`~(i=uQp#vJ|Rr9?ZF-I=R9G*(mz!l@3lXMpj@GXRNc+jv49zE{rtQ;Tr}NkChVeTZb586y~Ptc>A}Jj7EQct zId?xfMkE2~cQBc2jn)clrXAqrieK}jJ_%-Ce1ghH%P21Z+w$beIO47oH@r`NJn6;O)T073TRs5OniItR$WL#hk}okaFl=nkz#1<| z0d0i<~!J*eLtr=ay$fc zJEX0x)vtQE&bABd>+i`@YhRfoNwR+(b2koL%GPkXED zw+8My&y5^a>*{s(a6mUjwepCr1hIeGO3^D`zp3D$e(}whJJ|oU+2oMTp6Z}Or?(nG zF9XzV7q0T|gzIS%%Bc(+8G}JdX#v$E7Q^&#RyYfO)b5+8-U+x)8>%W#dit%13^&$yBJD2GRH^J!f z(S?7ey(G$^vbyhn@5zCTdF4NHP2XEv}yg00}RAd3&#hiJkl7}QOR-* z(^zuN`kL8cOHQMNJ2bZ3aB&!Gs7u}>&&;I+5sHvuMRb6rqzr$_;wON3KkTwQBDTqQ zX|D2M6?dSg*m7#RaHuJ2+vW+-p|SFEauZ6~T7tSrwrJ5gx8nm?!_*NFKJusS%`Jiik;+uZUr#tst zQsDOzfeTo-KOa4T;bLAgLr5a*>in2AgrPm$$yfO3CG0B9dBZcx8PQm2rks{t4Iff& ztcu}dIW_JRIonj@gO5uuy;Ju_uCA#WF6YlwHbURGRZKhZ?ejke%~P(Tj- zg&AN4pi1-=+d06)4Qw=x80fe8ezyw{1S*<&>{mH6+gG|)M7`K!K)|J8cuu)aA0NII z(xTZf1FCBwS{7$3RlS*3ZZw94E0^URnXP9ClZw<*Z>CHA(y|b60ug3Q1kod6h9!51 zj>kzfXW<0%krtH!Q@;GI8PA=;-j<22`=}BF#5l^jbpvaz{BURJ^!AS_6oA{q@fg{Y z=h>G8fUsHt*ZF!RAE|FEDkvmG-*jmqKR2)W_IBk(Qf>(VBm8)vMER-joB;xVl!0P? z6Nqs0*wGHp)F-=@!A4*(o$FQXL=7Kx&c(m>*Th%&x z!Q3F<m(gsj4vtJmU3&CTJed(3{cZg*CSIsangQD2Q z>d>4E(AJ^t#&>k%YIt ze35B<efdgGh(SEoytvT)aXRoz=I2qX8zDO|c6qCf!(a&O9SrjZVQA%y~LvoHUu ze?5iUa7tgku|m9`t}m|`h;elEE_CvPcz3>%wQQMvp*J%!z(HK@2bT-d1_pD)$>3iNbMV4=YW*=OCZ+5bj_~dIQJ!v5s>P51*MBXc@5Ks--pyROu?&J6w0HrX|K4Q$jY|gkf8}ISHZF3Hx%5xbQ=M?e@I2J>~1& zjFA{@+V95dde~yw5Hnhv0m$qH}IOs(eR(NOPgHoh@&6?h1ep>Pua5!aO3s;5p!`x~? zhYM-Aq0KD(V<@S4@jVcqsOs8-JoK?~0cz+epbh z3GRFvc0E`*t?&52@OCGOLrZlcf&jvPjK?Y~TB3Nn`jv#*#fk8)b4qBr9d5fnIM`aC zrf}WU5ebj>0Y0E)Ryjh7{~htYN0?{v@@+4K1hM60YUklRS-x`H|7OLzX4+(ptB+@^ zqDcYVrS}r#1~r%31KU zc0Y*7)A}zI&`HY{}aw_-binZ1122t~hp$|?DebpDiHYWV?$IOw1@8Ffq3?4#fIjtI9R178K z9nZf<47}qq?xg8B%?@T%oEz_|VFLh65Qq#%iGr^`zGpTs!vi^vEs;EOU{1*7P-gN* zCy9$qB;SFr79sOfO3gC6?VdX-gsd7yXE68Ab|_v0QS7cv)LnToZ{o|B^5gSPFI;%Q zm(y_JE!Pl_@b;EEfZU7jaD}QS3ESSHb~!@s0gQ*Z?BmCe&I)cMSc~eQ)6s~DtXR)r zJk=EVw#u}56zOdw90m>Ur!h0qzKnTb^gXH+aYb#ak2T<>^xYq=u>EXNhH9D&!JQ86 z!@#Vuxy2FP(IVOWXOiV@-AP(3)%-Zdy7Kba^_xtSM1i!E_fh|^Su&*`Z2+SAep?YL z;eGP(@uzj=EqVo3@W~gO{kn9zkD#Niud9D2k zjZ|3PXJ=05W9d!A+~*?co(#>rD&`PlYpL4IBt)8#<^5Q>(ug#Z_63s8x#6Nirml3_k@mcKiYZy@Av@Gg{!EY~qlM}zTxL4t{dtJdY zF*%vE%QoB=#etk>sM(6EFSA=w8_3al4dBqPdrb`uxAD&(sH&+krYmO#1_oZ~sFC3^ z>Aj#{g_0d9!b5g&7nt;gN*u6^;SKf3jR)ydG`(Lqz|_gFmhP)$GE=uX_hDl`!)Yek zV%IR|`3Vd|a&zfc-nzHAUl6Ea(`zbNYedYLIX}3G&T4(^IzH5Qz6@*fC)mJkykdFN z^|FFz#(S7V=zH7^uTPA6qNw}14>jJyzAOH9B3~6iUjv>SrxWDKbYBIYAG#@!+)q5$ zdin4x*ET)z9dxv7d!=2$ej)7DY?#pQi=`x=-y0W1ln9AYUr(tPuF{e4YG-UMbXR>< z=y7l^T-|DNOCoGuTViZo)Wt?}Dv{V~g)4yywC(rFlZym9M9;+|aK@nw;)Ugqn{KA- z4NHvk^L`g=d?+kqrOhjEOGj`%K30D7JS8I36PWp=Yf*L|af2PD66+t3iOMzVv;KtR z@9wE;5*ayf7Y6Hu_-tqAMG?v~uCTZWGY$XkrvTESmVc;!DTyYpiHpHpBYK0(gh zn~QIJAvomBdEm?e_^I6!@J>Si@w*epvc78HrPtEpl<**3cg8b)^nz0^Z6Xy61+c$S zCV~p`=e)Tg(npE83;DeCny!04SjJfFn@d@=29lDF7>8Nnj__)F;{rP+$hPfqeU{1+ zlsLko`fon)6%u&lsx}eIGaK3jC&k2cVOL_0s5xYx4%TIVn4PywMA>dwg=Lb;_E<<- z&QYzjrOGf|FUb%)YB;ITIvN3T|>%Tf0uoj{s%p4#pt@vG5+uO%dBHP1NTq_ zzwn8=cF*kCbev(^g}WclwjLBk^?tSx8Su8y3aS?-USLZ9RkJm8o(b1=|LNN**9y+m zE*XQ-!iMt?o?ZC8D$`x$E1Cz#l+p%*=xIP}`megA)^5%7rBpU25%ndgCi<%k9YF4V z&Lpu$(8#qqJRK}prU}YEFRbs4*Q8p|O5G*I7&7B_CV8$SkA_=*z<%&XTqT}t&^NWD z#?#NQXGbs^iOWqC6!kNS)>73j<|$(B&$Dwh`^7{sJtBh#Oav}72bdD92L&Z2KUb`| z=Tx4n6RDz{Ug>tA;N~EDmdwEi{<4Wxx$HrgUONei)t-lO-0QbbF|Y>njj0z6A1-vn zzmtjNW_dxUel8)ldS7lQu&VHQg4E%iaihZ*7&$d}VzdeVeB4FP{?aSpJ5a0sQOL832w$t=`#cZ$#i{G%uH;S!N`l zTHEtFNg!-bF~FF`-Bd>oGad77AaV?|lULMopI{xdFa#7t9#Wa1e48GJJ1q8D0t?AX zO)VGi7?-<|!X6Tx9NM&{K&^guWB!5=YsYCJKJDcEZWEdFNke1luRIWn*p$%~blH!+ zmGhSJecT3V6<9}@~tfExJu&lMI3 zljxX2v+GcfLZ0;r6OPry)%mMy()SL~LiGX4*aZx30eT28q^vkJhELT*^zq51+GX#)1=%iogx3!Bgr7o_gRVCpw@k2hT5n&C<5;t7#@Dfkl z?I3w=^OhodMcnY{4#%mGv~hU*O;M_gN|!qJ1vzFCd=~=ak=pk_)4_-EglksN&B`E$@A;N{r@T8M9L*yZdx`&OTDL3i5+w&7r2sk5%0V$pUW~!Xs|3;7d~n`8^U!qkgP(25LV9 zkzAmASNPq%iwidGV>9K)TmH8EM_VhTodS@H{Hbg~jV2s2!K%T6FnhHItIa-}OlF6;ttzG%d}8K?qEiNVk!(0o}J zUoSbj8ZG2LO4b^xe&8J}gbWfdGpxIqMf|Mm8uT`IYmhy&Y%S2H0a}y`D~TnB87fei znkKIp=UwP6ESmXHs>BX2zn_iD|H`siX_sD2kv*ULly$*44#P>KbLoxELN}l0VvpSi zR$WNyS=NW?ru3TT+K`tzyE^sz!*`o?^H#S*{sP6LGYABKe2OubVdH_{xsM%fqo4cs ze%0?Qc6X;nm*qe6zW{NCzW)p=l>sZ*o$pBu=<7cRk&Q%|)JTAmg+&|z!CiTW6|Xs; ztIj9EN%nhLWy8$@)$x#QH|5j9P&W)-h(&y0mqST6r{<6AX{X>*T{Ca+7CK{ny_khA zYhGl$`B?A__l%jpbshZri(Eh}vtoJB)GA=$KHPU~IcCSMEOcxeGkho0bTP+Eu0+gy zSx|uFTddq~$_T{v@(_+f#`P2%vQFPc&_)X?Di8(z^Vox&XjlMLBLn&iYX;(T08X*= zfZ8T`s$6UDHV0tVNx@|gsrhut`lgiE`fT6AVZAS>-KvW97uK{G`pF#H{qR;(6}o7} zDJBA|3Lb?OzDo$vUza43FGElAJLOTs7RA)udq@o8H61$bj^pB|nQgy%o2)VAiWT*5 zTqj9SGDhe1eksvQ62=fr&){Np0h--<4y3e(tqBMT9i^qELBpqq_+>~+L>3|RthCQJ zfEv6$FTgu@IlOdURCl~@r&uX#p8I>RBuJc$kL1 z2ni66MymY}$a_vGtWJl?1RKr@8ALs7+c9ifF%+f*MUWCJLC?0JM~%Yzz2R`)_@v>m z2@r-@_i_F+hn?UJd8@&^m$4x-yob=$LYLVHlH-%OP@PG$EKYE-9u6F8^u%IAtFRxwc z&#}&gI_#WFCOLGwM|>AqRP3rG2RSX^_YG?vLlMW`c~qfgxJ=A(F!P>mR!8G+J-HuY z$@ysF=D+kxLJsuo*MzvKC8;F+2|QngL8u1*FAgiQrLZ!ScQQvPAj9uw;ATEphZ??U6c zH*ooV?O`rx->3Gf^|pXr6*SAyy59YqM$>PRmX2)TkuQISS9epEuHjQO4s(MkCp|^v z&;EUHCC@17IYOeQF*OaU*9YXP3mf&5`^&=T1~>b1s(j%t9LLn_|AUvyND%ApSVThT zd@Lin8wVohv={`$oXVb?GdE7e{Wc`S!#>)(XIaumjoPH>QLd=32TxaOp_fNbkuxi! z47y2G49!KY!9P5kG5O59P)59IqE5US#wNx+>z9m`vr9NLM*7d4YHFfyZXtYeiWEAu zD-bb9PxqVuEhmF_#-E%F)Gq|w>EnE!9yulOCse%eXZoM=G6b7KycGm^QDo2xK0=ua zprl0En7^T?MV|Wy8(F|i-;dsw(%C}QJ~#9xo$_eH%^2SDg6{9WW6%A4ogX}*7vDMx zsgpm%0-H#Qhhbol`{I$k(DX~*iFJjU>E2_1YJ4NoEXIR>sE*TTn4x>4exntd5KcJ* zMGi6}Ay#3*r_oCFA>=^PNOeO2MAXe#4qay0anSrYT)6OvbqR0?s3UlqS^?nEH+rAJ zl89e7)*G_Y{dE4}F|-9%&!t~STud|`neEJ-xMyV)MC~0LW5>dOKD?n==^xAR=!YsA zeKqCsp&;+>0|;IcqcGH<6GL0dOS-^PKD!`geRA0oa;iP4cis=>9iK_^&APd;a8RWB z@5$M7=>E*r1`-mWBQ8as_zfK;Rwu5`H=v9x_pqM5Jo!qR$K!~D-G-RBLo(Tts<+(@ zqg6l98v8E=1F4$3Dp2dRwRmd-q;==fVHPL@aMWZCgF0Qa&YlqCh*Wz3@9*w<+-;f@ zuON`-#kWrtxq@v=ONRse)(N1L-Xand=l>PHoVZy7P>t&$(ze;3j|06{rTN-P(K`* z?YA2cn0i+c@<$ly>DNm~%-NB5w=me5p$~v30^Aa9r4FCk@neMi{48niI|=XPE~ z^GLnF{uyHG@V|eOo_aF>j9n2e9sgG=$QmBj$Tk<~NnVZMc1bEf0&d;>k&czkLGR6q zP*(MuU5e57Fx#?nWE(Ki>=2hEc!AtJSq;3SeImn?jInO(hbBSdp_z;aO=B}5XS3UU zP2imWrmG8qIBYfd$&DZe3CAD1h5=+u;Spvlfa z{o~Gyz<1}u((+zN9>=KG4HRpzcEB7Ns?4vgGV%2NklXxJG#5fFis`5yQO39}=@c?~ z6}6s6U48iMpOmCLp{~2K^nnC!4$jdU9F)?ISffs?j>gSfBxUgd%#rtCb{{dEdrDv{^{k)fnDAMQ56De>o1KU>)y#}&=B**+41PYoqE=Xf<^ zyjt;Y&LCad=!jt;{ht#`{l-0I2QiFBt{|Wkhav%hDYQa9l{Q~M+(};HD|K1&@3R=( z3a@mh(A@oeU~y5EP2STjYlL#GHHrz|0#nop)0Dldj6BXO%I8Jo;4I~!>BT9Z0*n;m zjkR-Y&wU=blktmHNelJIOTU6KFAJjPVT+MU**qohw%`CR8kQd_dM32JQ}Kf8sCywB zxKv-1+~F))u}yne0sV~CZG(PMpk z%vEOC*n&34w{11%V=1Sq@4BjQ_3W}6I8Q6Q*W`KWALZb=l9{guRK<%ahM^;l=l(ju_;tTv9PJLqC|ZB=29 zdTdvD4JC%+ef_bwm!w?pea=9+_>>=x-T-}dk=di;(r2Zr@|^YybxW+;Fy$Ho6RWO2 zs^l_>!8BFFr|iIia~ntDm3$R0p7O1YRR-Xri9tePFl4azXMjrR#ChdTNoueuyI1PCU|>LJv%9>!`o>Kd zf2gNNsYj_QA{lFLB#niKC%Y>IfUlZ?`5+(-huq4fmNSPZo&{yznM(D`f$0W)k4x}&uB74I+kpw`b4Ci(T^3a^p}jUk$LNaVoOBJ>MpgMA zy?s0qkB2&&;?0T(*t8qyH57)fX(&D&?}|x195Y=>=|OZOw);lzN{2EZ%C|WoK8Mft zYSxO14(@O}7IydaNz-2=%vLTEF?m3C@uCl6X|dpmvKGTgsa>d+`WELJSI^*@(9=701i2%>&9)YJQ zt+9i)I;Yj%n-54`#TUM6;f4+4D>KDDOq=~KuG7y&>e58IlC<=S9HnNuaReD9YM=fv z?A=P&OFwd99vXbC%$h6{Wf~e8k2M(_Y95g-8K%J|oc)xc!pV#^Z>_kMnJD~e#Vk+w z-33O$rM>w2#xHK@}$)zH_jN z3yCRex66y)pt)K{5r=io%=^;d(`OTNu;y)^u}s*b%5@o%%H36YTOTj}RoADZu4}@` znN7K279qHb(BU#u$wa7=H{uAf`wptA6;Pc88n* z=wTq7BpXQ!b1rz=R-rhwX!3ns$KX75yP;Q1WTT7yBaTh#tLd(qOop%*1u?d$Gc4`m zxZY`7DvckKVK-EnZwa~#>J7M-op!9eJfFAePnPhS&}gfJ4)#5mhuzzdxNi})UOKo2voddsNX;y*V z?t~yBhs_SUxh8A2)~-BXUc_VGiT-athElPSDJ(;-8ol{a^%(PPYm zRK|oVT2`vPMJT3fH2G|UU*p|icwj#&pO$Vi?ZrmaY+_MqI2_89&r-M3S$LhpH}niL z#jM`7=T*q7&#@YOGX@onnaJ$`NyB4NxpcE?Y}1jxm)F2Gk_ZwpGt1O)?!bDYQe?R# zZ01!?!m;K*IXTHG_<1|xW_$9ssWJ3?C)(@eR{s5`N8yzmO5VG@LX{$M)U=3cdM=7wmji3HDQ=S)r zp`j?228ea>s}QB(i0wFw?Tiv@1F!n4Wu`8hBJeUp*^tT#CsA%{i^@ZfVcRubgP1Q= zeoaP_v3?z~gGZ()OT(qG=lY*Xvntz*Yr%>;nPXo$vsO$~rKYBKsI$`3U)mnSEokc9 zQa99d&cO#1;zuIwH%_j_Z;{1c(ZUKKzw)%_xA`CrL93Z3$E&2|iRl3})F5ZRU2NOP zt{|&LiyI8SzLZ@mVmDwcJ`_}i3WLp*du8`D;}4n9l`Q63|0rDnd-iu z{x=5zjv@yjqMk+3-1HFosTTyiq47JBMJ@jK!h)F-n7f#(BUt z>|UX;v@jctA&9j?i|zQ`hqljQ2lag)`dU%UUg`#vlN9m4COV! z!qtcq^&te$1O%+zdD%@tZIyAtOZh=Z%;Mhs?K^WuH3#qpZ+?pIW(rQnH&GlL5A)2` z&muw2MV|a{E^~G>l8)+iAl`8oG4J8@dB@8bE)mj}V0Gtda1acvtiAjuw!%ST4`bzS z{lIpC-1q<9K1wd=3M-g|s6nC0EO4fFHD+dJbb1cI#_gr&=}ord!Eej2_2&EB<9mQ@ z!3K=PbV|BHQmenHSJ?CILDqJ|n8JuQ!ND}4#eTPGEvt!=X`-Nn)`K8snuaqRLYHa5M2&nbEEGn?YpC5pC>Smt>qcR2dBttxcMq7t-SSkHd2 zYX5ZEAiCkZzS`~XD=hROsn>bjk#IuLI-_vaop zu%fM$3Fj7+tjz(~*qZ*#N1?i$If2cO0^7^!ETD13>l8(N)go#3{D{wX`O@|UTb+#g_|6X)w)rEjTSu;l0hP2*EfKCErae`D zF-H#jQsFiW+m6VTZ}@>ha(AD|i65n8W(FzTlI>N&d$Qk%;ey;=ptb+;>AGq(Cr~5W zASjb%n{gD78z9~ZpR20EnJ=m9Ac&Kd=+b^m;@4zf2s77SNRc;tYq$J zUx(o5LCNaHim(tSBynh6lMst)hv8tiSAodq!XfiIm=cR2YK*{uve~@sLTDpVG)cjI zzdMz0--?wSuD+Xjee7(Y*C@PJDet&5Z?2X8-P#%!CO*fBwGnj`cHU~Q|Bn2woBD29 zl>LV7EXNcUQl@N%{LU-utm0|rfhGJhv4YR6RG2Q^w&esLv^rmXB5!{c-u+pb*m1IE z==+ixjvme#46Eslxlg;~C2NEXjEvpcJ@^DPTkX1$7@rljHbp3uX4iFZrKuw~`VWhw z=32>oq+7u=x-)<=4wCoK^CrO)nx13UBo9nKmZwlce1G7~Zmu^8YkAMug7xp6`H0>b z#N+EwUFx7b*qJ#-CMLi}#>&9_Q4=eP?7(cPBfvwb-dNp&mv`2P=`@R4x#A!g*tNY8 zt_5>Yn8{6TFx^p){$&VJHsF78Y#rrOcXiV zU@n`&X6ji(KbFo<;Rk%?UrT`srz`M& z)^Zg|Bl)^N3e-O$ri(P|RdPM9&=_@`d$5mc78R2}92RI7*T1eFlA1q=G;KLLn6Huh zW;dp)ZwZM`DX{m>zXp6%r&ce|UDvCbyO*c-S#H`_+AG0CJS<%N*Jl5H{RTn3HSSvB z%0)TIII6)QF}uoy%zyI*6v8XI33nAvmaeYZ53C|Z=b~>N`1Et=?4KofP}V}KbcJef z;E)|9-&qz(2m^|+T+YMQbYz{^$VoNKhRZ- zDc!T(wy>I*HkS7g5AZCUFA3jTDob=m?)N#`m5ac6W~v)4EBvh_@ zyqCu}Cm%8uGP{1cC2O^A9Y>&E$a2`dqd7OG#@1sy_#}?hZ^UlBVLB-Ch*f7=G-fE* zEugI+GRe&@aWd>1Tcy{C25MQVmhBzPnW(H}Zy@9&46kaB)y{e&kBOk_hUH$)QPofi~Q!JDQXR8F6Ypp-3zSgWe7^+iXYir=JU9Nj1po}MIB)lSR z!@tsk*Q)2bYL)A2#lCJSNy~uBXr(olqV__BRb`@D zVwIFhx(w);pw}$3ktBW*WYq5C<1?tN;R7fdwkwHes8qH}R-16QOj#-=dXFpbaR-M; z7iDQ~36uK`r37x>xbRl*#~>&g#`w`KCFJS(!A+W5{y{;6=3`tG!}@+gETtfmDUBoH zKJZL6K^iOHv=XozyUL!~E5FkQhd_AtHn z(opB|s*8?7LfiOh^KfUY&j~q~jJfgPLjNpP0ecKM_+T#$WyBXCqwIeRl9tvpNcwDW zZ{xE2;|pi`WYr4*G~>Y+kAs0U*m$z3b<1ohB+0=%$l%FMFh1z5v$Aa1MCF{qE@M3qJ>?+) z>HM{|{G8GGloB&O*z2qK3cC-xWB&xp>5OBR7n-0~J zov^x3Nqj|hT~)+2`w>+%1Nd4-AlF5>=%v7Z z+E-8&^Unh@0#lcO`)(3F2z}cuNRa=G!^{d-o5~yG#nI203Wk*im6CD&{B(6mHPIOM z%)1aBhOM`H4er-dv#gtQVO|M_Dt^nn-yg*KSwDIHx3HhQip2$cbnz-Ae?7?B zyJp!TN4<2G5wm`3@?VmHUMuuftLXFKr`88GhVCN&49tb@px?$z3&3I7M|7`GVpK|9 ztfTFFBBOh9B0B@MO#D09A>^9Ze^h3vsZcie5jJtV2(a74s%x-r{s&;3!vNs`KMd%h z?2?`j8ZTB=B>{mBIQSpIo$}~IMbjbHgtAe{o5dgQmm^FUn&01&?$4KXNiorXYazsxek zOi=Y*sIp1`;u&hY6*X~E(c4~!(N;m`Z#c)3Ioef{uT^TF)>Sxf)$Cg46z`b3+()&a znIVF0F%`OUkmsUu4Ug#8R{j$5{!8G;hQzL3gSIPI3hke=vGuv`K7QIkm!1^TivFFa zKpJ&vzq|YtVhN?#tb5Zda+rw4gVV-Frv5RS&s&mqMjNS}E+FRn7Ac0RLiY7M3tdz` zx3M@G@0Qx=DN$VY0=n*>!oz(A=#0XSGop~P%z%)tFSaVmkLaS&+9ihxINh2IO+RnF zyMhN6{A|Ign4I8i*m@iIGf!6i%yo_h%h?~Q*NBtpunf)(5!60Wm<#$mB3xYut z%YR9b6%@M#_06(E^6CP~D}WR$c@yi=OXCJ53|~ARUjF%?{jc0Cav zPVTqU3q{uxOSwxKsQc-Nuk72pcw`(^JTA4hYrbt(0H6FipR4hwmU0()2L0&OzG-Mu znSb=(m!!XxiGMCk3$4{@ApZK(7Y2TAk$-Nr%Gf(SU>aYJ=nNQ(6a*8R$O{b0&*C@d zspZJI=-PChU0nzvE3`5haw^elY@?mr;51w6so+RQK9v6VbN|N@l$4b2UV|9TvW5ZucO!qOPWlP_CxtLZC^zn1qgn7`*Nn}qFPQH|LOB*L<{>{Xy5rEBt43Z zWe9r6RZHWZmfCDJWDS)iTEE*%N9uijscWdCfOj~g7a)aGrP$5gQ)3Y%%E*9vB0r>f zw(1dKYQnm-sF?y8id!`y@GBcZ!6V!CKi-_Gfye{*nScU4L?9d_y-z^x2cIu7A@vZ< zojmC6uE(&R>w8`!kf!E{;o|LfEtRnA^85oQDfVs5s_qrVN2qmcs_MDg56Y&hsArF& zruANpmFDJ@ACwT5#FGh@aW?f4#2irYAMjNAD6TgBuE z@pL@GWN8Gk8F7E3@1=fwFF8rSu$?4ahB$lCB<}SQZQz$MKe%A>!^CxI8eKLDVJF!S zQWIekby`BMJ5g6czOn^)S2&}Vd1)CvVN@he`+Eb{Qi?cL57~DR)}X-;*TRW07@F;s zD-NlVw3L){CTD?<#gV*q4RRK$-vT?#?H_opvB2%zEs``>uMM^Hv{imED~j|oFdgZy zm$XD_eT1tHhB_jPi=yg@;s^G5Y|LcRuO>I&=4Y0@LiBXH2NPn^5L-2B@jC_bB#mgQ z&jwK_6H1T$(9G?!BhNIqA(*8e{I)>gDq9=ZJVmrJv4ta?{H$YU!)xb-qbFS9%RFLF z)ah=;*S6HBHV&vb!6>bXIYs7D0oM+4+3a;|MncWeR5&o89hugU3el@V>wYNvbp|r} z#~K_M(5ZQxJ6&KK_C+x4%XX+`=0`3$QYD|f`+Yi8kfD1($#&MA6$4}?lDd|&@;x5KjPefl7V$9 z)x?j#+)`RTfWQP-zXy4LpwLg@s|&RKu7B3o;u?|;pLqm)J+4a zhT1^8iMT@kz}RNn{E63L#B$nf&P32iJaa3)aFcPB`#hR(WD3#Hz9QIJb~YWE->cC9sr29WN5mZMERe?QT?7AL z4f)0~>E#;gP8$5cJLK-6Iu1f5lET`eh>4HH&b+4Wc6`st&yxHBH%E2}@ zv$AY=!mX~@%pHX>`X}SKUW1Fx$Bv-v&0l)~ ziAgUZl+!7I%R!AqBI*#R++UiWY4~OiZ7lL3PuT2h%Y&bvqV#YdoMpOpW#8;uT{ZmT z&BM|pA!eq&w==J^^XVyBBpT)jO6K2S449pjdllM%F8TcJ=P0YtuDAu67;v~sKq>jC z?oyUUlx-c_y`?;ZT)+AA-5xTRjV`3Dl;Be2w;}Z|f(Hg{?gCHY?5*&d=*@@vDzBQ{|230S?`^eiHdj;n8jsgj zM=7`CCzaN_U+K*45KZ16;{G%cB%lP((_YLbP!{?sV^9db_9ag4`WItJx};AX#Fa3 z-+<~9C{@mYZ9RjWZj#|Z%cTc2%O>t_@xMRy>-;I1(08HfUI!!+lpi2(8Vvn?IgFk` z*`NhJpKHH54{CjWR~^4A*|*TKit$1yut*jp?LY`a!VPYqKL9bFKD2y+E?EVe!+UG} z$nAA!UZiy4+FI+EfIBySt>f3e#6ipPW&J?_ZT2Br4#9xmyVr0aIo$CJy?nBa95B$C zLI}!0K}!Jw3tj%)vPBx=E4)^2@Ef-7D#PCorWb8E(1QEdnNqHyAJ>WU6nNOVpSv|2 z%t47>2klQ>@(C-6aH)v6Wr;@IQA)gnTHEj^iv*uM`8m&hAIIJRUFW(?!f4}cQHY!3 zKarck1o?xdABpzejf>kln{{@F!&Va;Se+HtU1QcQq-q#d5*O!;QBjeiz13__zBybM zo-+vGTKDRH5mVPzqN;ZhMa31BykTulsEYaLTdM%l^9LXa?Co56rwRHIa6L*kO$xNh zmFNXMgzAKI6}=Xq3P0L#qz7!#F74L8{6ViCpFS;7As zT`2F0oWYU=b!Di(IlayS%cf?m`1G@0p{He_DJt$itvCVAF zH>3?l3Ar}9WUNm9PhYxb?W=+-uJO7IlHnaR6hJ^gptEub2)~8Z!U++;v)?_L=fIO; zA<_3Si8r0*f^H64eq$@J7}LI5)kk5gmNQ@L0)e!q)zKHMxWcW;KW`xA5Lys-HaZ}R zpx6?~efpI`htFDRpcSlM0nm!7f-W{tzZmolrsq<&ouM)jIxUOfIuRSsAiV9y{>!8D zGGK7WuPb!&s^Pu|TNUa__g4ZyRoLV9fd}`UNEo#9Ll}!L$)irsEitx7z3hum@Syi1 z@RxkkXj`k73H>O)?O&Sk22KW&g}KNi{UGCMSAMCVTH_ot54UzEhwS6O;ICbA z5M%-ZANAqhfl?+`+;Fsh8ej$1r?8Fk@Sl{HzaLnvWOaX~my*lgL$GpIT;lY7nxR5z zA2@-F)xJV?KX|K$04Ol0^P_`*{<-JwEFKoF=Ne^)N&&y{znTD67_>7MT(xQ8T? zWupi4_ywRACW$f;ef>lfASH4vYgFEp$I?K{x%N_4z8vO7wDX(~%?4RXZOc3H_CzSV zu(Vv+DCJsAf?e!38W?n4I!j(Nb(P5+|Na2rNDvy@Gfg46<|BNX9w9CW)VJ#O%MEu< z>(WwiWsnOxO2CC&0)5*-Onnj}(CAN|&`B0TbdqKqVs1ZwFgEjyYxcQjtfC&t2fAHX zrM)z)P&b804$t~sTJ2KKtA?t6eqIOkt0$M=U)W&)G>U+uSF+xhOw`PJ%4#EfP*Elo z;I(FKv4m5`Mn;#a#@L?M<}NNiuefUW%31MV;p+1P-l-4h6EXus=;cT$H-BM}4N@MY z6wm#$D{3nyumjG|JJjmNz+C48= zTCCS;iN*d{edgVtzx;FG*~P2>I!C?MsCGbk03?(X0!OePM*KV;k0_$2h3qtWaEo99 zll$_z+bcLICl0f{umPUQW0 zM;la6oAFqL@50>$HkIR3LR`Bo`{}czUfg!F=Q3XZGqgZ2*`wt$knxsqTt{?_=Pw5I zP3L<_g`dCdPlPdZlq0aC77svu8hgON zpFm$Emcm)zbkp#9IaRX5FBvP%g*Q6s+4tXqFXUMdVz19 z%w=ngZZ(8X+vrM4+Ii`BSBOqrslRvW=c{%x4AYSwv33DS2mLSB-aD?Tt!W!p6cr1o zfT&cZDF`Tt2twc}MY>8SK#<;%-h&*EB3(g5Y7hmaOYa1gj)3%Dq<08}76N>0M=5%| z-|v2&_x;CT3_E+znzd%;nwe{@EfQ@`tQg%;dyJ^-jwaMq-F)d*&6T7DLxb=7ZC z7b3dOp<8-<)mP7*PKd-v*VTP^in{P}@0W}l03QdUg%!Cx{T8b8UiQ7p!Fii;Wz&hZ z#}pfp#jC9HQ~GcQAhJB0+3^wHVj-1W|NELk)Avemm|QFTt*et*>=pQ?Px6-AlUKni zcgN&tVolQw9puIb12md3(aLued6%8O4=Hf}EK z&l%NiVpe!vY)-0quRZ^7;MjkK-0p_Zv*Sb)bF6Ujlm?iv$ zRPAZmnO1k zxyT;tt)4?e_eY&XEOYU8Me;43lVBXD#&u)qT~KS!d94DUpvY4?GFHpOZdQM4*r|{W zjQ!eB-=n8r`;cXlq)53eo!YqC2EaBwqYMwEI1^k3dm5ok?zlDdbfI*pp~GV9gVo{M zyeHz_oO4+N<|}vwy!OM+qLY|E%n_Ny$H@tG*46G z6?0$wM#jc8arJM^2NmJkZasj*4PW1y9=O&u2|FCxJ|QC$YM+#>UaV}n@JWr&&^Efk zIEZCxW4hPWCiKQgpe^?|VDrN-fRp0C9(sKHP1M{EfcX!HuK97#y%Xu#q@?nWa5VDp zU3jpT}d))bs%%%B{e-@|MaW`|N6U2cfXt=gscN06`T6zP%6oiiCyAL*g>vSn3 zwfAh4>MpFQ_$8k+zoBiopcJGcPWUD9 zH8aVp1|L{yCxg-%i>|Hx9?-UL}f$ynV7~%&}$(NogV4SDCcZmLvX-D}9f9cF2u6IwQjx zps6IYd@=b&Erk?WVWoiw=9G{zAUH#S?r%s`0Hf2&-3?i*=!$ zx^w6S!MihmTSL$-Gyn#RKVhhn5@9>~ROL<5+6RW<{Tu7*%L6MX^sO@3Rvp2-bgmgzlXjcG zL!eU4Ln&K`%yG+o4^oT9X`E(*+ecD}>EGxpeIBx}eY3F~tXmn-O7zbS@gwF}Fc`zF zV0S_Md!$_#3Ax^IpL>TRE6%oCXzP{b>np81b10{v4=Ht`&zwrn)oq6m&Y=)Og@b}&uq!tD~(3v;> z;r8vK7b<+A|5H5YEt5>dxcQmNbDCF$$O`V{_YZ5?kj>C9K0ARwBgJn%$>f_ z-fBJK$Ai5BPE!WDy)4P}OaKYb%@!5!+gqLzh@q_&vBc5EPIlf?7XD|aEtVnbp2Y=OuX>waOT2X0Iaok z4n3!3y^t;uYNv1lOJeF`f9{ijiS)H>wif~{@?l06tZis{OPgC)b;STx-Xu2CZH0!V za8~dx#FSr5J5z0lKp|>@xGRIr75j>khc37Ea%uXg93=pp%B)h!PZ9QQ~P(eJP=z#q_Px=<55F1MXot zPu~c%)ZA{4)6nS|gm!a?LfeYVKkd}%Uc4mgnzOEQYMv5J*@vwZDz+{|YE7t0mCB3D zorxq=nSPVM>d1Z-Q1ekGmIqNrPt?;opFDHcMYLqq`6aAO(lF{`;f!F%@*{Wk^arWM zBc#Q6A#w?1o(9dDr{+I*)PLbkK4{>d^F>$9-f_s-sM4=>e>oM`&{S*Li%!$9nPAGa07bc;wUvaX^g9Wio>ij5 zlXqCFkdd=ig`X|^VN%_-@p2t^eI!?hZbC|607(?5Gf16R@I?bpc&^)!p=a*8b z?#>2Sn6yr_BkfCvPjp&EYgpGK%!RQYm8h31!df3f=!JCX`6u3B40>}&u@l)&^7#{q z(sg5e@`|`5y{3`&$I)7?3PW$XF`6%ugWr&`qg~gJCI;6`9 zo}^9^?3#XSnsuuz&ys)%J4be`^6;t7%_o@_XL4^XyGKXCj57{qZyhkrj%gsPMZTss z=t#-gy&d{46bBlG^cAw~|S*S**uF0n6JuFb0jhbkel(b5BGCzoO z%o>O|oW&67SV@K8dabr1l-zG(935by*Cwk1xU#fM%VAs3dkkcVDH6sK7`eY0e*W%R zgCgxgJ1K2AFJ$x8cG*oWUH5=lc|nCAYA}utk(eF2^a~H7uC16C4#H$LJr30R#W_bX zvSSoAk74O(-#`z|c}BopzAHH z_EXVHOnVVDK4D^!TDT;)=2R|KT;+ct_hofZy*C?j=&Q?cA-#LkVhh_}CfU)Wl?q%% z7Z>~1a-+;C$89S8RHVn`(*F{y@P;M66!j438oX!y#oVDL0K9JzWd}fpp2${-vvcPH zVz^);6N{}X_N+E$rAdirbZ=>Ct8og7pJYFrfYQxXzuU)>o zlM|}3&zI-^1@)`imQnsYh-q*aBRE6UAj7OrmuFF(IVx;D@vF|$S zJRV0_eHs}pF0{y3_V)3{nl9ZTCh6Vkh!eRK+zx2X!Td`_(ybgDd2U@wO|dqtLxDUX zDgKQ?e{kXU09yJ^OwJmcK}cHB8_PpKb{YIKx5G(~p^oHX_$@HEGcY204*cy|7d`(q z5z3R9ThEL2t4I%kSFt<*`>ld4-B<7Tsn2`l*M+dTeqBwst{T5@AjF6%Z}-VE&!@Y_ zsoydW4vUUFG}SJAWnE1Rg)Tk5a6c47KO|`^ z*?jab5C;{}4)g^<(^*5yF@Fcb))%G#+uKG?Sn}CSL1teZW~j;3BG3+P`Hid9ThJXg zeR86)xG=eWVHCac_6j1u=29Xm{4nl=jBXNl@N8RbCQOSGpVdxRn0N(h(ujalPCdzp zcFG3AMEaW_BV24EDbC~#M;8k%#DCYCxHniszfXL-Ui8bd;Df3Fata&OREX;7!}Pfu z*q=`GrW#4ph%Fv2O%cD4QPf`L1HbM4M z>|K+)z$14zm$VNuGdd$_ro&MpsSV%NA6ukeN@lEF^@Vc?G;8^+9{gjDPRKnY zTrn;KvEojPx=Rk|xOex~r@HokDdM(xuTtP3Cp5r{z#r$UFunWUzJiOF@7)>XGf@*m z`~w>vlkbNA^DmVJ@Sr^R&CGKVfU=R;_WnTm>}Zr|<+lsBYQB4J-p`qBXT5()NH}@M zc&SQ(YdmREQK|ine(R)QCCxSEL+0odjko6gvHrrd!ngf}C$DDuzFak^e&A%jS-60n zLtf8dx*y#D5DFLA%9C0YW8O@8{OQ+)NvEOBo9Y#`g5v9^d%yZixu&IXW5=6qMnaU( z;v-3qV-x~V3<1K6F|NhK@QprUOLTP)uJ#g5Q`E}rVfra{x&-rT-zOsUcm4+EbqVVG z@RfKrk&o-*B~-E_{YB`z6ao|IS7R;WO$I$tLA8$c zq%ZHhqp0}trK<1mTr>0o4sPA`ONkpB_CZ~9{eP$70z6b|R`E6yk{wO6JZMZJIcCjZFwnVwzr_lptry~(QxeE{#$GvmrowAc^$s; z>htF~O1|k9-WuSNrLLY0{F?}sBU-qK6TcM!TG1<@Yi`^b5jVwkUYyJ5Peqp9%1est zLim>PJv#T4`zBLMz11iF{;){*M9{iM6@?u);Tm8?;VCGF{BU_UOG+EAsVNfUV{XzQ z2FBi8NhCtvr}5{Sw~;xcv>$zmw32F-pT#HfF@nN#=op?RNKC1e%liw480lXf!!|%w z{(Y55xKi&vWz)!5Vq)Ua!$bg!#W?0aXFbXFja7?(0ZK<@PTqq%oa?qZ2e&-ep6FiJ zEROn}TmvdAqa;S?I~Ny)PgMDIEvHbk=^j89fyzcE7gwNM>@uhlSpI|k^KQQxm->YT z>y0fW<(c3C50M8zgusPIpuoy41G1*$;U^1z5Tb$0&Uz^l^BC3mrO0~pWyy_6;($MH zfCTRc(FhI>ewh9AG{9L0BBWDJj|WL-R;!+@asxNFcK1JbVaE^3FmMmVf2DtYi;E+p z*jy#UKA%7;{(+5mqlAdd(LAvG_jA`@(ef_!w_gjc_f)sv1+fsq`=Npp$yX+LdqwvF zf-tD7Aq=Cec7kg<(U#`=p2(ECZ}ZJ%4?Z-4C%nZV(WA zQgDJ=V|?9&69Xigh$&#NG=~*rZL|K53`doAop=~}y_j>NR2+0=8J8C&=jaaNnV$Y= z@9a(#;gd)bRP#=1Y`RLgoeOlkC>)_TMNn6joQGZ4-0k9Jz)03Q`vMn7TQo>IoO8_Q zy}bP2Zi9nA+ID+}4c+xyA`}7>i+&th^i2!E%B&EyivPI&A%y}Qc+FC%{A!=C@jz9vX_9Pc|Bqj11%nl7&Rn;rGd4)#y5V;B5Y}GO z^R!A)_m9r*9*GDVd=a>h9rwOWoEdtWhYY|Wtj&hcH+M3meD-^AF6(94?9)fQr*E|| z>PoDFX&^#cJ5&%(efxbH?1_GEjRNYk9~C5lmVfjK$h{uWqucHHoK(@CE!^)kSy%DF z<;kJEk#FC%I&~!ijE=F}{4U{tC+6j7Weop%oIpY{X(g?8LnmU~E73S*1u=DTZ#25-Nd86D&D!|8-XbRAhI7NI#b_BF}L7$4?yv#_EeRAsSgVjdLg^4YeB^t0dcEbxEOZ~1}cY;h@T zLRWHy8^Ml(XG~dEFHtGZ`6Hu}33I){^_!Qex@;CEp8vM@X}jmJ2e155EkDS|IA0CbDe*i z7plK=e@5Xk^X#7up2dg#Y+91|!Gw;6FAXJ1MS-j33h5|Mlv|P`GsY)gN0>}_T^S=a zNF`s6q(d&J3|O{#%5|sJ&RlO5ZcSurO-;?CyX$rtpJM_Y8!nI$ z;)O>t#h$QkB2w2}!SL^}zK@9G)Q1$R%Q^XP8Z7l6CM1&9K87V&Vp;=B9{jOrn+cHv zlh>m82n+Pr9Zdu$no2}g(sRiY&&qIMJ%8kzTXDvic0iujnsGb-cW^}cZ^r%@#N9o< zJGvDzb6$1A{^lQ%&xmn<_CiCMarT4$ya|uqTZO{|#l_qP@@cOq%xhTx=qBljQWq8$ zKAvZTJB(ER!y^UEkpTh89TI8~u`Png?9rml`yzBm=8H9~Iv<`AUwmi3ScA$^LgtLm zdgt9a{qLwN!VvP4=>S|@h+$|twzfu=v5oWPx(I*PRnl#wp9Q2POH@x7*(C;H17 zgZx`By5Ia$EVtGw-KnBPpiB-yM?VgSfaSKv+wZ%>Q>oJTuyiM_Hl;tL_dPKBpTROb z4R;TFyzkNo_kP_!9bwUNX&^B<`M77+mULO0rYj5K(biCzS|d!hVw<82c4Z!HGcHVP zXwF%520U<+$uJp>u2fA2jR&B^uDi|&W8T&mG`T+}PXq=*1lU(@T?is9K(CV!jIe#S za|X|_mx$ZDDzNVh8;#Nm&(~k5HtP;%RcN@nT>#vpS*zd>Q#5HDZSwe+ctXXGAq1MJ z*iOAG+mG8vbb`c!ImtC&R zanz*(0u~(rIGEm0>($N*I$5RZVePJ3UyvY|wY5RMa`t*DhbQSu4c#s0GO@4n8jOGF z`~i;fF3Jq$X2kwD$c_WVr1wu>itjExYY}ZXC)KFP{!7PT{aG>cMGu$8Cj%kq(I@nL z*=y|14tm_x?+X&5EwX+4wzkrre0JSFPjtHX@Ebj)(5nM!0x~Pd`JXV{7a{)ZYs|5Q zCnN_xr|xe*XsUDSWah=HNuAqQ4?j}TKfy#ScIu_oU!o$%3)!MShrKWglOr$ujL3Zk zS8SMxN`OZuCiSg@_CSvf+GdV_F2T^qxdaw}_4;*1ugPmy^O*SgkDO!>c`PDv3Gt7*+LK^;DqX>o4#=&E~MV-tV{dAU%2MI2oBrqNgZ|^o`6N z=sq5Y4>I8dwcm>FJYJj4<9oW4#zxQs{D8YRX11NQLfj|bTTy=JitP{INQs`Nr>9G$ ztG*g1K*}61RW9NlsS3#^pn7$7nL1DrbNESe&}WUCL)hZX^v2c zOGvQCK9G!QpwV_AhBWszQY3KPrjxgP^4Kw};kP~}T$~g~U%E0^7L2HmY%Ce`3&opr zstIT%2~2+6#I|MCNAYo#3{-LjJZ_MtOEJ5GPL_;1k95k)NXKWeIGL=DG}crs)P^Zi zJ@s!du~a(lr>p}_K^7~vyczY4I@~O4d40O#4E{XtLde<(pQ+iWwEK+ip$KH=|K`g~ zI~61k2c!Y*{YNwkZ1s6VStrK7GU49$>oLhkc!|*U#?88TAX?*(fPKijX0sbw5k43uD}uH`ZfjDLpsgL+46=dd;^m1#&s zR7R4^Tobvca01tCL9VO&V6o`h<@7ci-I7rUA$B_BeEY}D4 zJQ#nDH7f~~Qph3`L|8}T6drn0skSbuwo@rsfpbFzBep%pX3minH?-KvckM*kL%2uN zpFNeUf>)R$C4@ok``G(;?G|qf`$YIiAY1-nPd`6clYotSR3X}s8dNWV<$R__W`gyn zJwGnJO>tIJ%ZuIeO1Y9STg5jc^Yn3&FOFY?xx6dq;JwYYfBkwl$R^$qDPu$L%aJic z7H5Cz#dtF(&s+K(`;5GDFOhTFW`j#ATM3DD8SCOGzR~~wB+6-B+ifaUjt-rE>USAO z)l0#-U>vh<1e;?8LXQ5^DZOiREyT#h%It3EnSwj=f^(PMmYj)yx4V5Fq2!mYz;lux zT%yp?epLNcs5OXigHpj`cd?;kB=gR@KcPOUTEaazIOkWH8P!A8ZKl;BlGVL4fSnIs zAWXTELU)N~Bxb_d4riSQ)Qum17CB7fy4a=TI^m7!I)ey6s#?-)zAx!8T!|t*|Mu;_ zX2C!!`l^6{`eh|P#oU;NuS3ok34Q_fSQNFExni(Kw9_9H5BR%pC9ZZqdf+_J;j|vr zbyQfs3(bd{*<9M^dwN@d?MWU$?q|oXUV@$|B60LCcB0Cd_tN(LJV;NicBV;VJQmwz z_`_uR*vb^>`>EyKbr5Db>E^|8|5!iSzR%Bj9v1+XqRBUMNCr&q>`5@Ww2Nl1c2sgq zL3?EK`P63aS(Uzf-om{qT5}AWi!Glz9KG~VOBeGce_JlLeqe;Dp(Y2Ifp`uiK)lqo z8|pjaJ!OB?OV#JN>~wJAGS%1oL%!@>!d(cBu1V}zT_>ihUg$@ zN*1QiQ*UcTg!QOz%7?O6;mhSs;oeqr{cPD6HoHv^4Zba0wjF%r=k?oA8NLMq;a+!K zzerffARaZ(^1OH78SBBgGpprW!9!HJA%n~f(i+25Cx9oC$|yJRt653HN5wI+~TXzYqkShTf}hSm<3 z&I7OTEdf}SfSrM#&yE&KMLhzd&@8E2V#Yf9OD4I8l~h&}Snz_zTYckmwLQxJGJVw- zL{HzoeJjFc)AY1&ksxAwYw5O4CevB7=$)wQ4-iiG8G zOim=G;qP#6T9zHx^a8HE6!u&tGMzhcQL!?PnsV@4wY+jV-nF< z1qC${=#Ie}StSSgN3fZRB!VvOr=0>X-wkwLc3X|g?sOE*hUJ&6z3wmbN%VqApa=Mm z8NSB8f<|i%JV3Q<-2UxZ+vh=i`D#wgX=zKgatF&R75&dl(G52yZbrGQy5pPQzFrQc zkYL`q_{WEj+6Rxmd-pE*K|#EEP8COod5QlstfC_G$g>kAgQWyLMZSSW@Kb`DHRjXJh!&8;|5UAJ9HeI8Eu|wI3?-I8} zu9AC>$;!W^M+*|cxc(LEhZDYsY)37F)Qy^v=iwHY%PHHbhT7dfXkDi%7CMDOu4|j+ zV7j*G?^@K^ZJjS@R=mFzrW3~fy#Lj8+1`P6isn~;;p5&LPaZmT^eEZ%*J-zo2Qa73O-dgsy zz8MZmo(xI`{|+wJP9B9-TP>#Kwg){PwGl({npV66@00oxN5Yd)Umml$IX;oFc|Fk? zKj10s&m)YZ&tACIZ|y2Ldu_e7rkXy)b*N?)$Cs9<=|23`q2e{%ObZL$4tEGpz~4szbKm(#d90717O6(XqKsftt!66D1%80qV->B}y( z%-6mP_KUPc-eR=JdOrFE1!BFTjov@o^oH?Bqfr%R2N6B$AKH^{Zgyl}bK zFio=3eN(JInHA5JZWyuoOmfH|bD^WXgkux8qA!ac9B!v2_oTu8qmJ*EU%%J0Fx723 zQYqw&b{vBTqzRAtjJXSOmSDZRmfT$ziqmIqz+2}oLotXNatD@eZo1|Ff4~qdmiCCY zss#`-g{&K*I^5#3(RYKhhT9|h74PHY0*zCn5H@lOVwiBLxO``19ltDPxg}fZ=;Rvj z*mWfebb?-3(pY;0SU-QhxHT0CIfAaykz;mZC?=<|zkSe@eqOgEHLYnj{vKt~hTj8vykM0ojE%iH-D6zXjgMKbJE3WQV&mXw_%eVux(Ctp;=wHuoaWpnQ_ z)X2;8m6K8;!Z`iQQC8Xrvx3G0-L7_{MtkbYmLQxi;cYlq@$Mo~9=2Gxk*1hz$!|O6tcWu!<`&PUC$p zGDd|ZqNoQ6G!k@f8XQQp8~yn$WLGtLR{<1{S)q7brpC*%8#gl9=P}3H%j~w`-kT-Q zS!epG8=S2X(?uHx*!S1Xb_+%RCMmNr_b7Fwa2heSl2ReoJaQ+o#B?evB_^~{tK)Q`gggXZ99zCPe>pGg$6fPl9C=*odW7Pcrzd+W0I04oW#LWc3sOiAfVDQT@h|> z^sy^<_%3d}P`Kxmt}grFg~GYh;bs~4b;3eV)+wQXSY(c$WXKnD$1=<8w!cYOLxN&JUs}#;C2Z^HPBkLCIe;=U^_C zjVozio0FA?OhhIUMIc)?2+yVAixfr8Z4F3RwN(nMxU8Tftsl^Q-1;)L@#ae7SR4v3 zxViBJl~^gGoHrd~!=lJ4i3ri$EMDzuN0Z-Sd`CVzlV6#N@eZM(4EW%j=Hfd41?4wo zu_~E@GevCbxei8fRkVULg2`OgsS(ujuK4{+roaTwye>s;+DfE+Aw$mBAB!6TIR2~R z1lU6QbFMscP7%P0H~pC*Lo}ysXFP2#M_DH;nVeJqiS3KFuP!w^dZj9*ut^lfBj>Ig zVU1JE7DW|F3dBbs?ajN>u;)k?_&B59V7aO1n&%Nt&>comfqrxwPQ1P3cH z!}J@gV^$TRYp2~xT)*pEeQ)PX6L!e>?Af=z+%a{bP%dxjQ)UAg8QwT$wzJ_TQ^`_f z5^GP$IFH8{Vh>{GN1xUZUZ$z}0&R*a6fSG*{$5YWkTrjgqeW4~*JK5Dfh1`1%x+3E zmuSka<}VwTs}|Q^6y|a=a2FhlF3FkBmD|NwKhQ!X7opm~1i!`cKBbTeCwe_-JX2>R zF>if#Jw}nUJY0TFWTv@js{U5FS7mXs^6bQfSFeN1qYVY*(u$=onftzQIqQR#(;H%X7NTlq|d7j0Y*QT$2}`rq`Jha`4&Q zEOD%&D=dS;Sbz%1m>(WV*2w4XTYc7EnW&UxLQD6-V#Q(EQ}{gCi)XRE|1Q>e{c_V^ zyAx#2_0d(o49dlV`6!0w7=u+cdQ9EMNMMs z!BL))7whs-H+75Y6H7|^#;05c_{tVi$Ae%+ifolHCFoTOdo24sE6^x=Yv&|n$ylFo zrKy}?HgY4KN8V4 zb4_#_sCIlNzZ>Y-Dlb=9-o^F;1Ra9?`B=Ui&b+(@eA!jKkx?L z_6^I+$|+tqr>%--dSu<8JaT(wLLUS)qOab#p?vv_&uO-8at&@^5P3{|&o=xz^ zH{*+KK?quT=fQVVD-<9Nb|ji&S-YZ^@&2`=swQ#jjW@#uy+LkFxGO~sk#xK06XfIi z?}GF21v-Mc1?BAkrV8k*R{ZWlvOGi{+S+D4U<+o#DYCxnJ?$2?*79U9Pi4bqLzf!} z8^5tGG3f4&N$M)BU+Zwu@tny`LFcB=qsBC8`tw|kQznm%xki`Js(^swG!}IZZdPKf z%LClonHQyck}$~!^48Z==bLA%VZi9WdCIBmCi%8+O4n5UE8Ej9i`(%n-W-2ia&z#q zTYB&7(?|icuoIrY==I1~pT{YMKMkH2pD%+|6TEqr%LVgtDiRB3{@SurN7T}rP8lr! z?EB`yRF~PLVs^C@!$e&py)5LErls%&I=9l2?5PS-l%4ZVQ>yZe12qw$FFeCZcl0b)`ZFKgO5X2~(h1pY9`bOl;x0Z_LOTz_br~IhVO}+4Zu) z!$He}vde1eI$|l4GjlhYmwRl|u=el>W?WYJ_3?u{_T!OCepXG(Ypze#d#>l6Z=;D* zqHd-6F{|b3CknmF|0;XFQPlp+qStPbBeylTTS~lDDo`%$%B#ep@wEp3cZm52taV%c zOxXBhy@UHrq}5`Y=@4vXXp64fGFO)K0MKO~&?Vf14CSVb#bV2n5Q|-RbEm=*GbJ+` z^2c0R0uPq97cJ*?9Tib1ua_tW#g2O`a=Xs%-~$hx%Y&Z6T;;iG>=pF0m*ZQP7T?iz zQCqsL#o)35ujW?`N1yW`&X187__)Z0GthX1$&Cvh=TRYn8KcH-H5!gZ+CP_%aC7d8 z#I40hLkM$#I(upeu@UHqduW>lJz&8`pTwWE~N z)=ORbPLp-J1b}ZLkGfD#Rz~a4r;xPunVT>$IJa*2KVehl&&!zObPhODsCiizyD^8(wo1{1jlIg0b0P2-BMDN@eWLN9ewrlP@+Mzuib-#lHzi zw)#_%Qq?lmdc&U3l=}(lVlCJ|l15 zG^9OMcx7UxvJGy2A00vg{0`F$+NPCk@HL`e3!Q5bBcD;%9xR>aXX$Ec++)|^wv_k& z1$K>i%h6GAgr1Jx&CQK`)@__|>r}he){uHHAE#hEj%=LVq7ck!X~Z$m85r4cr>c{Q zk;lpY#r-1mE*4WX;l{N3UzFSl8i+#*O_O|S)3d^H!Sd!LwNqEK1qAzQQ zC6BfZdo@E1nLYuB$ofG_EUPu@UCpCPjk4*GPO;p0a_ zn!Z^uLj6{;+EKx)tsbv#BMrw$GppZPG_B(>FXsw2n)#Z>o0~<6R*cE!LAUiZDIfd9 zrB*lQO)YI4!WyyC7Yp9V^a^BTcU)Lor46+g zwd%dZvnUvs_#+mTgTxlXWn$L^kacj`Gu4*d!J|{FyuV${Gt#c)1>Yq@YmtQiFi^f250bjM z2f%!jB+Bi-@4uKv6TpOtzxRA~HT&YIRA1&!2 zwZ!UfxjGNhGOld;{cY+q`8M)2>k*qBZmcB2vfM}aTuqRX@!nZFx>Q9n&_d>679g~c zc`h(C8nRFb?TL0CPdOjWG)Q5pecELNd@BW$`8L-=H!#uWM}zuQc5})fkvj{ui`=vN zd&W;eLzcM%s@2!$uY-ogc6g80J^0#Bc`!-Z$7)I5`#zhYr_zVfRs0u5m!YTfQvoS_ zA@f0$4}L4=cS%QI<>r0>&VdA=(o_rk47yt!(6nLL!zj;YjJ$wwg5jRF{0lOcgSwg7$<=Q{TdDQdaew+)9e9X3WyK*yVPQ0*}XA~ z-7GA4P|e=J;J@Gm3?dE@RJJ=^0!q;k2|)4?-_^YL3YA8L=E1k8VDbwdHT`H~{8;oJ zam2_CPiuVp$PlLcR&6?F@V4uu`IBoOKTM1g?HUjP341u521rHllM661AYm$yuybk2 z7JS|Y$^v%=Dsx}!fF{xt((xJJ{pSb`^6kHZJ(Z6@JIi+UAT=GhLjlxB$*nK4+M}=C zY5A!Yz#D*4;8P2@nJ=~n-d%SGCOzzH@p%2k_hyf4wExD;G(8ajD2UFu%hN-vGv)eRI<1yzY z-r}0ahuQhtINI6f(&TF=_|0vqn=tCF_dS>5bK~rmi;OYE!bqosu3Enqxko~Hs};U* z1t{Nmjc8+%KY<3-@DBUM!i8r#uCp20Tk@}#b8=Y+tM1^2oa85bHcPT{vTX|e9D47M z_ZM7TOI;gTRObu(AAcskHrEyLR;q=|Ay8_7w9TBU|Hhf zC8wlUFbKT>6CF`EJLQy(x)@1?8n+#?*rJ zvxp6?YvL+;CKyX$>yHQB)FAd_^xq4)_VQIy|c8mDX*lMyetYf$LY7Dnq5ar( zzVN^k=`gd4z6ANR(7?$oqZoyt*!lCx(KZJI&5LfRJs6MJe~#cRcf|oz5a2{7%Er$? z7t6>)bC1v3txxUVW%qU)2Z8M(ZDJ%KsjnUY&c$F~BjaA_u6`jJDu3?aZf{59bQd8w z`L>t`ZyWGi42$H_7DLsebQyuDA}UaCpvIWbXpgeGGzLD;`ByTlsARe&RzejL-GK1` zjvMJCD&g|sv%ge2MW{)@zB@mbJ1USI+M@tMeT|4^-FuBT%fZ=o7iKw_i_$A8GC^~U zNSRMmA3fCmzq{g8D)w7L9JszcNn(P|k3OsiF)LUDpJYQx_jDN(eOVt$2mnoJh2N`f$&{CT{r#1tT9>R-#)lXQe~x4V_$A1oS#{5hj9>RS zmUccsdb9B6#K)+O;S$G*Ox(X?s%;_Qcob}qYvUpD?m^-Sq(9puo=D{prX-x}!XU5J zI_(JV4bGVntaR<^ycCY2$x9%!-CbG0$^Qiw_km{wZilTuSeNyo(u{jD^=KR7z!OC! z4hok`T+72$)7b{g8^!||NptK}#_IE4?wz~GrM6HWp>od!Qk;=Akj$K)Ltu|&`#dCx zpNX?$X6VnDdclGYeb{3Fgr#c&)~PEvBOA!|FZ#;1rR=P6VC<=900W}6*>WCIg$8(F zwFqukp-=#c?2|n0K%UG@6Z22RY@eORT0;)a=W%U z@eM}zo7$!z{NMYE`YL!-!5s#WDNKjy*nNC@bK#p<_Fq&-pWZDA)a|uSS=hv7MMO2< z2)RO=rbKI}>h5f+ZrBih1~ESrB2hZV{7V@8V^bK!OG#7MqrNbR7L&g2FNBE;;q*?q z0bk#8n%Efr`hUZd3jzlN%MgfMs{4pSI5pK|M;H)3_Sv|E`3(ACGgX8cel+L$LTLFQ+}(hm(|(kO}$e3o+Bb-Vu{eN zJ0}0@FJlPEFRZH|iB}|rut0q;rg=@TprZZAkr{S~*C-u~%TVgp4{PX(Uf2&ga!c<9hqV!tp!1a1%9 z0-OtCJSTh2eWu&3^zCf1akqsFo zII4cvjJ|aep$n5}3^&`uR@bY_Qi=lgQ1Zp*R#)i8r!myDzgVAbJgDFo*!1~9z?PN^ zxV@qHj(vLvbMhTK8|EbdP~qm`Vvzj~kwV{>%77+&D2Z6Z?yN%kB~hfh5s-;4VtJjGTn0zL zP9E?PFm)CGHBtQ8t_0+0koRnA5VH0HDJY$n%?0J8T{seb*`q;AfDVwB+H@RT?#V|i zaQWy2F+Yv#Itmfk_Nv9t>c}2#T zwx>6jf)Av(8U(trl;-VuGSE&AFc3dKCGYYWP=1cQNDCnw4`txCvtr_Qt2Tr=(Y6(1 zu3v57#jF?Bk{`+k0RH9%?*Y)0`qOPGenfM~?s6jNA_+`9W#Egl*y4X#`2s51c6NWE z$RctDEY^C<^iXv-Qd!oEoEhk{{Pa-uk#5lB@903p@CZl-c}5#AL58MH3s&OP`GUN~V5Mua_y<~-oJTx)_uaGhZ*-p5f ztOLP-MW%o;tLHZV0(g2E<|oopy-bk;*E$V{%Ac+dNdC}i!FL{Q-@S_qkWc_Hex4cE z0Db%MFCZl~)9F3KfI{+JPd*YI&U#-pTYgI96>-}$m- zc^p=G-(9ymj!rNS%m0#gE;d1TRo1-uD=o6_k}PerKN7Hwol6Wx>L+>)&J$?Nr=l0BD>u9O)Z5-8d*p8bnr7Z8Y?61$2d|MeH5E)#XZ>`R5(_@wBE^)&7WFJT9k8 zS&OWH{Q`NH#ihov4)T6=pMERPnL%HLzUyyOAOL3@1F*YXgp%%Wj&-l~GJNYLdfM37 zD3zd?0d{)0kv55|k79UELePwyMY@k#G z_nc%*hj(qNZ+(--eRHZ`_rANkSz(=W`b-;K_PKG9YNml;g-`jU$(^UFf;UwQgPC4z z^v`Xb)zz)lZ4k2eljZAtpY8>b=nO!yts!~A`Q~0p3*@x*oS4N!B&PGs-%eHh8XXzF z!GHrCb>xf-8ec3nO$*@CvNcYrWG!0I$BawBV*1vrPrF&HVj2b`7VFahA!_wAYkkB$ z&4gJp`|8|O-#Prsimq$X&F_86a5FkCx9|5cRc`b*-oo-7wMu``ah!Rz7SD#i2G_Kf8Is$Zu+Z;=o}@Bl|kp zcOC;id?O}m-;}>xzt$CY>2(|FvKQF+G8K?&fWNu-Dli&B2uA2)A!bI2jy~wY6~8ol zyW|lNsX#q38g71m%XwPbWF+eL1-gv&R6CE@{;h|u6N72(sq5?OgO}xmUj1#KP*I95(c9LJo>0CsnH(vCHHKne+P}OkUNpDr(V_1d2JJ;Berp+#qLRE za99DGa)9vFl9^n#GBs8*aRl!~dAQ2+)TG$i}Cq6EEQ0e$ZMH@_=!rL8==LGISK z)|WY0UpSXiJXJjBsvu~zJ~KIIekH=DZ_VmUfV*;%z*O(t2g}OVH-Ny0M)TzKxMo%u zK=jTxHUMqd$jv_8GtVc-jXbE4YTf~^`gQ+YgRMlDtd1Ej%YU%>O&|jWAduOl+`{zr z#`xTLR{xv$gdkDDd)W}B4oT*2RICGJ(^_eBC%yVc+Y01k?ta5t`)f_$)u561#|>r(llq?=6%5vhG7lYg$iP;^(2gI5QH7*`MZ?qoW+RNDlN8 zKg`;zIEJg1L{Gne|1Pz31Zb7#Fks9y=fyNwwFWyo$EgO!E3zr6OkEb0UuqAw?_T?q zzN8Fq834<+ZmbdxiaS~W?Jp`{{56+y^61`F^>40Mqiv;6sPF*Ih1#fAdbpX6)6^)j z*xtkdl!|`rO<;1m6VqUOHr%p16|l}CFmLmKX_*{wn!D9cL)L}t9zCq&_i8-IM;g>w zY#4yGlD;S=RKT}wU6bt*DCu_S#z#4hr{+vgHU&I>xToqTqTP4!N5RLgmW43T#mMo@ z2^Q+g%D$D457(*0G>oWd(o(q(b%)9!zmprv zeOPZQM+AVV@co|xJ1+a4hlMw1WLYapOJi^xUNF0(z#Dam{-~}o@u#1ZpetCOOS=8` z`vXA9{gw83)sfGdtt`g^XxdYyGGCE;=N!#RAd$Z zUvu9b&{UT8J)(|c?~EYeSU{zzG-&|~A|RmBq%)%QB2uI!m~m_%Fo1x97!)N!fQa<2 zA|fJ$VnDjoBy>n>!TM63z2(a*7I zxd|>+YLF-rpwyf0kUKSNoO|ilvH3!2jUG69?$a~EVK~6y#U*A6L*8=NXf?1#Y2$QP z@%?0RH5X^RAQU5uprd#w%z+6lZ{X-v0 zy4cw3L$+Qa0=RxwRQ5_aR`hVbui&zzcZ`Bpftw1u`#(7L?e{g?z53$S&w^a*z&mEK zZds?vY=IsGn2gNwrO^L(ABw_7Z&S|B{|-Fx;wV}akuHsL^c1frO}E`AjT8ZTNSLuS zD>#BxZr?c9lD@r#wgGyfB?ow6@8QjKRwD{19uTV-Dya{@?n}}H9@-e1$#?uxTZEdu z3t(=lU|#IAZ3-Z=U{`|^O@Q(bAVWg)@ov`1l2<_;?>Qq#+>zx2{ugLCSaaQD2lVz7$gdl@zap1)1q$ixhGUI`8SPzNm55PZ z4bNjHlO-FcD9<1tXKq4ZKSM#?DW(t$*Gf}x;7zWP+oxE=O$Ce94MW*iawd{--PgSu zK%eKkFu^zz$meAd0-6FvyV4$YkVBwQ50al&^|2L)SjTcsf!NnJ-a2;y)p~PwPx?(^; zwA`bG3is8-r8s6&e_N5A51Up)+hHmJIrA}z77NeSSHm6Tg&NS;yYxc|J+vNlk3{!d zV^*nr^#IV$9Z;NTb{P-nEi=Kn5tS@!`ic?5vOPeUuNt70%h));IZ3H4Gp(FRGq{zr zxAexb--Gb&=hF>wIr#`7EGeaQuWFHvwi0(WrYXF-mKsyYF*(+;alpM8^df$brtzct z)Hi&NfBnOY$Hg}xCHAxZM7WkUTHWz|vc{2?#v5nC7?jUpKe@q^t0QyBlV&#%PbV(#?nBx@U&MMS$`w z+qRKehp5xv3A+6n9|<&i2;{0u=h;hfpXQ7(#wPjIeBJi;mHOUa50IStxDTfN9fVT9 z=8>OQFHjm&IW`fmi4W{oMZB6@*=rydf<-MA1i&-;XRBZ)SRLf_*J}i>WA)^tqJjQ9 z(`cM9z|20}sm5e#HQ9G3x<@P(fsP_t547fsu71w5Fa}qHY+|^|&IJdceg2}99hS#n ze4c{vnX!YyN)cQptp}#WPe@E+4W&(|XZxP_R9H-RzKVd)={AUMz!s;(I{9k~RbYML zF`G`Y;L{Q|shN-=QxJS;GyDvMOqSk|O_W#iVErXp9V$N;C)?OAz)5+K)-J{5N4X%tlEOd;ivx3UT-OA)L) z{bPzF>uOBxA$ykI)C3p6odCnY!aph(-nzM6gZR#1- z!75VDLEr23;*IIBF{tW8HRqViO2l>U+cEaOX2EZz#=rF{fK5qAHusfPPmLz$d}^_N!;Ax;oxtA#2Q`!idA+ApWuwPXb7L zgA#Zr_0v`LhZZMT)D!XNh*zf(3H+#;Jg{t50quQOydJ6Vv~QU8wFNy%4u$z9WB zeSr`z-my=o1jiIm_ zfXs98Dg+K!ELR-13?qF1^6@%tC!$@Zi zr5;Z!d(6j8fD!mN-`JjdXZY5zodSQ`l0x_#}J7%{vcDvfb!fXY9Me!|d`4NspdRaY-_Zi)Q-k z@>M0FLbxq)&9&>-2tRmT3 zO}q8R`K?mpejAL)*J;)D_8+Ud{8lbHSh{@&hkC)TDH@g1uCpbq0F{y+0>)!ID_l{s_~w-O)+>wS}|GGm21t(A!69zphGh z5N{z>$Rw!IYrPIWNvAusUqNjn-%?Izcg|FBaQHn`D;OEH6}4kd7{F%bLn`3yPlJ1n z^`R?(*ut6i6E^JIZYwnH!R&dBJ@0c~M{Qud0&^gVmL8Jf;B5YDb|c@$TfJv*7s+RA zFwokJqI>L}{CGDW3&O52wp=;lMNDB3va_-wdmeXF4geO5wp1_lm#75DJ`dB#^ZpMy zba_y3Rw&*UwHI@7Ii`iUQ9fVt0)?U7I_ix-kvXn-ExgNOxVgwIU1+uA=i{rA7$X}a z*2WvPU}N9?3Eo-G$5#9S!KEFHv~45uZGOU%UW1Og2SofRfVrKBX8t*zTVw_QjV+7)C2 zwRmg`Qt&p>uuXZIo+bUDbR|b+4rMN@z2FWc*2|HY&L(*i`r_6{dy4sM({K;WI^5n0 zc_+S2_tv~)z&K}DVQ7CwG{D&V^lsw$GY=3gUyark!RJ0 z_7_DKl&0JtzaJ@~8ie#{b(B%G&9Usn^xpyEy03=bOBBipU85grE8!mB&AJCr zOG^UcxC}f@xhoLwSFN=rY&P#o4y8TW(s5A_vvxGMj+qk)e|)^Sr}c$YPTcmlJQ``MMZ z4h$aR9?X>nI%%yUp?B(*L&Tm5+FKrjlQjJuX7+=*;38Zr_C0qH*NK1evNj3zf~FUc z3`uae?M?)j63M}wYzh?0<~`=09SrP-1L&r~>O_Mv!2NN<+{NqDL$%W>^h$^;N%=M4!t0j`-Y(sVYQfsb$wK1G$2aHE zz+8XEXZyXvBF0J%PRDgZ^&hV;Psuqa8vS77c_X7ze$awl9%x(Z(#X9LGodUMG;~pE zDBx3sgVt>!$+*NgQB{ViQ9R#oQ!Xjt4^v)lQVu%T7HC`V(qrb)S}b!*D2MZpd+Zx5 zJ<)351}D(+$Xbo5J3gPTsxw2-;JStRDP}giop;$P_+CW~AuaEhn1B0X#rD_-?D^mn zDv#(j2ewyDUUGk{gvWzzOjCDNJ6<3pA^et6pDnrWbCN|hXzlGSu+NF!QPX7X6S%cD zuO~_ScXjC(8|t-!{ml2*JpbdZ4|HO-qv01m=(>L=zn=@!>+Z)nUNSipA)fZ7=6PWL zN0EFzv(=~{{IN7-HIry7Sb>!ifs>Oj6qW%p%h2?tXBMFMZHjOA_UY4m=x$9k#HpW& z??qcAjg5FLF51c_A1=$9+NTq2lbDgPiNwg+)M0C{Cg&BR zaHeK}Z9=*3)U!V?5+C6hXMCvk2i`>n@8KTSO7`?`%HKd}z->ToE3#ahbzMI}KlN}B zri3rw@TJ>e&^pcskDbF6hGaA&>>GHekhNP1AB;`pRh0ZA#!R?KeHPALAP~~e7uNu) zopyNnQt$4VNv%D@aO(V{In<1nD~a;MX4eqftzlHhwzWU zx1L>UA{{3ki{7orPfY(sYIfGIe4L4YBMg!y~Y9nKs@^ETdu`C8T>lnz> z8XYQyhz00Ah>wYMvVS`VMv=SE#Pz)v7kk-ammQRlg#boMIS47?{L%FZp-G1Jb_sZC zA7|`a0^_`Y;8x91%B#rLgIWCBcGZ5sRRu&p8l{cBPObTL)180`Q!+8})$Kx1HLwS+Y4r-Xpt3ByoEh z^~k*S6cqyQ!=bF4jMr%b?{*t|13rz8TBKGm z;$qrnBpo*{aDD2=Z+LUwgxC>W&ZENH65N7sl^$u|-fQ$iGx!8174u3mfAFudHzb0Z zyuaheB)q@LbSr5v7&G}?hra@=9$o&9EyDH_$5LO9x{O=%MoJ+{X4$HOf`X8)ji4LT zpIs74R5<$r^Kbvas%?%9Nj`zz3eLubj+^P#bd2YL!PhndfwnEFkIlgJBxuv`CW=4& z<{=7=U-lorps_1vo0j! zbc@2paW=@)^za=v)$w=09}4{>Cl4A=J|Pjij2So6-`(NQjny&!l>eOWRP|clUE13= zxkDkr{cxWKitgk%mi&l|Am25R(HY)P?Al8|t)yF@x#|4N49Uqt=Jk-9EaeN&YPsFcu{rLE{<#Q zeo_a9E#ndO#j#21bTWplnJ6qoqi7(-U zAT*}q3mGLif8SB>FS|F_#c*(Vb>z4HRg)X%IzC*I=)*5J9yK=6%-H5B-+t8U{ZmrE z;qY}gS~R%sC%wMRpe8L@x}6~>UN+IHI2fzpwWo=Z=N(Zlto*lfkb}DPxX|#$Ct_c+ zbx|_Y1b=7!!|^0#%wUL!H!#dC;;Eit zUQ-{&Ze4%0$(vDcVg~MQdMJiS$Z5^4d1uB$9jgNf8JyDSMHOm|2r~-5d8y37y*qZW zGd<7g*i=Y!rmXQ$YqYfsxUWuXI>W5($?AMV-)w4MOPz`wHji35_&`Gqk+$b@%qApa z6oa`FmOB};c~cx9J;c1>U41GFkKYjCaCrED>1xY;S#ZGwRxi_|tKq9eiycNl^n8>M zT?VH-rGXb)y~J@o&1<@ZU66|>;GBDbvN%3JXUC|&gyajI&B$Nl7%|9C(RAzj>qeI~ zlQP4^H>OVUZRB;YuCq%FU+J*FJ(+|$&@`A9Y-1O^)iLO=$m@@;Skkt5wAR@$Wb$Z* zgc{v(sg6&hZ@Y20j;BS=z_G!I1E67OdVW&o&*QVt?FdV~64X#tlkF=0cP=me#rYgJ zi_wO3a}KXVjFp2nZ6C&TQ^?>rAu^)LUu3dIaWLM3_iX+n^(O>y4>|W} zqo>AXkA=K{dfxccI#I^>-lDex{(9Le73L9kJlWdmYa{#sk;V48N2l#7+Q^m*zNJ7x zVv;~rXaKlfn~xZjy;K-;XiSia{0qsx^6v9%yL^xATg6rpf$=|BW-)XpdY%97eQd%} zhkc~4tvpbIee>L_?0LrPHEevpt@v$V*OG$HBh4>vPj2|LC%Y-x`ARTg+r2OE9fGS(sxW93#bvi2y^&R2|Xco`Ll>La%}H_L3Jh#-!r zi{yH^`yn_Iw@|K%*x8@NtoQmdMcKH1qAvIXRh0bc^=R&BBgH^C&q^oqz{oo@2i5iT zx)lWB{+J3ZPkx=rNMv*9G(ADL^cZG*GBy2vh50r?#>>nKl3l--M%HL<{>wbs`urXZ z<8ai_ehumEIE(gJwrnd}>adI}kmJz7!cO-wNUCwKcHWVQx_)`=x-6UP*y33+a6Jo8NWSD|bsvZ%Ju z!P3`7dDh`4+srwUeXbQ~T8@Lo4J+0W)&VFaqilvP&W+XtK1 za|>3M@KhN_6ByJ#P1FhAO(LZ{tznO-f6|`v=31qNmud_vd5>jNtmKEyk_Q49Z#A$M z)2;ZA{@KX%nW7s=RCdc>?u?0w;X-y=RA$n-`_)G?3A%RU<-ClsqRRZq za8E*_9Qo*abqBAidh;S9ak>|IH%2Wzv(zr#t6D(V`;y0-^+-lfokMQ>XchRlZ&8_l zy)|vTL^2PNfXBEeWZ=hqJTbNkbwkHLE-xjE-fFqrywZ|ZD~bPbeGWt)7P5u*N&A{4 z27ss)?W6~GD06ZI={oDUpr?e(hbxWN=heKX(Hx{7+UEwHOVv_K_2b*$=+@a3sb@?i zQw?+-p5_aN(WR@ZX_ZFJ11_VgHHOs3wY$B#k_(*M-&ZGJKFt^GOpIM*0^2|SvM-oF@b+2@hlWQ%GGA*MPFQYSt_N_jbS zl_gC|)g(S(t~2to`pO;s4o?R!PVCKmM6Xjm;CbFPrE%iPuBk7_*I_3bV^4{oO7?M2 z+!B>+ZRk*6Q7I~dxR*yuTXBwitrLQ%yEX*@MuGY`?p^RB}181>IH3Uc3*n~B z6Ua;qL0*Q{GLHg3F;2T?GBqdtbXB%|GSXO^ua2zQ=rpY#_-JV0I0b!G>hGq37Do>X zG5SExz22i&g(?Y%)=tWwp@&7l;7hqD>Q^7K!%9+IrLYYzD09Y3OFMI|PezBSoXA|i*%t&8nJ<_VlaWtoK~x%Xe+XMhqTtydc)@x79#n( z33Dl!%l0eJXLUEY5fD&=UYXPqKLn{kU=%$E!ezVAEveDY1%4g+diAy<-UP9!!WH2* zwAc^$dyI&Y=sxd*YMOz@RE7|~g4FD#9hldTE)}PLlnl)2=wd|nc{Wej#f}H?X7VAY zt^;!6$d?uJdvd4!93r_#J&LMw^Ln1t4n7M5OULJr@*6ZU{v^rs=MDg?X9T_(uOa?^ zh5RI?O5#HfU7H~%M^TzCh_6;fk=9q54V7x1d&$p%NsnP> zom}}$Phujais6zwk`JI3Cih^#eEXfL`j@QkB1+cgdXeB^?+>+J#sk$9TdRc3`gB>t zizhK2QBQh`V$ENE{`^@_^DMHNGD38d*DUL#MrDiDkf~3a-Hy^bNU~-lE9EC>7BSeV zk0Q3?M?}VZIi6X_wOLrypt`K&!%%%BZ%0>Ip&EgSm)?#=;Oo2V-M(C}jA)uH6Y9rc zk}R@;i9?Y!DX!`H$0gL|qBUGvoc*MU)X7()@_f0|F5ZW-8FBg3^)#Xhl2JQ2gCV@K zGShdkvO;ogdik<4j~FF%`oTs<-snT*qXVcINY%#qE1e!qycw_OlByo5vBK>P=>1-Ju*OXCi+6$;SVG*^LPBq<7&O)^pI)wiS?%_ zvG~ZC*TeOaUwUFHEV4_pX3aFuCKhFHxgqWF3oVk=U%Dy(!@9bgze{@FyfDJnjQ!+ zdB8J;XW*r$+EIBG*i|}eirP*UlOr-B;{?if21UN?7>D8I7TZqDZYBSZWe$R2RrDZV zVOjUye#Ah9^Yl2!!<<~}O>yB5rklfZ#xB}AMH4)msos?p4%0VlhbJ0HxJqKb+h}n^ z%(_lwDY@$2OUJPNXG%LYOS{ZilBiJz=+?2pwyGzSW+w!2k_m;4y=~9c;k0JxZlF_A z{wL?dobns5+zzYdzJ8Y`I(*NHlHPPk&4DpC4a_iE&WC2!eE#XuQZ=%uryYK>Dh$hu ztZXwc(snwXx~yh5&v+^26?!QJ-|V3s7y2g7JS#ShW4g{EhB0tm<34wdw|f&FAv0CC z+WV5Lek0?f$z+Ff{)F7lVUJu|rzGPNy^%3g@6u(PuN_TD#tb`A(oxhJi<8ql-PZ{ur|??!kL|CtLx=w9329x@+lgVe?3?w+Ecm zWb!5YKG=q-L|M}^hvK?4e&L{0MoUiZC&VSC(qq#~i;};T4$?E4YDNuF@sn+DI$Ue_ zmW-RFzr)?&sHYlyOvv*!5lZ^}sQH5Zu+gOTox+jHZBDrUR$W!WG*bF~10+Yj{soJP z*Ytgj8Hc3Iu1K9#^_bv~p-472A)^T@<0hM{b$p!7GFw02;fk@ka#M*hcxxNw@m2iv zMDcd{rgOr1V~QfD2~*D)&hL^s!+OFsWF1?xXhvaj9uic7m)G=|V*n$NR@uxDNiNs% zLr_bsOPfdOl6k`ym#Q_Aodye)s(QhW&@Aw%La#0%f6Q=?iJJUKo4kwfd6#pgrdp-% zH6?}Z)WOWJlSG&l%d5bScu3 zrWg9uv2MeWD`N^-#O1fr1UoPe1}}S#ymu(lGTqS&p6!mO^`3UkW4IO*lmNF{6r2G)W^3FIy z-rbYDZM}U4Zv#wDyc*s6B!o0nqPA-zYGZGp8c}MIC|0S9bCp+3w-K;KasXwK)z;$)Bm`+YrPO;k%!N{$ z7he3_dPAJ~K9550i8ei3+_RVTsV3VIOxW~v|5I=`B(H_Lngrd8aFr1eEV>p+cj~4L zv~)~94l?j^<6joK=km1siYj;9isXvW!O@BFqkfY3jq;rwk`ejWn{!T1-ZyEmonD8c zat@lI9Fxao#!7A828cD@-ko_JQusjQpvNBH!F=LbFKw7!G~6%vhP zs<-@rsYe5F3a=uqA5N2vqG?GYo$ECd+^D(h1uN5=vrpYxccN*m&k5WYsl=caiaaGC zr=5~t_i0I#X_bl&uZfX~JtLlP=-HS`5x$yflhteIkREJcALvvtT!YeuIO{WFTo!EhoD8!MbK4B3L5EHc;SYP2Rn{lTwXL5OU@|}k}$eq_KEbk%c6#-BE z{QPLoE{RsTlM1uq;_9@kG%h&-i0{eh>m*%P|6;pwA0zrqS*OzxZp1x}HLjbGxvB%_SrSQ^}G~M(Jna=wUC1HHKf8IU9Np9I&9KY1=yaJIw|QK=h#^ z2XkES*=G!{u`vzVi*pSZF^s76E$PTk9LMHl#-QS|Do8ecUORJ#cel~jn;fBL3?pS4 z<-a6$+(nEYx!*KhTqQ~O8t?U`-MdnoDD%if=&&trd73pX7GJx0XL;_7TXVJAvSzBv zgQWq@BL5lyO9uDEUjQtR@GlpmKMck<-kRfp9VuBB$A^ilwaB)MHf-tc3c%7T^CO>j zx#4a9s)@xMd;{$=f~R^gO1!qT6Ui-l8g)hELAU8HR(Mj_VPB z=TUg}YZs+yvH@RR@5rtf9LwQX7tMK{zzuKOP)<&kY`TtxoCWmW)c}nSKW_oC2-6E& z>AdqyV${7~FGUkh5+69-Ob9O`jorCtJkn?7F;P^KEW|gGNz@PIal~H-?z&Lr>zmV~ zUDn%^^2f*aR~QOK!x*$GM*Ru`_vG+nQD@*!u8Q(?)=LF|}T4 z_kVHkmwn1VZ;LPcvx88m$T$OX`Or>^P{217gPbFop_7fi(68uVhPgj>X_l5dmC9pj zKBMZD&E5#z*lDG%)dYdcgbybpuCGmq5Eu6J^r(53f|?SF@ayx$-peB`Sy36*oEYDD zCiv|1ol%W;uDm`}tUMWeOMbGIX5!tiF+#ZRd5(>A?bY%QTLjLWDz&01C15UQet}u$ z^V;-a}WN0a( zidH=BTH9-wU!Q>E!|ak9c=9I5sP}K&v1_k_mc?~s#ht|5^w=FnyLXdCBz=%bMw>D< zKkF3PCGVy-py8HB(Gi*xewb@`#KF}rs7R4z6Y*RQMM4B&=MV&?Lw@mtZ5c{ zw%Whv%j0L@LDTi@@sU>#CM57Q9M@<+JFjUQo-g+?#!F5_p9$@YQ|^I8_{A1zr;|jE zB4(cM|7t(l`Y^@@Uthb)m}o@&i0Efbrr3@=h{VSK2+=X%#(cs`9zfd%kIh4_egp-<%Kwm- zoJ&D$_?*lZJqU){j`gd!s6@y(tNsfuph%OB;SG;r3>RC)l|?kH3kx>!YHakO;rq0o zdNxTs>uP`!7E^mJkDWPWGbH7FCX9gcaCj6lE8{N>o91#fQt3_E8j!jt8-u;oWB4Ey z=J!_X%R4{itTe+nHii;YJr}vc~po%0}AXiAT?Ska5TAH`U^MqRQe#&eA37zGNC z`#@TC4i{}NzNikKnopSl^H<;(>}*8rNiOh@jKf=K0pOmb-)kDaV4jor)VK;0V7ux%Bp3}JVMf!5V#? z)dAhK<_evAMzT;25_MIDVuDgu8O<~cwAYjv(-IxC9H`y+cn{mMk^9&9FmfZuWLfB7 zcFSN5tocm3uO=I4kPZ)qFLTQ6Vm`KBrr|5<&;# zlCaj35J}lIf7K3z)>G<-2VR0TsV2=)qoacgpZmuO=0~2!kvUlS4{H~|~ znUd&S?_$GSn3^ra@jR5GZzOd;&YXAdn_}SM38hze5fdaM_j8b7SAs+vyD6L*WG?On zVL4yNC)t`X(TRuqxKOTH%W4pe_dFQzmes}rnF0QN=wzF7CQMm!7Ryf=0mY4R-SZ^2KoZH zpIMsI52T_Aqoi0E3&bEZwsbdhQ=o^x2y)!NS2gizt$ehj6fppXt;)yO3yXi{O&%LN z27Up@c`G-3ZU)K2y5@dD6+4LZ*qt2z1udM$gqTZ+@ zJ@O1H_qR2_Rux~oa1zsS@-GNJMv`7_Edoj?OI&eYJz8T*^`v;~VNT>-U1j0CL4$_G ztYF^!+t>P4zi}p8I4V9kjRu*B7ZCioh=e_M_vAarikrh$g87Ci4C9Zl3-gmB9yU^1 z$6{H%MbB;OOG=a%L<688Wbo=X~d+(lB5*6K^Io1~fvghUpN^)^`JPNNKB zdt~1^kaP?#4b`h$A{|1>q}Lq?{(51c-*#(vcXw5VUgXRAsEuN@i#ccC9ZAVK~^F`jYAp z5mS?ES6NQJx%aXwyX>&%x~HCvZ80&C)}5_g%?9`6DJ- z`?>SU{6{0mfa18WYD0%T>JJbYtzF8sc+*uiKt-Z-=AY0@%Wncul(ZJ?Ei&6u* zvXs~a__E9tkW<8pTi^KcjKIT|$^b5fjtao;PcO*MTh$ndFSd$h;T-$?dF2s8KD!d) z6U9x`m=+d%obeosZ+qzp-gKoB9 z@hR})(bb@UH~W%#4E#ziLhSb|uzM{pL2r*T0>bX~z_Ek{-%RbA0u|arNgdb`lLl^C z)sn2Bh0>it+u4!C4uA!mHNFmEu7WOjIx9$bK5O*t2*03Xz|6(=+89FeC2J`}YhWjR zSTdcna6UT#*mTGe{(5FDTu*KUu?uCI+l?jI`p*191A2kw@ea3#qj^loUbhi^ad7b*(7!V;%}hmnO@s~>RPAoG!hI|wP~_W~ zdp!UApzq4Dyc6?K|D)BM`kzi9FtW5u9Rm8|SHXGzJ8C=!a%lhAAdwR( z?XiUE5{W{`$Wi>j+^@d(k4AO?g)*KY@K8q~C~W0qx%~UvN6?^>4`Qc;1Nitvm!V&L z;GhM~2c4(K)~6T6t1M8P)D5Fs!^hMN%#Jf!d_li4izJvQj~l{{-ENoQ+3A7VmC`xC z`OqKhVMUKD2Rs9LAxYJ%sSbGfE;_M&0341QvKBH}pJ1-A{Ek9WULJzm?<5dli!OZO zQ8)-etM0`+LW6$=IP-rYtGuc-GAhQw)gnI#weQt@S#*;@nu7@ohoUuBjH&z+tF>hc z<*jcI;B8PBj_Np}8E%OGWAPcDp64Az=Ca*@Wyua?srH=JGJj{Mg_pzTKcEPV=(QT& zwpW!7In9Im^3?$C;91-U#hOF33E-AY)Ty4B#+v-q&e(+e&zokuqk%kC`z~GZ-*VG z9#yn}f8@Rh_c$e!f9{C?bCh3*i`XlrWTy{r;LklgR0Idub@cGm&v@AXrX)tPRzrocS)q5P}yBb>1Z4uR+KqB>6f(bYiDDT|c9Iv=}zN85fu3orXf zuDX#G4l8H|P|$aGwk~qYf#-4wec{Ls^`f?&=0Scl_yg6== zh1+f#4TG>GQ0Od2CbE8GiDuS{?u2-3z`g)ew4ICj&GMh~P|vKnRX}l*1r_#v$*+LCMRpdWHx&&Vb%h^f>HzCb4WZ*{)@4DbRK0oU1r;AmCyE?Aq=6o_P} z4(;fdwt>QO9v5};_W5W{Y1MbO=?!$cAr1SxJ%#1d4y`tFEpDM#CXT$T-)hoY^si&| ze+xlsg+VH#_b)^Eqa?`vmkX0NUlP?ACYJy$R^Awf&0< z+5gaEhOo3-%f6z26x(4=Nz~-?hqUaAAkd%W>@YHiz<=0~DDQcxJLNMxJWR0^t0ZrB zkGKMzXnDQXUKBFWsU05H?2t zDR0&EBxYTC2xJ}5od8F~9O4(=AUL;>nSb=I0zSKu0})d0sJ#H=W^)=pl7fN_Tj5|^ z5f=DbfT39JbKnHLpW)kpxKmyXE-G$I17KZeK{Nrft~c~HE~>*A zfa7}bXQwTVnByf<^~or7a` zm->G)2NC%Jn3?|_SM<%TtVPbGNgw{Dp zUwwwIk ztPT5qz5d$y@B`rS9WzmbertIe3}}|}>s)>6d&`X44G6$4%kY8_EQ$#LiRhU`FP_cI zQ>f@3j?u0KfHQ()`sT}iGMWbX9$6s(dzWgEuYIoO^MYgl^*%WN4iHrM6A_lfJ4g=d z@!!a7f#ii|j9qA-^>$+^SPVKq49R&X7neJ7zLu5p&ypXI9r>+y528#PxVO6wrP zRn(Kv(mvQ+UUZA4H!w?gVsz(g_&xA`@q_)6GT6QNe)-L(XZ~sOgPFAk3AJQ!aUVS5 z?=$(-9a%843Y`5vfvic+HLk}JAu+tl+mZp8g)bjqJ!lO&TrOSifPDgP;1l#70W6tC&Z>eZkn%Ww@w@KrAjfK^OatmSeu#v# z0!&xw2j~xOd@8(r!;D?P*S?h zS__&38M0hOA`0$5nh-ols4z>?LY23HndXcV0CSzq@qRtZ>xuRY=v5RQaCFsjY@8ab3(s$hU}ezH*wLS z&I5Y~g`I$iKc03H9&jBr;BCCvqT~6k+)~hTS(+z6oG$jp2EK!iJVUxZtCt6(r{~=# z`_2t(+C>CdypCuacFe{1XHI^8C+J+e_g1%RHuxmHuGgK#*a81;QW9dVUd%ql^vX^| z6I{>Dfas=K5N-e80MVLCBdp*K2n=57?E(C*t0Gk*I{)dS+^LIzPyl6dkbeWu<~=Ep z*~BuEqLAvWn=7lEOVdFb%Z+um(F;Ch4!cLnc=s(@R{~eXLZ$N6F5-}SMLB|V;I~=e zYY%6^0aqx2Fmbyf({E7%DlStNx8N6FYj*h~rgDOu$jC=+I9l2U;o-ITWs53j!m2H^ z+zG6@5L3{ZF~v_7+Q2sd(?T0m2KoFjFBDZ5=`DU)e%XKmYJto9WxD_lWqUsO*S!q?My7VAEy9zi5v|cK^Z}|k zp^>}K2sLVp5VS>dwK2N97eK-3^-mX^fVur=Dhy6W$romhR0jAK;7YC=UqdG=5~D{T z(6mT^Da9#J(Oc0LPH+9tgSAwgiQa+r?D|tT6jJ)1tl%@#r#*msFhQKDldpwJJ1eVMFZlQtFrE1z zY6^KP5R_xZ_#7^FKCJ7V0tlW`tbBv3L-zm1aRxuoa>>_rpvtZ9m)^*C&OUQ zYVsDmB!%A;@EGD}0tgV@rrb_g@EMJ7tOjen=>HHgVVt&5Z5&aHgS#rnOxheO zpFLY|&+OzW4*|N6*iK|pWgzi?M{-g7!TDD!=7bNU^w#H`$iy6LEyQuSbUz~ae}nzx zhp1=Igd6E6&VBJQQ;K^b<`naMkHEm5o?wG(2QDTxl@u zK0E;BMzwx6H#%S5zLCddLEQ)X^3HPY;{742urQ>ct*Yf*JZ)+}M{#N#!@-n^pEP!7;_-M5rRczum@;GZ8+fPx0B`$#a*`1f(2CU_5QrGe%@KQw+Pc9C4GEmEi z8g2;0?2U3aV0Bb5ErteLW6g3m<#+H>nga|*!oOMyjs8DTM08vQ=>zU$$CzRkjU1>K z`F|pBdVBk~EPm|>jljHQTUu;{OPcjSEMA+}c{*eIi*`I9_WKAyg{aiN3!W(7Oybo+ z+}>?JeW6B@Tz+9gSN0fjlW*_1P^V6FAwKlHEy3YXI$ao*`gXBbl6)}RkzJDZFeT6e zGHs2yWlkL&kM)a53IClbz}JL$67jGr6dr2|y0McqI)$MCY3GX-Q2js7JFk?X6`+Ty zDWXo477^W3wMRey06=D3r1I2j+mTtQrCpHEx}fW0R>!}2o_p1d;|s2$X;D1`ll8$J z1Ce*luUCtXeM%nsL?RZBpPyRh5|6+TA_CyM3ch=M;8!cuLy?|=A^bHsOVIqTA@Gq| zmHN>$Li&Ivu{K{g9>PK;9ZJ!+c-mePd)`g z&;33ZbaLx3eHkjx@t`fIF^A&8oxEtV9(;2Q8flv@d^5QI#?PQ{-<~YhnCJ0=UN?E% zerrVjze>&9t%M1iTVFcsay7u|8U+LBok2R#cN@NgV9fQP)8_Eq?#>Knc;zQR;IWk@ zqNX!EZkLj%N#nQTshwv3ivO23pKY!m>Vi|J(O?Fg9pVeVh5d~jxmV7mOy+3-2b;;7 zg!iKP_y8RLkw(WUXKGFN{rRs7e0N24kO7#X6D!EDRSm|g6Q62IcG)5lc`r_TaN|aY zQ|S$hw)O#cft@Kw6FsBuuI-sKFV^mpysK>n^D(G@@9h~Sx+Ts*?Od*H}=_WbycbT zf6{w}+g`uo!48ldvhunbl!*)^siJ^C!maCFWa&iL@#>`U^@c@Ia>528bT#E%S^T1z oZ>~xC(Ty}e_roK)lhfXVq8)kq$}(4e0sm1}R6mh;%=FLy2Y&;5od5s; diff --git a/snapshot1.png b/snapshot1.png deleted file mode 100644 index 1742462fb626c1bc50ba804e1fac7fafe8a1185d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65428 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

                3_H5jYWzeqjo_}R}=Du!o3hXkg%C?@4I4MyH8WG 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 } /** + * Schema * @class */ class Schema { diff --git a/src/Plugins/Minimap.ts b/src/Plugins/Minimap.ts index 09ef006..689b190 100644 --- a/src/Plugins/Minimap.ts +++ b/src/Plugins/Minimap.ts @@ -3,10 +3,7 @@ import VEditor from "../VEditor"; import { Canvg } from "canvg"; import { mat2d } from "gl-matrix"; import { Position } from "../Utils/types"; -// 使用html -/** - * @class - */ + class MiniMap { editor: VEditor; width: number; diff --git a/src/Shape/Line.ts b/src/Shape/Line.ts index 5f5bfdf..9fa1350 100644 --- a/src/Shape/Line.ts +++ b/src/Shape/Line.ts @@ -6,7 +6,7 @@ import { SVGHelper } from "../Utils/svg"; import Node, { InstanceNode, InstanceNodePoint } from "./Node"; import { createSVGElement, setAttrs } from "../Utils/dom"; import { VEditorLine } from "../Model/Schema"; -import { Path } from ".."; +import Path from "../Utils/path"; import { AnyMap, Position } from "../Utils/types"; export interface InstanceLine extends AnyMap { dom: SVGElement; //wrapperDOM diff --git a/src/Shape/Node.ts b/src/Shape/Node.ts index 2b7269d..bd92365 100644 --- a/src/Shape/Node.ts +++ b/src/Shape/Node.ts @@ -44,9 +44,9 @@ export interface InstanceNodePoint { }; } /** - * @class + * @class Node */ -export default class Node { +class Node { graph: Graph; nodes: Record; paper: SVGGElement; @@ -509,3 +509,4 @@ export default class Node { } } } +export default Node; \ No newline at end of file diff --git a/src/Utils/index.ts b/src/Utils/index.ts index a18a08e..52d0572 100644 --- a/src/Utils/index.ts +++ b/src/Utils/index.ts @@ -1,6 +1,7 @@ export { default as Event } from "./Event"; export * from "./svg"; -export * from "./dom"; +export * as dom from "./dom"; export * as Vector2 from "./vector"; export { default as BezierLine } from "./BezierLine"; export { default as Path } from "./path"; +export * from './types' \ No newline at end of file diff --git a/src/VEditor.ts b/src/VEditor.ts index 7180685..0d55652 100644 --- a/src/VEditor.ts +++ b/src/VEditor.ts @@ -5,127 +5,130 @@ import Minimap from "./Plugins/Minimap"; import "./index.less"; import { createSVGElement, setAttrs } from "./Utils/dom"; import * as Utils from "./Utils"; +/** + * @link + */ export interface VEditorOptions { - dom: HTMLDivElement; - hideAchor?: boolean; - hideAchorLine?: boolean; - anchorDistance?: number; - showBackGrid?: boolean; - showMiniMap?: boolean; - mode?: "edit" | "view"; - dagreOption?: Record; - [key: string]: any; + dom: HTMLDivElement; + hideAchor?: boolean; + hideAchorLine?: boolean; + anchorDistance?: number; + showBackGrid?: boolean; + showMiniMap?: boolean; + mode?: "edit" | "view"; + dagreOption?: Record; + [key: string]: any; } /** * @class - * @extends Event + * @extends Utils.Event */ class VEditor extends Utils.Event { - config: VEditorOptions; - dom: HTMLDivElement; - svg: SVGSVGElement; - paper: SVGGElement; - container: HTMLDivElement; - graph: Graph; - controller: Controller; - schema: Schema; - minimap: Minimap; - constructor(config: VEditorOptions) { - super(); - this.config = Object.assign( - { - hideAchor: false, - hideAchorLine: false, - anchorDistance: 5, - showBackGrid: true, - showMiniMap: false, - mode: undefined, - dagreOption: {}, - }, - config - ); - if (!config.dom) return; - /** - * @property {HTMLElement} dom 容器 - */ - this.dom = this.initDom(config.dom); - /** - * @property {Snap.Element} svg - */ - this.svg = this.dom.querySelector("svg"); - /** - * @property {Snap.Element} paper - */ - this.paper = createSVGElement("g", this.svg) as SVGGElement; - this.paper.classList.add("ve-editor-paper"); - /** - * @property {HTMLElement} container 实例dom - */ - this.container = this.dom.querySelector(".ve-editor"); - this.resize(); - /** - * @property {Graph} graph 画布 - */ - this.graph = new Graph(this); - /** - * @property {Controller} controller 控制器 - */ - this.controller = new Controller(this); - /** - * @property {Schema} schema 数据管理器 - */ - this.schema = new Schema(this); - if (this.config.showMiniMap) { - /** - * @property {Minimap?} minimap 小地图 - */ - this.minimap = new Minimap(this); - this.minimap.init(); - } + config: VEditorOptions; + dom: HTMLDivElement; + svg: SVGSVGElement; + paper: SVGGElement; + container: HTMLDivElement; + graph: Graph; + controller: Controller; + schema: Schema; + minimap: Minimap; + /** + * @param {VEditorOptions} options 配置项 + */ + constructor(config: VEditorOptions) { + super(); + this.config = Object.assign( + { + hideAchor: false, + hideAchorLine: false, + anchorDistance: 5, + showBackGrid: true, + showMiniMap: false, + mode: undefined, + dagreOption: {}, + }, + config + ); + if (!config.dom) return; + /** + * @property {HTMLElement} dom 容器 + */ + this.dom = this.initDom(config.dom); + /** + * @property {Snap.Element} svg + */ + this.svg = this.dom.querySelector("svg"); + /** + * @property {Snap.Element} paper + */ + this.paper = createSVGElement("g", this.svg) as SVGGElement; + this.paper.classList.add("ve-editor-paper"); + /** + * @property {HTMLElement} container 实例dom + */ + this.container = this.dom.querySelector(".ve-editor"); + this.resize(); + /** + * @property {Graph} graph 画布 + */ + this.graph = new Graph(this); + /** + * @property {Controller} controller 控制器 + */ + this.controller = new Controller(this); + /** + * @property {Schema} schema 数据管理器 + */ + this.schema = new Schema(this); + if (this.config.showMiniMap) { + /** + * @property {Minimap?} minimap 小地图 + */ + this.minimap = new Minimap(this); + this.minimap.init(); } + } - initDom(dom: HTMLDivElement): HTMLDivElement { - dom.innerHTML = `

                + initDom(dom: HTMLDivElement): HTMLDivElement { + dom.innerHTML = `
                `; - return dom; - } + return dom; + } - /** - * 重新布局 - */ - resize() { - const { width, height } = this.config; - setAttrs(this.svg, { - width: width || "100%", - height: height || "100%", - }); - } + resize() { + const { width, height } = this.config; + setAttrs(this.svg, { + width: width || "100%", + height: height || "100%", + }); + } - /** - * 销毁函数 - */ - destroy() { - this.minimap && this.minimap.destroy(); - this.graph.destroy(); - this.graph = undefined; - this.svg.remove(); - this.dom.innerHTML = undefined; - this.controller.clear(); - this.controller = undefined; - this.schema = undefined; - this.clear(); - } + /** + * destroy + */ + destroy() { + this.minimap && this.minimap.destroy(); + this.graph.destroy(); + this.graph = undefined; + this.svg.remove(); + this.dom.innerHTML = undefined; + this.controller.clear(); + this.controller = undefined; + this.schema = undefined; + this.clear(); + } - /** - * 重绘 - */ - repaint() { - this.graph.clearGraph(); - this.graph.render(this.schema.data); - } + /** + * repaint + */ + repaint() { + this.graph.clearGraph(); + this.graph.render(this.schema.data); + } } export default VEditor; diff --git a/src/index.ts b/src/index.ts index f2519db..9edfc10 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,17 @@ -export { default } from "./VEditor"; + +export * as Utils from "./Utils"; +export * as Schema from "./Model/Schema"; +export * as Node from "./Shape/Node"; +export * as Line from "./Shape/Line"; +export * as DefaultLine from "./Shape/Lines/Line"; +export * as DefaultNode from "./Shape/Nodes/DefaultNodes"; +export * from "./VEditor"; export { default as VEditor } from "./VEditor"; -export * from "./Utils"; -export { default as DefaultNode } from "./Shape/Nodes/DefaultNodes"; -export { default as DefaultLine } from "./Shape/Lines/Line"; +export { default as Graph } from "./Shape/Graph"; +export { default as History } from "./Model/History"; +export { default as AnchorLine } from "./Shape/AnchorLine"; +export { default as Controller } from "./Utils/Controller"; +export { default as Minimap } from "./Plugins/Minimap"; +export { default as Event } from "./Utils/Event"; + +export { default } from "./VEditor"; diff --git a/start.md b/start.md new file mode 100644 index 0000000..fc99476 --- /dev/null +++ b/start.md @@ -0,0 +1,55 @@ +# Install +``` +npm install @vesoft-inc/veditor --save +``` + +# Usage + +### Step 1: Import VEditor +```ts +import VEditor from "@vesoft-inc/veditor"; + +const editor = new VEditor({ + dom: document.getElementById("root") +}); +``` +### Step 2: Set Data + +```ts +await editor.schema.setInitData({ + nodes:[ + { + uuid:0, + type:"default",// node shape type + name:"test0", + x:100, + y:300 + }, + { + uuid:1, + type:"default",// node shape type + name:"test1", + x:300, + y:300 + } + ], + lines:[ + { + from:0, + to:1, + fromPoint:1, + toPoint:0 + } + ] +}) +``` +### Step 3: Autofit with dagre +```ts +await editor.graph.format(); +await editor.graph.autofit(); +``` + +### Step 4: Get Data +```ts +console.log(editor.schema.getData()) +``` \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 1ed1f85..ac29e47 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,5 @@ { - // 更改此项以匹配您的项目 - "include": ["src/**/*","demo/**/*"], + "include": ["src/**/*"], "compileOnSave": true, "compilerOptions": { "pretty": true, diff --git a/typedoc.js b/typedoc.js new file mode 100644 index 0000000..d4889bd --- /dev/null +++ b/typedoc.js @@ -0,0 +1,5 @@ +module.exports = { + entryPoints: ["./src/index.ts"], + out: "docs", + theme: "default" +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index fc2a18b..bb21d90 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,68 +1,70 @@ const devMode = process.env.SYS_ENV !== "production"; const path = require('path') module.exports = { - cache: true, - entry: { - app: "./index.js" - }, - output: { - filename: "index.js" - }, - mode: 'development', - devServer: { - host: "0.0.0.0", - port: "7798", - static: { - staticOptions: { - publicPath: '/', - serveIndex: true, - }, - }, - watchFiles: ['src/**/*', 'demo/**/*'], - open: "./index.html", - hot: true - }, - devtool: "source-map", - module: { + cache: true, + entry: { + app: "./demo/app.js" + }, + output: { + filename: "index.js" + }, + mode: 'development', + devServer: { + host: "0.0.0.0", + port: "7798", + static: [{ + staticOptions: { + publicPath: '/', + serveIndex: true, + }, + }, { + directory: path.join(__dirname, 'dist'), + }], + watchFiles: ['src/**/*', 'demo/**/*'], + open: "./index.html", + hot: true + }, + devtool: "source-map", + module: { - rules: [ - { - test: /\.(js|ts)$/, - exclude: /node_modules|dist/, - use: { - loader: "ts-loader" - } - }, - { - test: /\.css$/, - use: [devMode ? "style-loader" : MiniCssExtractPlugin.loader, "css-loader"] - }, - { - test: /\.less$/, - use: [ - devMode ? "style-loader" : MiniCssExtractPlugin.loader, - { - loader: "css-loader" - }, - { - loader: "less-loader" - } - ] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: "url-loader" - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: "url-loader" - } - ] - }, - resolve: { - extensions: ['.ts', '.js', '.json', '.less', '.svg', '.css',], - alias: { - '@': path.join(__dirname, './src/'), - }, - }, + rules: [ + { + test: /\.(js|ts)$/, + exclude: /node_modules|dist/, + use: { + loader: "ts-loader" + } + }, + { + test: /\.css$/, + use: [devMode ? "style-loader" : MiniCssExtractPlugin.loader, "css-loader"] + }, + { + test: /\.less$/, + use: [ + devMode ? "style-loader" : MiniCssExtractPlugin.loader, + { + loader: "css-loader" + }, + { + loader: "less-loader" + } + ] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: "url-loader" + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: "url-loader" + } + ] + }, + resolve: { + extensions: ['.ts', '.js', '.json', '.less', '.svg', '.css',], + alias: { + '@': path.join(__dirname, './src/'), + }, + }, }; From 40b13886c3a1f3966070e7228fcafc04e31b478f Mon Sep 17 00:00:00 2001 From: mizy <1060950782@163.com> Date: Tue, 16 Aug 2022 18:24:28 +0800 Subject: [PATCH 2/3] add registe Line demo --- README.md | 5 +++-- custom.md | 30 ++++++++++++++++++++++++++++++ src/index.ts | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a1af86f..02c6e05 100644 --- a/README.md +++ b/README.md @@ -68,8 +68,9 @@ console.log(editor.schema.getData()) ``` # API -- [Get Start](./docs/start.md) -- [API](./api/_index.md) +- [Get Start](./start.md) +- [Custom Shape](./custom.md) +- [API](./docs) # License diff --git a/custom.md b/custom.md index 6a308ff..056f7df 100644 --- a/custom.md +++ b/custom.md @@ -36,3 +36,33 @@ editor.graph.node.registeNode("react-svg-node", { }); // result data ``` + +## Registe Line +```ts +import { DefaultLine } from '@vesoft-inc/veditor'; +const Path: DefaultLine.LineRender = { + type: 'path', + arcRatio: 4, + ...DefaultLine, + + renderLabel(line: InstanceLine): SVGGElement { + const { label, startStep = 1, endStep = 1, stepType, filter = [] } = line.data as VisualQueryLine; + if(!line.label){ + line.label = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + } + line.shape?.appendChild(line.label); + // do some thing to render label + line.label.text = label; + return line.label.labelGroup; + }, + + checkNewLine(data: VisualQueryLine) { + const { from, to } = data; + if (from === to) { + return false; + } + return true; + }, +}; + +``` diff --git a/src/index.ts b/src/index.ts index 9edfc10..27f8ce6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ +import DefaultLine from './Shape/Lines/Line'; export * as Utils from "./Utils"; export * as Schema from "./Model/Schema"; From e83d4f15f2b6460102276812599da0838200fe28 Mon Sep 17 00:00:00 2001 From: mizy <1060950782@163.com> Date: Tue, 16 Aug 2022 18:25:03 +0800 Subject: [PATCH 3/3] add registe Line demo --- custom.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/custom.md b/custom.md index 056f7df..98d3fad 100644 --- a/custom.md +++ b/custom.md @@ -64,5 +64,6 @@ const Path: DefaultLine.LineRender = { return true; }, }; - +editor.graph.line.registeLine('simple-label-line', Path); +``` ```