commit 1bb33e4e159656b816ac21291feed069cdb275cd Author: huangsimin <huangsimin@ecpark.cn> Date: Thu Dec 12 18:33:33 2019 +0800 init diff --git a/.factorypath b/.factorypath new file mode 100644 index 0000000..63442ab --- /dev/null +++ b/.factorypath @@ -0,0 +1,8 @@ +<factorypath> + <factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1.jar" enabled="true" runInBatchMode="false"/> + <factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.12.1/log4j-api-2.12.1.jar" enabled="true" runInBatchMode="false"/> + <factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-log4j12/1.7.29/slf4j-log4j12-1.7.29.jar" enabled="true" runInBatchMode="false"/> + <factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" enabled="true" runInBatchMode="false"/> + <factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.29/slf4j-api-1.7.29.jar" enabled="true" runInBatchMode="false"/> + <factorypathentry kind="VARJAR" id="M2_REPO/com/github/vlsi/mxgraph/jgraphx/4.0.5/jgraphx-4.0.5.jar" enabled="true" runInBatchMode="false"/> +</factorypath> diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8dfa1eb --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# When shell scripts end in CRLF, bash gives a cryptic error message +*.sh text eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..00a9984 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# +# Standard Maven .gitignore +# +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +*.log + +# +# IntelliJ +# +*.iml +.idea/* +!.idea/runConfigurations/ + +# +# Visual Studio Code +# +.settings/ +.classpath +.project +.vscode/ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..425ddca --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: java +jdk: oraclejdk8 +after_success: +- mvn coveralls:report diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..7aae736 --- /dev/null +++ b/pom.xml @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.yame</groupId> + <artifactId>mxgraph</artifactId> + <version>1.0-SNAPSHOT</version> + + <name>mxgraph</name> + <!-- FIXME change it to the project's website --> + <url>http://www.example.com</url> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + + <maven.compiler.encoding>UTF-8</maven.compiler.encoding> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.11</java.version> + <maven.compiler.source>11</maven.compiler.source> + <maven.compiler.target>11</maven.compiler.target> + </properties> + + <dependencies> + + + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.12.1</version> + </dependency> + + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.12.1</version> + </dependency> + + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.7.29</version> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.7.29</version> + </dependency> + + <dependency> + <groupId>com.github.vlsi.mxgraph</groupId> + <artifactId>jgraphx</artifactId> + <version>4.0.5</version> + + </dependency> + + + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> + <plugins> + <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>3.1.0</version> + </plugin> + <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <version>3.0.2</version> + </plugin> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <release>11</release> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.1</version> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <version>3.0.2</version> + </plugin> + <plugin> + <artifactId>maven-install-plugin</artifactId> + <version>2.5.2</version> + </plugin> + <plugin> + <artifactId>maven-deploy-plugin</artifactId> + <version>2.8.2</version> + </plugin> + <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> + <plugin> + <artifactId>maven-site-plugin</artifactId> + <version>3.7.1</version> + </plugin> + <plugin> + <artifactId>maven-project-info-reports-plugin</artifactId> + <version>3.0.0</version> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> diff --git a/src/main/java/com/yame/App.java b/src/main/java/com/yame/App.java new file mode 100644 index 0000000..2f85959 --- /dev/null +++ b/src/main/java/com/yame/App.java @@ -0,0 +1,13 @@ +package com.yame; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/src/main/java/com/yame/Graph.java b/src/main/java/com/yame/Graph.java new file mode 100644 index 0000000..7fa3430 --- /dev/null +++ b/src/main/java/com/yame/Graph.java @@ -0,0 +1,12 @@ +package com.yame; + + +/** + * Graph + */ +public class Graph { + + public void load() { + + } +} \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties new file mode 100644 index 0000000..10ffffb --- /dev/null +++ b/src/main/resources/log4j.properties @@ -0,0 +1,22 @@ +log4j.rootLogger=debug, stdout, file + +# Redirect log messages to console +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + +log4j.appender.file=org.apache.log4j.FileAppender +log4j.appender.file.File=./out.log +log4j.appender.file.layout=org.apache.log4j.SimpleLayout +# +# log4j.appender.C=org.apache.log4j.RollingFileAppender +# log4j.appender.C.File=E:\\log.html +# log4j.appender.C.MaxFileSize=1000KB +# log4j.appender.C.MaxBackupIndex=10 +# log4j.appender.C.layout=org.apache.log4j.HTMLLayout +# log4j.appender.C.encoding=gbk +# +# log4j.appender.D=org.apache.log4j.DailyRollingFileAppender +# log4j.appender.D.File=E:\\log.log +# log4j.appender.D.layout=org.apache.log4j.TTCCLayout */ \ No newline at end of file diff --git a/src/test/java/com/yame/1.xml b/src/test/java/com/yame/1.xml new file mode 100644 index 0000000..f0519dd --- /dev/null +++ b/src/test/java/com/yame/1.xml @@ -0,0 +1,755 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mxfile host="Electron" modified="2019-11-28T07:55:49.689Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.2.2 Chrome/78.0.3904.94 Electron/7.1.0 Safari/537.36" etag="DbiUJFiSfzca5P0bM66D" version="12.2.2" type="device" pages="2"> + <diagram name="os-a" id="efa7a0a1-bf9b-a30e-e6df-94a7791c09e9"> + <mxGraphModel dx="2320" dy="1460" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="826" pageHeight="1169" background="#ffffff" math="0" shadow="0"> + <root> + <mxCell id="0"/> + <mxCell id="1" parent="0"/> + <mxCell id="19" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Role</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdCompany<br />Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="310.0000000000001" y="91.64000000000044" width="160" height="120" as="geometry"/> + </mxCell> + <mxCell id="20" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Company</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="310.00000000000006" y="302.4999999999998" width="160" height="125" as="geometry"/> + </mxCell> + <mxCell id="21" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Calendar</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdCalendar</p><p style="margin: 0px; margin-left: 8px;">IdCompany</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">ValidUntil</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="40.00000000000002" y="284.99999999999983" width="160" height="160" as="geometry"/> + </mxCell> + <mxCell id="22" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>User</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdUser</p><p style="margin: 0px; margin-left: 8px;">IdCompany</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">LastName</p><p style="margin: 0px; margin-left: 8px;">Email</p><p style="margin: 0px; margin-left: 8px;">UserName</p><p style="margin: 0px; margin-left: 8px;">Password</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="879.9999999999999" y="430" width="160.0000000000001" height="180" as="geometry"/> + </mxCell> + <object label="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>UserProjectRole</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdUserProjectRole</p><p style="margin: 0px; margin-left: 8px;">IdRole</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">IdUser</p>" oid="xxx" id="23"> + <mxCell style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="591.0800000000005" y="101.64000000000058" width="160" height="100" as="geometry"/> + </mxCell> + </object> + <mxCell id="24" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Client</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdClient</p><p style="margin: 0px; margin-left: 8px;">IdCompany</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="310.0000000000002" y="556.9600000000006" width="160" height="150" as="geometry"/> + </mxCell> + <mxCell id="25" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Holiday</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdHoliday</p><p style="margin: 0px; margin-left: 8px;">IdCalendar</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">Date</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="40.00000000000005" y="21.640000000000366" width="160" height="160" as="geometry"/> + </mxCell> + <mxCell id="26" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeSheet</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeSheet</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p><p style="margin: 0px; margin-left: 8px;">IdUser</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="1170" y="680" width="160" height="170" as="geometry"/> + </mxCell> + <mxCell id="27" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeSheetHour</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeSheetHour<br />IdTimeSheet</p><p style="margin: 0px; margin-left: 8px;">IdUser</p><p style="margin: 0px; margin-left: 8px;">IdTimeCategory</p><p style="margin: 0px; margin-left: 8px;">IdTask</p><p style="margin: 0px; margin-left: 8px;">Quantity</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">IdProjectManager</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="1170" y="419.99999999999994" width="160" height="200" as="geometry"/> + </mxCell> + <mxCell id="28" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Document</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdDocument</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">ValidFrom</p><p style="margin: 0px; margin-left: 8px;">ValidUntil</p><p style="margin: 0px; margin-left: 8px;">DocumentContents</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdateAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="129.9999999999999" y="881.1600000000003" width="160" height="180" as="geometry"/> + </mxCell> + <mxCell id="29" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Project</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">IdClient</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">StartDate</p><p style="margin: 0px; margin-left: 8px;">EndDate</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled<br />IdProjectManager</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="591.0800000000003" y="531.9600000000007" width="160" height="200" as="geometry"/> + </mxCell> + <mxCell id="30" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeCategory</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeCategory</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="1420.0000000000002" y="455.0000000000001" width="160" height="130" as="geometry"/> + </mxCell> + <mxCell id="31" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeSheetCostCenter</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeSheetCostCenter</p><p style="margin: 0px; margin-left: 8px;">IdTimeSheet</p><p style="margin: 0px; margin-left: 8px;">IdCostCenter</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="1170" y="912.4999999999997" width="160" height="95" as="geometry"/> + </mxCell> + <mxCell id="32" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>CostCenter</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdCostCenter</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="940.0000000000001" y="889.9999999999995" width="160" height="140" as="geometry"/> + </mxCell> + <mxCell id="33" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>ProjectCostCenter</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdProjectCostCenter</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">IdCostCenter</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="630" y="914.9999999999995" width="160" height="90" as="geometry"/> + </mxCell> + <mxCell id="34" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center ; text-decoration: underline"><strong>ProjectDocument</strong></p><hr><p style="margin: 0px ; margin-left: 8px">IdProjectDocument</p><p style="margin: 0px ; margin-left: 8px">IdProject</p><p style="margin: 0px ; margin-left: 8px">IdDocument</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="360.00000000000006" y="926.1600000000003" width="160" height="90" as="geometry"/> + </mxCell> + <mxCell id="35" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Tasks</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTask</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">Work</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">StartDate</p><p style="margin: 0px; margin-left: 8px;">EndDate</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="1" vertex="1"> + <mxGeometry x="1170" y="140.00000000000009" width="160" height="190" as="geometry"/> + </mxCell> + <mxCell id="36" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;" parent="1" source="19" target="20" edge="1"> + <mxGeometry y="160" as="geometry"> + <mxPoint y="160" as="sourcePoint"/> + <mxPoint x="160" y="160" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="37" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="36" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="38" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="36" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="590" y="105" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="45" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;rounded=0" parent="1" source="23" target="22" edge="1"> + <mxGeometry x="519.3599999999999" y="180" as="geometry"> + <mxPoint x="519.3599999999999" y="180" as="sourcePoint"/> + <mxPoint x="679.3599999999999" y="180" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="46" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="45" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="8.919999999999618" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="47" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="45" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-550" y="-159.99999999999997" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="48" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.25;rounded=0" parent="1" source="29" target="22" edge="1"> + <mxGeometry x="769.3599999999999" y="450" as="geometry"> + <mxPoint x="769.3599999999999" y="450" as="sourcePoint"/> + <mxPoint x="929.3599999999999" y="450" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="49" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="48" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="8.919999999999803" y="3.039999999999177" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="50" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="48" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="51" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="23" target="29" edge="1"> + <mxGeometry x="389.35999999999996" y="350" as="geometry"> + <mxPoint x="389.35999999999996" y="350" as="sourcePoint"/> + <mxPoint x="549.3599999999999" y="350" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="52" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="51" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="8.91999999999958" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="53" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="51" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="18.919999999999582" y="-21.960000000000644" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="54" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.25;rounded=0" parent="1" source="26" target="22" edge="1"> + <mxGeometry x="1209.36" y="170" as="geometry"> + <mxPoint x="1209.36" y="170" as="sourcePoint"/> + <mxPoint x="1369.36" y="170" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="55" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="54" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-30" y="7.499999999999728" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="56" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="54" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="57" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="27" target="26" edge="1"> + <mxGeometry x="1269.36" y="180" as="geometry"> + <mxPoint x="1269.36" y="180" as="sourcePoint"/> + <mxPoint x="1429.36" y="180" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="58" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="57" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="59" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="57" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" y="-20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="63" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;entryX=0.75;entryY=1" parent="1" source="33" target="29" edge="1"> + <mxGeometry x="479.35999999999996" y="790" as="geometry"> + <mxPoint x="479.35999999999996" y="790" as="sourcePoint"/> + <mxPoint x="639.3599999999999" y="790" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="64" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="63" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-30" y="-97.50000000000027" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="65" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="63" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-11.080000000000421" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="66" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="33" target="32" edge="1"> + <mxGeometry x="469.3599999999999" y="526.1600000000003" as="geometry"> + <mxPoint x="469.3599999999999" y="526.1600000000003" as="sourcePoint"/> + <mxPoint x="980" y="1061.1600000000005" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="67" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="66" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="68" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="66" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="72" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;entryX=0.25;entryY=1;rounded=0" parent="1" source="34" target="29" edge="1"> + <mxGeometry x="419.35999999999996" y="820" as="geometry"> + <mxPoint x="419.35999999999996" y="820" as="sourcePoint"/> + <mxPoint x="579.3599999999999" y="820" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="73" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="72" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" y="-26.160000000000235" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="74" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="72" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-11.080000000000421" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="75" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="31" target="26" edge="1"> + <mxGeometry x="1079.36" y="560" as="geometry"> + <mxPoint x="1079.36" y="560" as="sourcePoint"/> + <mxPoint x="1239.36" y="560" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="76" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="75" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10.00000000000009" y="-22.499999999999915" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="77" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="75" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="78" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="27" target="30" edge="1"> + <mxGeometry x="1309.36" y="540" as="geometry"> + <mxPoint x="1309.36" y="540" as="sourcePoint"/> + <mxPoint x="1469.36" y="540" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="79" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="78" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="80" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="78" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="81" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="27" target="35" edge="1"> + <mxGeometry x="1119.36" y="540" as="geometry"> + <mxPoint x="1119.36" y="540" as="sourcePoint"/> + <mxPoint x="1279.36" y="540" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="82" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="81" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" y="-20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="83" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="81" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="84" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="27" target="22" edge="1"> + <mxGeometry x="1389.36" y="130" as="geometry"> + <mxPoint x="1389.36" y="130" as="sourcePoint"/> + <mxPoint x="1549.36" y="130" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="85" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="84" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-30" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="86" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="84" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" y="2.7284841053187846e-13" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="87" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="20" target="24" edge="1"> + <mxGeometry x="519.3599999999999" y="200" as="geometry"> + <mxPoint x="519.3599999999999" y="200" as="sourcePoint"/> + <mxPoint x="679.3599999999999" y="200" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="88" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="87" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-40" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="89" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="87" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="19.99999999999981" y="-24.999999999999815" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="90" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="25" target="21" edge="1"> + <mxGeometry x="620" y="340" as="geometry"> + <mxPoint x="620" y="340" as="sourcePoint"/> + <mxPoint x="780" y="340" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="91" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="90" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="92" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="90" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" y="-24.99999999999981" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="99" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="1" source="29" target="24" edge="1"> + <mxGeometry x="369.35999999999996" y="360" as="geometry"> + <mxPoint x="369.35999999999996" y="360" as="sourcePoint"/> + <mxPoint x="529.3599999999999" y="360" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="100" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="99" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-31.08000000000042" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="101" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="99" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="19.99999999999981" y="1.8947806286936006e-13" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="102" value="Use" style="endArrow=open;endSize=12;dashed=1" parent="1" source="23" target="19" edge="1"> + <mxGeometry x="430" y="50" as="geometry"> + <mxPoint x="430" y="50" as="sourcePoint"/> + <mxPoint x="590" y="50" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="103" value="1" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;" parent="1" source="21" target="20" edge="1"> + <mxGeometry x="-0.8181818181818175" y="4.999999999999702" relative="1" as="geometry"> + <mxPoint x="80" y="510" as="sourcePoint"/> + <mxPoint x="240" y="510" as="targetPoint"/> + <mxPoint as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="107" value="" style="endArrow=none;edgeStyle=orthogonalEdgeStyle;" parent="1" source="28" target="34" edge="1"> + <mxGeometry x="190" y="950" as="geometry"> + <mxPoint x="190" y="950" as="sourcePoint"/> + <mxPoint x="350" y="950" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="108" value="parent" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="107" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" y="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="109" value="child" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="107" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" y="23.83999999999977" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="110" value="" style="endArrow=none;edgeStyle=orthogonalEdgeStyle;" parent="1" source="32" target="31" edge="1"> + <mxGeometry x="910" y="972.4999999999998" as="geometry"> + <mxPoint x="910" y="972.4999999999998" as="sourcePoint"/> + <mxPoint x="1070" y="972.4999999999998" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="111" value="parent" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="110" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="112" value="child" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="110" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" y="25" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="113" value="" style="endArrow=block;endFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;entryX=1;entryY=0.75;exitX=0;exitY=0.75;rounded=0" parent="1" source="26" target="29" edge="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="910" y="840" as="sourcePoint"/> + <mxPoint x="1070" y="840" as="targetPoint"/> + <Array as="points"> + <mxPoint x="910" y="808"/> + <mxPoint x="910" y="682"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="114" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10" parent="113" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-19.99999999999982" y="2.499999999999909" as="offset"/> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="ZEFDzWWxa7eG-YTOwoTG" name="os-b"> + <mxGraphModel dx="3712" dy="2336" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <root> + <mxCell id="dzx6YQmkxxi6H6zbbz4T-0"/> + <mxCell id="dzx6YQmkxxi6H6zbbz4T-1" parent="dzx6YQmkxxi6H6zbbz4T-0"/> + <mxCell id="bSDDLgkOTVISDoT7am6R-0" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Role</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdCompany<br />Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="300" y="98.14000000000044" width="160" height="120" as="geometry"/> + </mxCell> + <mxCell id="9OZsCzifeMDsPcw4zjhr-2" style="edgeStyle=orthogonalEdgeStyle;curved=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=diamondThin;startFill=0;startSize=14;endArrow=open;endSize=12;" edge="1" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-1" target="bSDDLgkOTVISDoT7am6R-2"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-1" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Company</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="300" y="308.9999999999998" width="160" height="125" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-2" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Calendar</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdCalendar</p><p style="margin: 0px; margin-left: 8px;">IdCompany</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">ValidUntil</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="30" y="291.49999999999983" width="160" height="160" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-3" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>User</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdUser</p><p style="margin: 0px; margin-left: 8px;">IdCompany</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">LastName</p><p style="margin: 0px; margin-left: 8px;">Email</p><p style="margin: 0px; margin-left: 8px;">UserName</p><p style="margin: 0px; margin-left: 8px;">Password</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="870" y="436.5" width="160.0000000000001" height="180" as="geometry"/> + </mxCell> + <object label="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>UserProjectRole</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdUserProjectRole</p><p style="margin: 0px; margin-left: 8px;">IdRole</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">IdUser</p>" oid="xxx" id="bSDDLgkOTVISDoT7am6R-4"> + <mxCell style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="581.0800000000004" y="108.14000000000058" width="160" height="100" as="geometry"/> + </mxCell> + </object> + <mxCell id="bSDDLgkOTVISDoT7am6R-5" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Client</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdClient</p><p style="margin: 0px; margin-left: 8px;">IdCompany</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="300.0000000000002" y="563.4600000000006" width="160" height="150" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-6" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Holiday</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdHoliday</p><p style="margin: 0px; margin-left: 8px;">IdCalendar</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">Date</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="30" y="28.14000000000037" width="154" height="160" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-7" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeSheet</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeSheet</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p><p style="margin: 0px; margin-left: 8px;">IdUser</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="1160" y="686.5" width="160" height="170" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-8" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeSheetHour</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeSheetHour<br />IdTimeSheet</p><p style="margin: 0px; margin-left: 8px;">IdUser</p><p style="margin: 0px; margin-left: 8px;">IdTimeCategory</p><p style="margin: 0px; margin-left: 8px;">IdTask</p><p style="margin: 0px; margin-left: 8px;">Quantity</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">IdProjectManager</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="1160" y="426.49999999999994" width="160" height="200" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-9" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Document</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdDocument</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">ValidFrom</p><p style="margin: 0px; margin-left: 8px;">ValidUntil</p><p style="margin: 0px; margin-left: 8px;">DocumentContents</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdateAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="120" y="887.6600000000003" width="160" height="180" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-10" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Project</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">IdClient</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">StartDate</p><p style="margin: 0px; margin-left: 8px;">EndDate</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled<br />IdProjectManager</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="581.0800000000004" y="538.4600000000007" width="160" height="200" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-11" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeCategory</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeCategory</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="1410" y="461.5000000000001" width="160" height="130" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-12" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>TimeSheetCostCenter</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTimeSheetCostCenter</p><p style="margin: 0px; margin-left: 8px;">IdTimeSheet</p><p style="margin: 0px; margin-left: 8px;">IdCostCenter</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="1160" y="918.9999999999997" width="160" height="95" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-13" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>CostCenter</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdCostCenter</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="930" y="896.4999999999995" width="160" height="140" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-14" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>ProjectCostCenter</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdProjectCostCenter</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">IdCostCenter</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="620" y="921.4999999999995" width="160" height="90" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-15" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center ; text-decoration: underline"><strong>ProjectDocument</strong></p><hr><p style="margin: 0px ; margin-left: 8px">IdProjectDocument</p><p style="margin: 0px ; margin-left: 8px">IdProject</p><p style="margin: 0px ; margin-left: 8px">IdDocument</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="350" y="932.6600000000003" width="160" height="90" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-16" value="<p style="margin: 0px; margin-top: 4px; text-align: center; text-decoration: underline;"><strong>Tasks</strong></p><hr /><p style="margin: 0px; margin-left: 8px;">IdTask</p><p style="margin: 0px; margin-left: 8px;">Name</p><p style="margin: 0px; margin-left: 8px;">Description</p><p style="margin: 0px; margin-left: 8px;">Work</p><p style="margin: 0px; margin-left: 8px;">IdProject</p><p style="margin: 0px; margin-left: 8px;">StartDate</p><p style="margin: 0px; margin-left: 8px;">EndDate</p><p style="margin: 0px; margin-left: 8px;">CreatedAt</p><p style="margin: 0px; margin-left: 8px;">UpdatedAt</p><p style="margin: 0px; margin-left: 8px;">Enabled</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="dzx6YQmkxxi6H6zbbz4T-1" vertex="1"> + <mxGeometry x="1160" y="146.50000000000009" width="160" height="190" as="geometry"/> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-17" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-0" target="bSDDLgkOTVISDoT7am6R-1" edge="1"> + <mxGeometry x="-10" y="166.5" as="geometry"> + <mxPoint x="-10" y="166.5" as="sourcePoint"/> + <mxPoint x="150" y="166.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-18" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-17" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-19" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-17" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="590" y="105" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-20" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;rounded=0" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-4" target="bSDDLgkOTVISDoT7am6R-3" edge="1"> + <mxGeometry x="509.3599999999999" y="186.5" as="geometry"> + <mxPoint x="509.3599999999999" y="186.5" as="sourcePoint"/> + <mxPoint x="669.3599999999999" y="186.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-21" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-20" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="8.919999999999618" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-22" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-20" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-550" y="-159.99999999999997" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-23" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.25;rounded=0" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-10" target="bSDDLgkOTVISDoT7am6R-3" edge="1"> + <mxGeometry x="759.3599999999999" y="456.5" as="geometry"> + <mxPoint x="759.3599999999999" y="456.5" as="sourcePoint"/> + <mxPoint x="919.3599999999997" y="456.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-24" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-23" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="8.919999999999803" y="3.039999999999177" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-25" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-23" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-26" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-4" target="bSDDLgkOTVISDoT7am6R-10" edge="1"> + <mxGeometry x="379.3599999999999" y="356.5" as="geometry"> + <mxPoint x="379.3599999999999" y="356.5" as="sourcePoint"/> + <mxPoint x="539.3599999999999" y="356.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-27" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-26" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="8.91999999999958" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-28" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-26" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="18.919999999999582" y="-21.960000000000644" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-29" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.25;rounded=0" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-7" target="bSDDLgkOTVISDoT7am6R-3" edge="1"> + <mxGeometry x="1199.3599999999997" y="176.5" as="geometry"> + <mxPoint x="1199.3599999999997" y="176.5" as="sourcePoint"/> + <mxPoint x="1359.3599999999997" y="176.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-30" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-29" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-30" y="7.499999999999728" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-31" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-29" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-32" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-8" target="bSDDLgkOTVISDoT7am6R-7" edge="1"> + <mxGeometry x="1259.3599999999997" y="186.5" as="geometry"> + <mxPoint x="1259.3599999999997" y="186.5" as="sourcePoint"/> + <mxPoint x="1419.3599999999997" y="186.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-33" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-32" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-34" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-32" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" y="-20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-35" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;entryX=0.75;entryY=1" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-14" target="bSDDLgkOTVISDoT7am6R-10" edge="1"> + <mxGeometry x="469.3599999999999" y="796.5" as="geometry"> + <mxPoint x="469.3599999999999" y="796.5" as="sourcePoint"/> + <mxPoint x="629.3599999999999" y="796.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-36" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-35" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-30" y="-97.50000000000027" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-37" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-35" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-11.080000000000421" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-38" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-14" target="bSDDLgkOTVISDoT7am6R-13" edge="1"> + <mxGeometry x="459.3599999999999" y="532.6600000000003" as="geometry"> + <mxPoint x="459.3599999999999" y="532.6600000000003" as="sourcePoint"/> + <mxPoint x="970" y="1067.6600000000005" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-39" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-38" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-40" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-38" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-41" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;entryX=0.25;entryY=1;rounded=0" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-15" target="bSDDLgkOTVISDoT7am6R-10" edge="1"> + <mxGeometry x="409.3599999999999" y="826.5" as="geometry"> + <mxPoint x="409.3599999999999" y="826.5" as="sourcePoint"/> + <mxPoint x="569.3599999999999" y="826.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-42" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-41" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" y="-26.160000000000235" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-43" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-41" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-11.080000000000421" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-44" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-12" target="bSDDLgkOTVISDoT7am6R-7" edge="1"> + <mxGeometry x="1069.3599999999997" y="566.5" as="geometry"> + <mxPoint x="1069.3599999999997" y="566.5" as="sourcePoint"/> + <mxPoint x="1229.3599999999997" y="566.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-45" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-44" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10.00000000000009" y="-22.499999999999915" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-46" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-44" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-47" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-8" target="bSDDLgkOTVISDoT7am6R-11" edge="1"> + <mxGeometry x="1299.3599999999997" y="546.5" as="geometry"> + <mxPoint x="1299.3599999999997" y="546.5" as="sourcePoint"/> + <mxPoint x="1459.3599999999997" y="546.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-48" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-47" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-49" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-47" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-50" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-8" target="bSDDLgkOTVISDoT7am6R-16" edge="1"> + <mxGeometry x="1109.3599999999997" y="546.5" as="geometry"> + <mxPoint x="1109.3599999999997" y="546.5" as="sourcePoint"/> + <mxPoint x="1269.3599999999997" y="546.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-51" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-50" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" y="-20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-52" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-50" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-53" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-8" target="bSDDLgkOTVISDoT7am6R-3" edge="1"> + <mxGeometry x="1379.3599999999997" y="136.5" as="geometry"> + <mxPoint x="1379.3599999999997" y="136.5" as="sourcePoint"/> + <mxPoint x="1539.3599999999997" y="136.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-54" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-53" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-30" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-55" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-53" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" y="2.7284841053187846e-13" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-56" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-1" target="bSDDLgkOTVISDoT7am6R-5" edge="1"> + <mxGeometry x="509.3599999999999" y="206.5" as="geometry"> + <mxPoint x="509.3599999999999" y="206.5" as="sourcePoint"/> + <mxPoint x="669.3599999999999" y="206.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-57" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-56" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-40" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-58" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-56" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="19.99999999999981" y="-24.999999999999815" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-59" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-6" target="bSDDLgkOTVISDoT7am6R-2" edge="1"> + <mxGeometry x="610" y="346.5" as="geometry"> + <mxPoint x="610" y="346.5" as="sourcePoint"/> + <mxPoint x="770" y="346.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-60" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-59" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-61" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-59" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="20" y="-24.99999999999981" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-62" value="" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-10" target="bSDDLgkOTVISDoT7am6R-5" edge="1"> + <mxGeometry x="359.3599999999999" y="366.5" as="geometry"> + <mxPoint x="359.3599999999999" y="366.5" as="sourcePoint"/> + <mxPoint x="519.3599999999999" y="366.5" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-63" value="0..n" style="resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-62" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-31.08000000000042" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-64" value="1" style="resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-62" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="19.99999999999981" y="1.8947806286936006e-13" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-65" value="Use" style="endArrow=open;endSize=12;dashed=1" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-4" target="bSDDLgkOTVISDoT7am6R-0" edge="1"> + <mxGeometry x="420" y="56.5" as="geometry"> + <mxPoint x="420" y="56.5" as="sourcePoint"/> + <mxPoint x="580" y="56.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-67" value="" style="endArrow=none;edgeStyle=orthogonalEdgeStyle;" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-9" target="bSDDLgkOTVISDoT7am6R-15" edge="1"> + <mxGeometry x="180" y="956.5" as="geometry"> + <mxPoint x="180" y="956.5" as="sourcePoint"/> + <mxPoint x="340" y="956.5" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-68" value="parent" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-67" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" y="-10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-69" value="child" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-67" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" y="23.83999999999977" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-70" value="" style="endArrow=none;edgeStyle=orthogonalEdgeStyle;" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-13" target="bSDDLgkOTVISDoT7am6R-12" edge="1"> + <mxGeometry x="900" y="978.9999999999998" as="geometry"> + <mxPoint x="900" y="978.9999999999998" as="sourcePoint"/> + <mxPoint x="1060" y="978.9999999999998" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-71" value="parent" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-70" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-72" value="child" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;strokeColor=#003366;shadow=1;fillColor=#D4E1F5;fontColor=#003366" parent="bSDDLgkOTVISDoT7am6R-70" connectable="0" vertex="1"> + <mxGeometry x="1" relative="1" as="geometry"> + <mxPoint x="-10" y="25" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-73" value="" style="endArrow=block;endFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;entryX=1;entryY=0.75;exitX=0;exitY=0.75;rounded=0" parent="dzx6YQmkxxi6H6zbbz4T-1" source="bSDDLgkOTVISDoT7am6R-7" target="bSDDLgkOTVISDoT7am6R-10" edge="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="900" y="846.5" as="sourcePoint"/> + <mxPoint x="1060" y="846.5" as="targetPoint"/> + <Array as="points"> + <mxPoint x="900" y="814.5"/> + <mxPoint x="900" y="688.5"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="bSDDLgkOTVISDoT7am6R-74" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10" parent="bSDDLgkOTVISDoT7am6R-73" connectable="0" vertex="1"> + <mxGeometry x="-1" relative="1" as="geometry"> + <mxPoint x="-19.99999999999982" y="2.499999999999909" as="offset"/> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> \ No newline at end of file diff --git a/src/test/java/com/yame/AppTest.java b/src/test/java/com/yame/AppTest.java new file mode 100644 index 0000000..b758e16 --- /dev/null +++ b/src/test/java/com/yame/AppTest.java @@ -0,0 +1,22 @@ +package com.yame; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + + public static String testPath = "src/test/java/com/yame/"; + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/src/test/java/com/yame/GraphTest.java b/src/test/java/com/yame/GraphTest.java new file mode 100644 index 0000000..5b81bf3 --- /dev/null +++ b/src/test/java/com/yame/GraphTest.java @@ -0,0 +1,47 @@ +package com.yame; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import com.mxgraph.io.mxCodec; +import com.mxgraph.util.mxXmlUtils; +import com.mxgraph.view.mxGraph; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.log4j.*; +import org.w3c.dom.Document; +import org.w3c.dom.Node; + +/** + * GraphTest + */ + +public class GraphTest { + + private final Logger log = LoggerFactory.getLogger(GraphTest.class.getName()); + + @Test + public void TestCase1() { + mxGraph graph = new mxGraph(); + Path path = Paths.get(AppTest.testPath + "1.xml"); + try { + String xmlString = Files.readString( path ); + Document doc = mxXmlUtils.parseXml(xmlString); + mxCodec code = new mxCodec(doc); + Object a = code.decode(doc.getParentNode()); + log.debug(a.toString()); + // log.debug(mxXmlUtils.getXml( a)); + } catch (Exception e) { + // e.printStackTrace(); + log.error("Case1", e); + } + + + } +} \ No newline at end of file diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties new file mode 100644 index 0000000..10ffffb --- /dev/null +++ b/src/test/resources/log4j.properties @@ -0,0 +1,22 @@ +log4j.rootLogger=debug, stdout, file + +# Redirect log messages to console +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + +log4j.appender.file=org.apache.log4j.FileAppender +log4j.appender.file.File=./out.log +log4j.appender.file.layout=org.apache.log4j.SimpleLayout +# +# log4j.appender.C=org.apache.log4j.RollingFileAppender +# log4j.appender.C.File=E:\\log.html +# log4j.appender.C.MaxFileSize=1000KB +# log4j.appender.C.MaxBackupIndex=10 +# log4j.appender.C.layout=org.apache.log4j.HTMLLayout +# log4j.appender.C.encoding=gbk +# +# log4j.appender.D=org.apache.log4j.DailyRollingFileAppender +# log4j.appender.D.File=E:\\log.log +# log4j.appender.D.layout=org.apache.log4j.TTCCLayout */ \ No newline at end of file