diff --git a/.circleci/config.yml b/.circleci/config.yml
index d1c90263a..cf935a2d1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -3,7 +3,7 @@ version: 2.1
executors:
openjdk_executor:
docker:
- - image: circleci/openjdk@sha256:012843a8f91da1ea5e22e142bb5cb8c999a7457e03b8c79ab45d5fcb68043383
+ - image: cimg/openjdk:11.0
environment:
_JAVA_OPTIONS: "-Xmx3g"
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..a556ede7f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,35 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Environment:**
+- MDK version:
+- VE version:
+- MMS Version:
+- MagicDraw or Cameo Systems Modeler Version:
+- Operating system: [e.g., Windows 10, macOS Mojave]
+
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.gitignore b/.gitignore
index f27076d72..f1f04c412 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,4 +19,5 @@ rebel.xml
venv/*
!venv/bin/
*.groovy
-libz
\ No newline at end of file
+libz
+mddocs
diff --git a/.run/mdk-2021x-runJava.run.xml b/.run/mdk-2021x-runJava.run.xml
new file mode 100644
index 000000000..45af2fcc6
--- /dev/null
+++ b/.run/mdk-2021x-runJava.run.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
\ No newline at end of file
diff --git a/.run/mdk-runJava.run.xml b/.run/mdk-runJava.run.xml
new file mode 100644
index 000000000..914a27268
--- /dev/null
+++ b/.run/mdk-runJava.run.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index a3add4b62..613d6e7cd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -13,14 +13,17 @@ buildscript {
}
dependencies {
classpath "io.github.gradle-nexus:publish-plugin:1.0.0"
+ classpath group: 'org.openjfx', name: 'javafx-plugin', version: '0.0.14'
}
}
+
plugins {
id 'idea'
id 'eclipse'
id 'java'
id 'distribution'
+ id 'org.openjfx.javafxplugin' version '0.0.14'
}
String buildProfile = project.getProperties().getOrDefault('buildProfile', 'opensource')
@@ -63,14 +66,10 @@ else {
String docbookNameVersion = 'docbook-xsl-1.79.1'
String fopNameVersion = 'fop-1.1'
-java {
- sourceCompatibility = 'VERSION_1_8'
- targetCompatibility = 'VERSION_1_8'
-}
-
-
// In this section you declare where to find the dependencies of your project
repositories {
+ mavenCentral()
+ flatDir { dirs "libz" } //Put Cameo no-install and plugin zips here
ivy {
url "https://sourceforge.net/projects/docbook/files/docbook-xsl/"
patternLayout {
@@ -91,7 +90,6 @@ repositories {
//url 'https://mirror.nodesdirect.com/apache/xmlgraphics/fop/binaries/' for newer version
}
- mavenCentral()
maven {
url 'https://repo.gradle.org/gradle/libs-releases-local/'
}
@@ -135,6 +133,7 @@ if (profiles['repositories'] != null) {
configurations {
preImplementation
+ distribution
testPublish
}
@@ -152,7 +151,7 @@ dependencies {
implementation group: 'org.jsoup', name: 'jsoup', version: '1.6.1'
// implementation group: 'org.jsoup', name: 'jsoup', version: '1.9.1+'
- // JGraphT
+ // JGraphT
implementation group: 'net.sf.jgrapht', name: 'jgrapht', version: '0.8.3'
// implementation group: 'org.jgrapht', name: 'jgrapht', version: '1.0.0+'
@@ -168,8 +167,8 @@ dependencies {
implementation group: 'net.sf.opencsv', name: 'opencsv', version: '2.3'
// implementation group: 'com.opencsv', name: 'opencsv', version: '3.8+'
- // ActiveMQ
- implementation group: 'org.apache.activemq', name: 'activemq-all', version: '5.9.1'
+ // ActiveMQ
+ //implementation group: 'org.apache.activemq', name: 'activemq-all', version: '5.9.1'
// implementation group: 'org.apache.activemq', name: 'activemq-all', version: '5.14.0+'
// Jackson
@@ -187,10 +186,10 @@ dependencies {
implementation group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.2'
// Apache Commons CLI
- implementation group: 'commons-cli', name: 'commons-cli', version: '1.2'
+ implementation group: 'commons-cli', name: 'commons-cli', version: '1.4'
//OpenMBEE MMS Java Client
- implementation group: 'org.openmbee.mms', name: 'mms-java-client', version: '3.4.2'
+ //implementation group: 'org.openmbee.mms', name: 'mms-java-client', version: '3.4.2'
implementation group: 'com.beust', name: 'jcommander', version: '1.72'
@@ -216,14 +215,19 @@ dependencies {
}
}
else {
- preImplementation group: 'com.nomagic', name: 'demomagicdraw', version: '190sp3', classifier: 'MagicDraw_Demo_190_sp3_no_install', ext: 'zip'
- preImplementation group: 'com.nomagic', name: 'sysml', version: '190sp3', classifier: 'SysML_Plugin_190_sp3_bundle', ext: 'zip'
- preImplementation group: 'com.nomagic', name: 'cst', version: '190sp3', classifier: 'Cameo_Simulation_Toolkit_Plugin_190_sp3', ext: 'zip'
+ preImplementation group: 'com.nomagic', name: 'democsm', version: '2022xRefresh1', classifier: 'Cameo_Systems_Modeler_2022x_Refresh1_HF1_no_install', ext: 'zip'
+// preCompile group: 'com.nomagic', name: 'sysml', version: '2021x', classifier: 'SysML_Plugin_2021x', ext: 'zip'
+// preCompile group: 'com.nomagic', name: 'cst', version: '2021x', classifier: 'Cameo_Simulation_Toolkit_Plugin_2021x', ext: 'zip'
}
preImplementation group: 'org.apache.fop', name: 'fop', version: '1.1', classifier: fopNameVersion + '-bin', ext: 'zip'
preImplementation group: 'net.sourceforge.docbook', name: 'docbook-xsl', version: '1.79.1', classifier: docbookNameVersion, ext: 'zip'
+ // JavaFX
+ //preImplementation group: 'org.openjfx', name: 'javafx-fxml', version: '11.0.2'
+ //preImplementation group: 'org.openjfx', name: 'javafx-controls', version: '11.0.2'
+ //preImplementation group: 'org.openjfx', name: 'javafx-swing', version: '11.0.2'
+
// This ensures classpath load order to match the MagicDraw provided order and then includes extras needed for non-OpenAPI stuff.
// This was necessary because of the Application class stubbing that was done in the chromium libraries.
implementation files(classpathLibraries.collect { 'build/dependency-cache/extracted/magicdraw/' + it })
@@ -236,9 +240,19 @@ dependencies {
implementation files(it)
}
}
+ else {
+ implementation files('build/dependency-cache/extracted/fop/jars/fop-1.1.jar', 'build/dependency-cache/extracted/fop/jars/xmlgraphics-commons-1.5.jar')
+ }
}
+javafx {
+ version = "11.0.2"
+ modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.swing' ]
+ platform = 'win'
+ configurations = ['preImplementation']
+}
+
task extractDependencies {
configurations.preImplementation.resolvedConfiguration.resolvedArtifacts.each { artifact ->
inputs.file artifact.file
@@ -278,6 +292,12 @@ task extractDependencies {
into 'build/dependency-cache/extracted/docbook'
}
}
+ else if (archive.getName().startsWith('javafx')) {
+ copy {
+ from archive.getAbsoluteFile()
+ into 'build/dependency-cache/extracted/javafx'
+ }
+ }
else {
copy {
from zipTree(archive)
@@ -316,7 +336,7 @@ task testsJar(type: Jar, dependsOn: testClasses) {
archiveClassifier = 'tests'
from sourceSets.test.output
- exclude 'gov/nasa/jpl/mbee/mdk/test/framework/**'
+ exclude 'org/openmbee/mdk/test/framework/**'
exclude 'org/**'
exclude 'worker/**'
//include 'gov/nasa/jpl/mbee/mdk/test/tests/**'
@@ -326,14 +346,14 @@ task testsHackJar(type: Jar, dependsOn: testClasses) {
archiveClassifier = 'tests-hack'
from sourceSets.test.output
- include 'gov/nasa/jpl/mbee/mdk/test/framework/**'
+ include 'org/openmbee/mdk/test/framework/**'
include 'org/**'
include 'worker/**'
//exclude 'gov/nasa/jpl/mbee/mdk/test/tests/**'
manifest {
attributes(
- 'Main-Class': 'gov.nasa.jpl.mbee.mdk.test.framework.GradleMagicDrawLauncher'
+ 'Main-Class': 'org.openmbee.mdk.test.framework.GradleMagicDrawLauncher'
)
}
}
@@ -382,6 +402,10 @@ abstract class PreDist extends DefaultTask {
from project.jar
into "${outputDir}/plugins/${groupName}"
}
+ project.copy {
+ from "${extractedCache}/javafx"
+ into "${outputDir}/plugins/${groupName}/javafx"
+ }
project.copy {
from project.getTasks().getByName('javadocZip')
into "${outputDir}/plugins/${groupName}/javadoc"
@@ -491,7 +515,6 @@ distZip {
eachFile { file ->
file.setPath(path.substring(path.indexOf("/") + 1, path.length()))
}
-
}
distZip.dependsOn preDist
@@ -593,8 +616,8 @@ task runJava(type: JavaExec) {
if (profiles["executablePath"] != null) {
executable = profiles["executablePath"]
}
- main = 'com.nomagic.osgi.launcher.ProductionFrameworkLauncher'
- jvmArgs = ['-Xmx8192M', '-Xss512M', '-DLOCALCONFIG=true', '-DWINCONFIG=true', '-Djsse.enableSNIExtension=true', '-Djava.net.preferIPv4Stack=true', '-Dcom.sun.media.imageio.disableCodecLib=true', '-noverify', '-Dlocal.config.dir.ext=-dev', '-splash:data/splash.png', '-Dmd.class.path=$java.class.path', '-Dcom.nomagic.osgi.config.dir=configuration', '-Desi.system.config=data/application.conf', '-Dlogback.configurationFile=data/logback.xml', '-Dsun.locale.formatasdefault=true', '-Dorg.osgi.framework.bundle.parent=ext']
+ main = 'com.nomagic.magicdraw.Main'
+ jvmArgs = ['--module-path', 'plugins/org.openmbee.mdk/javafx', '--add-modules', 'javafx.controls,javafx.swing,javafx.fxml', '-Xmx8192M', '-Xss512M', '-DLOCALCONFIG=true', '-DWINCONFIG=true', '-Djsse.enableSNIExtension=true', '-Djava.net.preferIPv4Stack=true', '-Dcom.sun.media.imageio.disableCodecLib=true', '-noverify', '-Dlocal.config.dir.ext=-dev', '-splash:data/splash.png', '-Dmd.class.path=$java.class.path', '-Desi.system.config=data/application.conf', '-Dlogback.configurationFile=data/logback.xml', '-Dsun.locale.formatasdefault=true', '-Djdk.attach.allowAttachSelf=true']
// arguments to pass to the application
args 'DEVELOPER'
}
@@ -611,8 +634,8 @@ task testAVG(type: JavaExec) {
standardOutput = System.out
errorOutput = System.err
- main = 'com.nomagic.osgi.launcher.ProductionFrameworkLauncher'
- jvmArgs = ['-Xmx8192M', '-Xss512M', '-DLOCALCONFIG=true', '-DWINCONFIG=true', '-Djsse.enableSNIExtension=true', '-Djava.net.preferIPv4Stack=true', '-Dcom.sun.media.imageio.disableCodecLib=true', '-noverify', '-Dlocal.config.dir.ext=-dev', '-splash:data/splash.png', '-Dmd.class.path=$java.class.path', '-Dcom.nomagic.osgi.config.dir=configuration', '-Desi.system.config=data/application.conf', '-Dlogback.configurationFile=data/logback.xml', '-Dsun.locale.formatasdefault=true', '-Dorg.osgi.framework.bundle.parent=ext', '-Dcom.nomagic.magicdraw.launcher=com.nomagic.magicdraw.commandline.CommandLineActionLauncher', '-Dcom.nomagic.magicdraw.commandline.action=gov.nasa.jpl.mbee.pma.cli.AutomatedViewGenerator']
+ main = 'com.nomagic.magicdraw.Main'
+ jvmArgs = ['-Xmx8192M', '-Xss512M', '-DLOCALCONFIG=true', '-DWINCONFIG=true', '-Djsse.enableSNIExtension=true', '-Djava.net.preferIPv4Stack=true', '-Dcom.sun.media.imageio.disableCodecLib=true', '-noverify', '-Dlocal.config.dir.ext=-dev', '-splash:data/splash.png', '-Dmd.class.path=$java.class.path', '-Desi.system.config=data/application.conf', '-Dlogback.configurationFile=data/logback.xml', '-Dsun.locale.formatasdefault=true', '-Dcom.nomagic.magicdraw.launcher=com.nomagic.magicdraw.commandline.CommandLineActionLauncher', '-Dcom.nomagic.magicdraw.commandline.action=org.openmbee.pma.cli.AutomatedViewGenerator']
}
testAVG.dependsOn installDist
@@ -665,6 +688,7 @@ test {
* Example command: .../java -Dcom.nomagic.osgi.config.dir=configuration -Desi.system.config=data/application.conf -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dlogback.configurationFile=data/logback.xml -Dmd.class.path=$java.class.path -jar /Users/igomes/mdk/build/libs/mdk-*-tests-hack.jar -cp ... -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -cp .../.gradle/caches/.../workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 1'
*
* @author igomes
+ * TODO 2021x refresh 1 removed osgi
*/
classpath = files()
doFirst {
diff --git a/buildProfiles/opensource.properties b/buildProfiles/opensource.properties
index 5ff07029a..68bf1ad9a 100644
--- a/buildProfiles/opensource.properties
+++ b/buildProfiles/opensource.properties
@@ -1,2 +1,2 @@
-classpathLibraries = "lib/patch.jar,lib/brand.jar,lib/brand_api.jar,lib/md.jar,lib/md_api.jar,lib/md_common.jar,lib/md_common_api.jar,lib/md_common_test.jar,lib/tw_common.jar,lib/tw_common_api.jar,lib/launcher.jar,lib/activation.jar,lib/annotation.jar,lib/batik.jar,lib/bridj-0.7.0.jar,lib/bundles/ch.qos.logback.classic_1.2.3.jar,lib/bundles/ch.qos.logback.core_1.2.3.jar,lib/bundles/cmof_1.4.0.202006020804/cmof14.jar,lib/bundles/cmof_1.4.0.202006020804/tas.jar,lib/bundles/com.esotericsoftware.kryo_2.22.0.201401231130.jar,lib/bundles/com.google.guava_18.0.0.jar,lib/bundles/com.nomagic.annotations_1.0.0/com.nomagic.annotation-1.0.jar,lib/bundles/com.nomagic.ci.binary_17.0.5.v20200602-0758.jar,lib/bundles/com.nomagic.ci.metamodel.project_17.0.5.v20200602-0758.jar,lib/bundles/com.nomagic.ci.persistence.local_17.0.5.v20200602-0758.jar,lib/bundles/com.nomagic.ci.persistence_17.0.5.v20200602-0758.jar,lib/bundles/com.nomagic.ci.services_17.0.5.v20200602-0758.jar,lib/bundles/com.nomagic.ci_17.0.5.v20200602-0758.jar,lib/bundles/com.nomagic.esi.api.messages_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.api_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.client.core_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.common_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.config_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.core.msg_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.emf_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.helper_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.net_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.serializer.akka_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.serializer_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.service.actorsystem_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.services_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.stream_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.esi.supervisor_1.0.0.v20191101-2128.jar,lib/bundles/com.nomagic.magicdraw.ce_18.1.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.core.diagram_18.1.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.core.project.options_18.1.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.core_1.0.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.esi.binary.metamodel_18.1.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.esi.esiproject_18.1.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.esi.uuidmap_18.1.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.foundation_2.0.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.osgi.fragment_1.0.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.security_18.3.0.202006020804.jar,lib/bundles/com.nomagic.magicdraw.uml2_2.5.1.202006020804.jar,lib/bundles/com.nomagic.magicdraw_17.0.5.202006020804.jar,lib/bundles/com.teamdev.jxbrowser.chromium.internal.linux64_6.24.1.jar,lib/bundles/com.teamdev.jxbrowser.chromium.internal.mac_6.24.1.jar,lib/bundles/com.teamdev.jxbrowser.chromium.internal.win32_6.24.1.jar,lib/bundles/com.teamdev.jxbrowser.chromium.internal.win64_6.24.1.jar,lib/bundles/com.teamdev.jxbrowser.chromium_6.24.1.jar,lib/bundles/com.typesafe.akka.actor_2.5.10.jar,lib/bundles/com.typesafe.akka.cluster.tools_2.5.10.jar,lib/bundles/com.typesafe.akka.cluster_2.5.10.jar,lib/bundles/com.typesafe.akka.osgi_2.5.10.jar,lib/bundles/com.typesafe.akka.protobuf_2.5.10.jar,lib/bundles/com.typesafe.akka.remote_2.5.10.jar,lib/bundles/com.typesafe.akka.slf4j_2.5.10.jar,lib/bundles/com.typesafe.akka.stream_2.5.10.jar,lib/bundles/com.typesafe.config_1.3.0.jar,lib/bundles/com.typesafe.sslconfig_0.2.2.jar,lib/bundles/de.schlichtherle.truezip_7.4.3.v20200602-0758/lib/truezip-driver-zip-7.4.3.jar,lib/bundles/de.schlichtherle.truezip_7.4.3.v20200602-0758/lib/truezip-kernel-7.4.3.jar,lib/bundles/gnu.trove_3.0.3/lib/trove-3.0.3.jar,lib/bundles/io.aeron.client_1.7.0.jar,lib/bundles/io.aeron.driver_1.7.0.jar,lib/bundles/io.dropwizard.metrics.core_3.1.2.jar,lib/bundles/io.dropwizard.metrics.graphite_3.1.2.jar,lib/bundles/io.netty.buffer_4.1.21.Final.jar,lib/bundles/io.netty.codec_4.1.21.Final.jar,lib/bundles/io.netty.common_4.1.21.Final.jar,lib/bundles/io.netty.handler_4.1.21.Final.jar,lib/bundles/io.netty.resolver_4.1.21.Final.jar,lib/bundles/javax.jmi_1.0.0.202006020804/javax_jmi-1_0-fr.jar,lib/bundles/io.netty.transport_4.1.21.Final.jar,lib/bundles/joda-time_2.9.1.jar,lib/bundles/lz4-java_1.3.0.jar,lib/bundles/org.agrona_0.9.12.jar,lib/bundles/org.apache.commons.codec_1.9.0.v20170208-1614.jar,lib/bundles/org.apache.commons.collections_3.2.1.jar,lib/bundles/org.apache.commons.compress_1.3.0.jar,lib/bundles/org.apache.commons.io_2.4.0.jar,lib/bundles/org.apache.commons.lang_2.6.0.v201404270220.jar,lib/bundles/org.apache.commons.logging_1.1.1.v201101211721.jar,lib/bundles/org.apache.felix.scr_2.0.10.v20170501-2007.jar,lib/bundles/org.apache.httpcomponents.httpclient_4.5.3.jar,lib/bundles/org.apache.httpcomponents.httpcore_4.4.6.v20170210-0925.jar,lib/bundles/org.apache.log4j_1.2.15.v201005080500.jar,lib/bundles/org.apache.servicemix.bundles.jsr305_2.0.1.1.jar,lib/bundles/org.apiguardian_1.1.0.v20190826-0900.jar,lib/bundles/org.eclipse.core.contenttype_3.6.0.v20170207-1037.jar,lib/bundles/org.eclipse.core.jobs_3.9.2.v20171030-1027.jar,lib/bundles/org.eclipse.core.runtime_3.13.0.v20170207-1030.jar,lib/bundles/org.eclipse.emf.common_2.13.0.v20170609-0707.jar,lib/bundles/org.eclipse.emf.ecore.xmi_2.13.0.v20170609-0707.jar,lib/bundles/org.eclipse.emf.ecore_2.13.0.v20170609-0707.jar,lib/bundles/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar,lib/bundles/org.eclipse.equinox.common_3.9.0.v20170207-1454.jar,lib/bundles/org.eclipse.equinox.ds_1.5.0.v20170307-1429.jar,lib/bundles/org.eclipse.equinox.preferences_3.7.0.v20170126-2132.jar,lib/bundles/org.eclipse.equinox.registry_3.7.0.v20170222-1344.jar,lib/bundles/org.eclipse.osgi.services_3.6.0.v20170228-1906.jar,lib/bundles/org.eclipse.osgi.util_3.4.0.v20170111-1608.jar,lib/bundles/org.eclipse.osgi_3.12.50.v20170928-1321.jar,lib/bundles/org.eclipse.uml2.common_1.5.0.v200905041045.jar,lib/bundles/org.hamcrest.core_1.3.0.v201303031735.jar,lib/bundles/org.jboss.netty_3.10.6.Final.jar,lib/bundles/org.json_1.0.0.255610281323.jar,lib/bundles/org.junit.jupiter.api_5.5.1.v20190826-0900.jar,lib/bundles/org.junit.jupiter.params_5.5.1.v20190826-0900.jar,lib/bundles/org.junit.platform.commons_1.5.1.v20190826-0900.jar,lib/bundles/org.junit_4.12.0.v201504281640/junit.jar,lib/bundles/org.opentest4j_1.2.0.v20190826-0900.jar,lib/bundles/org.reactivestreams.reactive-streams_1.0.2.jar,lib/bundles/org.scala-lang.modules.scala-java8-compat_0.8.0.jar,lib/bundles/org.scala-lang.modules.scala-parser-combinators_1.0.4.jar,lib/bundles/org.scala-lang.scala-library_2.12.4.v20171010-220511-VFINAL-c2a5883.jar,lib/bundles/org.uncommons.maths_1.2.2.201301151508/lib/uncommons-maths-1.2.2a.jar,lib/bundles/slf4j.api_1.7.25.jar,lib/bundles/cmof_1.4.0.201912191136/cmof14.jar,lib/bundles/cmof_1.4.0.201912191136/tas.jar,lib/bundles/com.nomagic.ci.binary_17.0.5.v20191219-1130.jar,lib/bundles/com.nomagic.ci.metamodel.project_17.0.5.v20191219-1130.jar,lib/bundles/com.nomagic.ci.persistence.local_17.0.5.v20191219-1130.jar,lib/bundles/com.nomagic.ci.persistence_17.0.5.v20191219-1130.jar,lib/bundles/com.nomagic.ci.services_17.0.5.v20191219-1130.jar,lib/bundles/com.nomagic.ci_17.0.5.v20191219-1130.jar,lib/bundles/com.nomagic.magicdraw.ce_18.1.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.core.diagram_18.1.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.core.project.options_18.1.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.core_1.0.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.esi.binary.metamodel_18.1.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.esi.esiproject_18.1.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.esi.uuidmap_18.1.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.foundation_2.0.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.osgi.fragment_1.0.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.security_18.3.0.201912191136.jar,lib/bundles/com.nomagic.magicdraw.uml2_2.5.1.201912191136.jar,lib/bundles/com.nomagic.magicdraw_17.0.5.201912191136.jar,lib/bundles/de.schlichtherle.truezip_7.4.3.v20191219-1130/lib/truezip-driver-zip-7.4.3.jar,lib/bundles/de.schlichtherle.truezip_7.4.3.v20191219-1130/lib/truezip-kernel-7.4.3.jar,lib/bundles/javax.jmi_1.0.0.201912191136/javax_jmi-1_0-fr.jar,lib/com.nomagic.osgi.launcher-17.0.5-SNAPSHOT.jar,lib/commons-compress-1.3.jar,lib/commons-httpclient-3.1.jar,lib/commons-logging-1.0.4.jar,lib/concurrent.jar,lib/EccpressoAll.jar,lib/HTMLEditorLight.jar,lib/JUnitParams-1.0.1.jar,lib/ehcache-2.10.1.jar,lib/flexlm.jar,lib/graphics/clibwrapper_jiio.jar,lib/graphics/freehep-base.jar,lib/graphics/freehep-graphics2d.jar,lib/graphics/freehep-graphicsio-emf.jar,lib/graphics/freehep-graphicsio-ps.jar,lib/graphics/freehep-graphicsio.jar,lib/graphics/jai_imageio.jar,lib/gson-2.2.4.jar,lib/hunspell-bridj-1.0.5-SNAPSHOT.jar,lib/javassist.jar,lib/jhall.jar,lib/jide-action.jar,lib/jide-charts.jar,lib/jide-common.jar,lib/jide-components.jar,lib/jide-diff.jar,lib/jide-dock.jar,lib/jide-editor.jar,lib/jide-gantt.jar,lib/jide-grids.jar,lib/jide-shortcut.jar,lib/jimi.jar,lib/jna.jar,lib/jnp-client.jar,lib/jsr250-api-1.0.jar,lib/jsr305.jar,lib/jtidy.jar,lib/lucene-analyzers-common-7.5.0.jar,lib/lucene-core-7.5.0.jar,lib/lucene-misc-7.5.0.jar,lib/poi-3.14-20160307.jar,lib/poi-ooxml-3.14-20160307.jar,lib/poi-ooxml-schemas-3.14-20160307.jar,lib/webservice/axis-config.jar,lib/webservice/axis.jar,lib/webservice/commons-discovery-0.2.jar,lib/webservice/jaxrpc.jar,lib/webservice/mdserviceclient.jar,lib/webservice/rsclient.jar,lib/webservice/wsdl4j-1.5.1.jar,lib/xalan.jar,lib/xmlbeans-2.6.0.jar,lib/y.jar"
-repositories = [{"type": "ivy", "url": "http://download1.nomagic.com/", "layoutPattern": "/[module][revision]/[classifier].[ext]"}]
\ No newline at end of file
+classpathLibraries = lib/classpath.jar
+repositories = [{"type": "ivy", "url": "http://download1.nomagic.com/", "layoutPattern": "/[module][revision]/[classifier].[ext]"}]
diff --git a/gradle.properties b/gradle.properties
index 7710ce00b..a2c7f2daa 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,7 +1,7 @@
-version=5.1.3
+version=6.0.0
group=org.openmbee.mdk.magic
descriptorFile=MDR_Plugin_Model_Development_Kit_91110_descriptor.xml
-magicdDrawGroupName=gov.nasa.jpl.cae.magicdraw.mdk
+magicdDrawGroupName=org.openmbee.mdk
# Add the following secrets via project properties, as applicable. Options include in ~/.gradle/gradle.properties file,
# environment variables, or command line arguments, ref:
diff --git a/src/main/dist/DocGenUserScripts/FrameworkValidation/CreateCustomizationsForStereotypes.py b/src/main/dist/DocGenUserScripts/FrameworkValidation/CreateCustomizationsForStereotypes.py
deleted file mode 100644
index 227c43527..000000000
--- a/src/main/dist/DocGenUserScripts/FrameworkValidation/CreateCustomizationsForStereotypes.py
+++ /dev/null
@@ -1,229 +0,0 @@
-'''
-Created on Sep 26, 2011
-
-@author: efosse
-'''
-from java.lang import *
-from com.nomagic.magicdraw.uml.symbols import *
-from com.nomagic.magicdraw.core import Application
-from com.nomagic.uml2.ext.jmi.helpers import StereotypesHelper
-from com.nomagic.magicdraw.openapi.uml import ModelElementsManager
-from com.nomagic.magicdraw.ui.dialogs import *
-from com.nomagic.uml2.ext.magicdraw.mdprofiles import Stereotype, Profile
-from com.nomagic.uml2.ext.magicdraw.classes.mdkernel import *
-from com.nomagic.uml2.ext.magicdraw.classes.mddependencies import *
-from com.nomagic.uml2.ext.magicdraw.classes.mdinterfaces import *
-from com.nomagic.uml2.ext.magicdraw.actions.mdbasicactions import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdbasicactivities import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities import *
-from com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdinformationflows import *
-from com.nomagic.uml2.ext.magicdraw.compositestructures.mdports import *
-from com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdsimpletime import *
-
-import ProfileValidation as VP
-reload(VP)
-
-mem = ModelElementsManager.getInstance()
-gl = Application.getInstance().getGUILog()
-project = Application.getInstance().getProject()
-ef = project.getElementsFactory()
-classmeta = StereotypesHelper.getProfileForStereotype
-
-def createCustomizationsForStereotypes(modelPackage, validateOnly):
-###Checks for:
-###stereotypes with no customizations (stereotypesNoCustomizations)
-###customizations with no supertype (noType)
-###customizations with multiple supertypes (multTypes)
-###customizations with no target (noCustTargs)
-###customizations with multiple targets (multCust)
-###customization name/target name mismatch (stereotypesCustNameMisMatch)
-###customization name/type name mismatch (elementCustNameMisMatch)
- newcust = 0
- bummer = 0
- bummerType =[]
-###get packages
- if not isinstance(modelPackage, Profile):
- profilePackage = VP.getProfilePackage(modelPackage)
- if not profilePackage:
- gl.log('***ERROR: The code is not being run on a Profile. Stopping Execution***')
- return
- else:
- profilePackage = modelPackage
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- if not infraPack:
- sterPack = filter(lambda element: isinstance(element, Package) and "_Stereotypes" in element.getName(), profilePackage.getOwnedElement())
- if sterPack: sterPack = sterPack[0]
- else: return['no stereotypes package']
- else: infraPack = infraPack[0]
- stereotypePackage = filter(lambda element: isinstance(element, Package) and "_Stereotypes" in element.getName(),infraPack.getOwnedElement())[0]
- customPackage = filter(lambda element: isinstance(element, Package) and element.getName() == "_Customizations", infraPack.getOwnedElement())[0]
- allElements = VP.getEverything(profilePackage)
-###Validation
- Customizations = filter(lambda element: StereotypesHelper.hasStereotype(element, "Customization"), allElements)
- Stereotypes = filter(lambda element: isinstance(element, Stereotype) and element.getOwner() == stereotypePackage, allElements)
- Stereotypes = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Dependency") not in StereotypesHelper.getBaseClasses(element), Stereotypes)
- Stereotypes = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Association") not in StereotypesHelper.getBaseClasses(element), Stereotypes)
- Stereotypes = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Property") not in StereotypesHelper.getBaseClasses(element), Stereotypes)
- Stereotypes = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Port") not in StereotypesHelper.getBaseClasses(element), Stereotypes)
- els = VP.getElements(allElements, profilePackage)
- custSter = StereotypesHelper.getStereotype(project, "Customization")
- custTypeNames =[]
- multCust =[]
- multTypes=[]
- custTargsName=[]
- custNames=[]
- custTypes=[]
- cignore=[]
- noCustTargs=[]
- noType=[]
- for c in Customizations:
- if "part property" in c.getName() or "port" in c.getName():
- mem.removeElement(c)
- else:
- custNames.append(c.getName())
- custTarg = StereotypesHelper.getStereotypePropertyValue(c, custSter, "customizationTarget")
- if len(custTarg)>0:
- if len(custTarg)>1:multCust.append(c)
- custTargsName.append(StereotypesHelper.getStereotypePropertyValue(c, custSter, "customizationTarget")[0].getName())
- else:
- cignore.append(c)
- noCustTargs.append(c)
- gl.log('[ERROR] No customization target = ' +c.getName())
- custType = StereotypesHelper.getStereotypePropertyValue(c, custSter, "superTypes")
- if len(custType)>0:
- if len(custType)>1:multTypes.append(c)
- custTypes.extend(StereotypesHelper.getStereotypePropertyValue(c, custSter, "superTypes"))
- custTypeNames.append(StereotypesHelper.getStereotypePropertyValue(c, custSter, "superTypes")[0].getName())
- else:
- noType.append(c)
- gl.log('[ERROR] No customization type = ' + c. getName())
- stereotypesNoCustomizations = filter(lambda element: element.getName() not in custTargsName, Stereotypes)
- stereotypesNoCustomizations = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Association") not in StereotypesHelper.getBaseClasses(element), stereotypesNoCustomizations)
- stereotypesCustNameMisMatch = filter(lambda element: element.getName() not in custNames, Stereotypes)
- stereotypesCustNameMisMatch = filter(lambda element: element not in stereotypesNoCustomizations, stereotypesCustNameMisMatch)
- elementCustNameMisMatch = filter(lambda element: element.getName() not in custNames, custTypes)
-###Fixes
- if validateOnly!=True:
-###stereotypes with no customizations->Fix: create customization, assign target, superType(if possible), and hide metatype
- multName=[]
- for s in stereotypesNoCustomizations:
- if s.getName() not in custNames:
- gl.log('[FIX]: created customization: '+ s.getName())
- newCust = VP.createCustomization(s.getName(), customPackage)
- newcust+=1
-######assign customization tags
- sMeta = StereotypesHelper.getBaseClasses(s)
- if len(sMeta)>1:
- gl.log('\t [FIX ERROR]: stereotype has multiple metaclasses. No customization tags assigned. Modeler must rectify.')
- bummer+=1
- else:
- sMC = StereotypesHelper.getClassOfMetaClass(sMeta[0])
- sMCer = Classifier.isAssignableFrom(sMC)
- if sMCer == True:
- base = filter(lambda element: element.getName() == s.getName(), els)
- if len(base)>0: base = base[0]
- else:
- base = False
- bummerType.append(newCust)
- VP.assignCustomizationTags(s, newCust, base)
- else:
- bummerType.append(newCust)
- VP.assignCustomizationTags(s, newCust, False)
- else:
- gl.log('[FIX ERROR]: Unable to create customization for stereotype '+ s.getName() + '. Customization already exists with that name')
- multName.append(s)
-###stereotype-customization name mismatch->Fix: change name of customization to match name of stereotype if supertype name doesn't match as well. else keep flagged
- fixSterCustMis=[]
- for s in stereotypesCustNameMisMatch:
- sterCust = filter(lambda element: s in StereotypesHelper.getStereotypePropertyValue(element, custSter, "customizationTarget"), Customizations)
- cusType = StereotypesHelper.getStereotypePropertyValue(sterCust[0], custSter, "superTypes")
- if custType:
- if sterCust[0].getName() != custType[0].getName():
- sterCust[0].setName(s.getName())
- gl.log('[FIX]:Changed name of customization to match name of customizationTarget: ' + sterCust[0].getName())
- else:
- gl.log('[FIX ERROR]: Unable to change name of customization to match name of customizationTarget since customization name matches superType name: ' + sterCust[0].getName())
- fixSterCustMis.append(sterCust[0])
-###element-customization name mismatch->Fix: change name of customization to match name of element
- fixElCustMis=[]
- for e in elementCustNameMisMatch:
- eCust = filter(lambda element: e in StereotypesHelper.getStereotypePropertyValue(element, custSter, "superTypes"), Customizations)
- eTarg = StereotypesHelper.getStereotypePropertyValue(eCust[0], custSter, "customizationTarget")
- if eTarg:
- if eCust[0].getName() != eTarg[0].getName():
- eCust[0].setName(e.getName())
- gl.log('[FIX]: Changed name of customization to match name of superType: '+ eCust[0].getName())
- else:
- gl.log('[FIX ERROR]: Unable to change name of customization to match name of superType since customization name matches customization target name: ' + eCust[0].getName())
- fixElCustMis.append(eCust[0])
-###multiple customization targets->Fix: if a target matches name of customization, delete all others. Else delete them all & flag customization
- fixNoCustTarg=[]
- for c in multCust:
- cTargs= StereotypesHelper.getStereotypePropertyValue(c, custSter, "customizationTarget")
- targetSlot = StereotypesHelper.getSlot(c, custSter, "customizationTarget", False, False)
- for t in filter(lambda element: element.getName() != c.getName(), cTargs):
- StereotypesHelper.removeSlotValue(targetSlot, t)
- gl.log('[FIX]: Removing customizationTarget(s) with names not matching customization name: '+ c.getName())
- if len(StereotypesHelper.getStereotypePropertyValue(c, custSter, "customizationTarget"))==0:
- fixNoCustTarg.append(c)
- gl.log('[FIX ERROR]: Customization now has no target: '+ c.getName())
-###multiple customization types->Fix: if a type matches name of customization, delete all other. Else delete them all & flag customization
- fixNoCustType=[]
- for c in multTypes:
- cTypes = StereotypesHelper.getStereotypePropertyValue(c, custSter, "superTypes")
- typeSlot = StereotypesHelper.getSlot(c, custSter, "superTypes", False, False)
- for t in filter(lambda element: element.getName() != c.getName(), cTypes):
- StereotypesHelper.removeSlotValue(typeSlot, t)
- gl.log('[FIX]: Removing superType(s) with names not matching customization name: '+ c.getName())
- if len(StereotypesHelper.getStereotypePropertyValue(c, custSter, "superTypes"))==0:
- fixNoCustType.append(c)
- gl.log('[FIX ERROR]: Customization now has no superType: '+ c.getName())
-###no customization target->Fix: if a stereotype matches with same name and is not assigned to another customization, assign as target, else keep flagged
- fixNoTargsMult=[]
- fixNoTargs=[]
- for c in noCustTargs:
- custSters = filter(lambda element: element.getName() == c.getName(), Stereotypes)
- if custSters and c.getName() not in custTargsName:
- StereotypesHelper.setStereotypePropertyValue(c, custSter, "customizationTarget", custSters[0])
- gl.log('[FIX]: Setting customization target for '+ c.getName() +" to " + custSters[0].getName())
- elif custSters and c.getName() in custTargsName:
- fixNoTargsMult.append(c)
- gl.log('[FIX ERROR]: Another customization already has stereotype of same customization name as target. No target applied for '+ c.getName())
- else:
- fixNoTargs.append(c)
- gl.log('[FIX ERROR]: No stereotype exists with same name as customization. No target applied for ' + c.getName())
-###no customization type->Fix: if an element matches with same name and is not assigned to another customizaiton assign as type, else keep flagged
- fixNoTypeMult=[]
- fixNoType=[]
- for c in noType:
- custEl = filter(lambda element: element.getName() == c.getName(), els)
- if custEl and c.getName() not in custTypeNames:
- StereotypesHelper.setStereotypePropertyValue(c, custSter, "superTypes", custEl[0])
- gl.log('[FIX]: Setting customization superType for '+c.getName() +" to "+ custEl[0].getName())
- elif custEl and c.getName() in custTypeNames:
- fixNoTypeMult.append(c)
- gl.log('[FIX ERROR]: Another customization already has this element as its superType. No superType applied for ' + c.getName())
- else:
- fixNoType.append(c)
- gl.log('[FIX ERROR]: No base element exists with same name as customization. Not superType applied for '+ c.getName())
-###Message Logs
- gl.log('SUMMARY')
- if validateOnly != True:
- gl.log('Customizations created = ' + str(newcust))
- gl.log('Customization FIX ERRORS(Modeler must fix)(See Messages Log):')
- gl.log('\t No tags assigned. Stereotype has multiple metaclasses = '+str(bummer))
- gl.log('\t Customization not created. Customization with same name already exists = '+str(len(multName)))
- gl.log('\t Customization name not changed. Name already matches Type, wont change to match Target = '+str(len(fixSterCustMis)))
- gl.log('\t Customization name not changed. Name already matches Target, wont change to match Type = '+str(len(fixElCustMis)))
- gl.log('\t Customizations with no Target = '+str(len(fixNoCustTarg)))
- gl.log('\t Customizations with No Type = '+str(len(fixNoCustType)))
- gl.log('\t Customization Target not assigned. Another customization already exists with the given Target = '+str(len(fixNoTargsMult)))
- gl.log('\t Customization Target not assigned. No stereotype with matching name exists = '+str(len(fixNoTargs)))
- gl.log('\t Customization Type not assigned. Another customization already exists with the given Type = '+str(len(fixNoTypeMult)))
- gl.log('\t Customization Type not assigned. No element with matching name exists = '+str(len(fixNoType)))
-####
- return [stereotypesNoCustomizations, stereotypesCustNameMisMatch, multCust, noCustTargs, noType, multTypes, elementCustNameMisMatch]
-
-
-
-scriptOutput = '***Creation Complete***'
\ No newline at end of file
diff --git a/src/main/dist/DocGenUserScripts/FrameworkValidation/DeprecateStereotypes.py b/src/main/dist/DocGenUserScripts/FrameworkValidation/DeprecateStereotypes.py
deleted file mode 100644
index 75db0ee5c..000000000
--- a/src/main/dist/DocGenUserScripts/FrameworkValidation/DeprecateStereotypes.py
+++ /dev/null
@@ -1,157 +0,0 @@
-'''
-Created on Sep 20, 2011
-
-@author: efosse
-'''
-from java.lang import *
-from com.nomagic.magicdraw.uml.symbols import *
-from com.nomagic.magicdraw.core import Application
-from com.nomagic.uml2.ext.jmi.helpers import StereotypesHelper
-from com.nomagic.magicdraw.openapi.uml import SessionManager
-from com.nomagic.magicdraw.openapi.uml import ModelElementsManager
-from com.nomagic.magicdraw.ui.dialogs import *
-from com.nomagic.uml2.ext.magicdraw.mdprofiles import Stereotype, Profile
-from com.nomagic.uml2.ext.magicdraw.classes.mdkernel import *
-from com.nomagic.uml2.ext.magicdraw.classes.mddependencies import *
-from com.nomagic.uml2.ext.magicdraw.classes.mdinterfaces import *
-from com.nomagic.uml2.ext.magicdraw.actions.mdbasicactions import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdbasicactivities import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities import *
-from com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdinformationflows import *
-from com.nomagic.uml2.ext.magicdraw.compositestructures.mdports import *
-from com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdsimpletime import *
-
-import traceback
-
-import ProfileValidation as VP
-reload(VP)
-
-gl = Application.getInstance().getGUILog()
-project = Application.getInstance().getProject()
-ef = project.getElementsFactory()
-mem = ModelElementsManager.getInstance()
-sysmlProf=StereotypesHelper.getProfile(project,"SysML")
-sysmlSt=StereotypesHelper.getStereotypesByProfile(sysmlProf)
-
-
-
-
-def deprecateStereotypes(modelPackage, validateOnly):
- if not isinstance(modelPackage, Profile):
- profilePackage = VP.getProfilePackage(modelPackage)
- if not profilePackage:
- gl.log('***ERROR: The code is not being run on a Profile. Stopping Execution***')
- return
- else:
- profilePackage = modelPackage
- energon = filter(lambda element: isinstance(element, Package) and element.getName() == "_Energon", profilePackage.getOwnedElement())
-# if energon:
-# energon = energon[0]
-# energon = filter(lambda element: isinstance(element, Package) and element.getName() =="_Stereotypes", energon.getOwnedElement())[0]
-# else:
-# gl.log("INFORMATION: Energon Package not present.")
-# gl.log('**FIX: Deprecating Stereotypes')
- allElements = VP.getEverything(modelPackage)
- allCustomizations = filter(lambda element: StereotypesHelper.hasStereotype(element, "Customization"), allElements)
- unusedSterPack = filter(lambda element: isinstance(element, Package) and "_Deprecated Stereotypes" in element.getName(), profilePackage.getOwnedElement())
- if not unusedSterPack:
- underscore = filter(lambda element: isinstance(element, Package) and "_" == element.getName(), profilePackage.getOwnedElement())
- if underscore: unusedSterPack = filter(lambda element: isinstance(element, Package) and "_Deprecated Stereotypes" in element.getName(), underscore[0].getOwnedElement())[0]
- else: return['no deprecated package']
- else: unusedSterPack = unusedSterPack[0]
-
- '''find unused stereotypes'''
- baseClass = filter(lambda element: isinstance(element, NamedElement), allElements)
- baseClass = filter(lambda element:"_Stereotypes" not in element.getName() or "_Customizations" not in element.getName() or "_Deprecated Stereotypes" not in element.getName(), baseClass)
- baseClass = filter(lambda element: not StereotypesHelper.hasStereotype(element, "Customization"), baseClass)
- if profilePackage != modelPackage:
- baseClass.append(modelPackage)
- baseClass = VP.flatten(baseClass)
- properties = filter(lambda element: isinstance(element, Property) and element.getName() != "", baseClass)
- '''Validate Package Org: all stereotypes in one top level stereotypes package; all customizations in one top level customizations package.'''
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- stereotypeIpack =[]
- customIpack = []
- userScriptsIpack=[]
- if len(infraPack)!=0:
- infraPack = infraPack[0]
- stereotypeIpack = filter(lambda element: isinstance(element, Package) and "_Stereotypes" in element.getName(), infraPack.getOwnedElement())
- customIpack = filter(lambda element: isinstance(element, Package) and "_Customizations" in element.getName(), infraPack.getOwnedElement())
- userScriptsIpack = filter(lambda element: isinstance(element, Package) and "_UserScripts" in element.getName(), infraPack.getOwnedElement())
- stereotypePackage = filter(lambda element: isinstance(element, Package) and "_Stereotypes" in element.getName(), profilePackage.getOwnedElement())
- customPackage = filter(lambda element: isinstance(element, Package) and "_Customizations" in element.getName(), profilePackage.getOwnedElement())
- userScriptsPack = filter(lambda element: isinstance(element, Package) and "_UserScripts" in element.getName(), profilePackage.getOwnedElement())
- if not stereotypePackage:
- if len(stereotypeIpack)>0: stereotypePackage = stereotypeIpack[0]
- else:
- gl.log('======No Stereotype Package Exists for This Profile! All stereotypes are in the wrong place. Stopping Execution; Run Validate Location set to "fix"======')
- return ['no stereotype Package']
- else:
- stereotypePackage = stereotypePackage[0]
- if not customPackage:
- if len(customIpack)>0: customPackage = customIpack[0]
- elif len(customIpack)==0:
- gl.log('======No Customization Package Exists for This Profile! All customizations are in the wrong place. Stopping Execution; Run Validation Location set to "fix"======')
- return ['no customization Package']
- else:
- customPackage = customPackage[0]
- if not userScriptsPack:
- if len(userScriptsIpack)>0: userScriptsPack = userScriptsIpack[0]
- elif len(userScriptsIpack)==0: gl.log('=======Warning! No UserScripts Package Exists for this Profile.')
- appliedStereotypes = StereotypesHelper.getAllAssignedStereotypes(baseClass)
- unassignedStereotypes = filter(lambda element: element not in appliedStereotypes, filter(lambda element: isinstance(element, Stereotype), stereotypePackage.getOwnedElement()))
- if not userScriptsPack:
- unassignedStereotypes = filter(lambda element: element.getOwner() != userScriptsPack, unassignedStereotypes)
- for u in unassignedStereotypes:
- if validateOnly != True:
- gl.log('FIX: moving '+ u.getQualifiedName() + ' to deprecated stereotypes package')
- depr = u.getName().find("zz")
- if depr == -1:
- u.setName("zz"+u.getName())
- u.setOwner(unusedSterPack)
- gl.log("Number of stereotypes in profile not being applied in base class: " + str(len(unassignedStereotypes)))
- if validateOnly!= True:
- killCust(unusedSterPack, customPackage)
- gl.log('======Deprecate Stereotypes Summary')
- if not stereotypePackage:
- gl.log('*WARNING: No Stereotype Package Exists for This Profile! All stereotypes are in the wrong place*')
-
- if not customPackage:
- gl.log('*WARNING: No Customization Package Exists for This Profile! All stereotypes are in the wrong place*')
- gl.log("======Deprecation Summary=======")
- gl.log(str(len(unassignedStereotypes)) + ' stereotypes have no matching element. They were moved to unused stereotypes package, customizations deleted')
- gl.log("***Deprecation Complete***")
- return unassignedStereotypes
-
-def killCust(unusedSterPack, customPackage):
- for u in filter(lambda element: isinstance(element, Stereotype), unusedSterPack.getOwnedElement()):
- gl.log('removing generalizations and associations for: ' + u.getName())
- gens = filter(lambda element: isinstance(element, Generalization) or isinstance(element, Association), u.getOwnedElement())
- killGen(gens)
- deprCust = filter(lambda element: element.getName() == u.getName()[2:], filter(lambda element: isinstance(element, NamedElement),customPackage.getOwnedElement()))
- if deprCust:
- gl.log('remove customization for: ' + u.getName())
- mem.removeElement(deprCust[0])
- return
-
-def killGen(owned):
- for o in owned:
- mem.removeElement(o)
-
-
-
-def run(mode):
- if mode == 'b':
- selected = Application.getInstance().getMainFrame().getBrowser().getActiveTree().getSelectedNode().getUserObject()
- try:
- SessionManager.getInstance().createSession("syncProfile")
- deprecateStereotypes(selected)
- SessionManager.getInstance().closeSession()
- except:
- if SessionManager.getInstance().isSessionCreated():
- SessionManager.getInstance().cancelSession()
- exceptionType, exceptionValue, exceptionTraceback = sys.exc_info()
- gl.log("*** EXCEPTION:")
- messages=traceback.format_exception(exceptionType, exceptionValue, exceptionTraceback)
- for message in messages:
- gl.log(message)
\ No newline at end of file
diff --git a/src/main/dist/DocGenUserScripts/FrameworkValidation/Profile.py b/src/main/dist/DocGenUserScripts/FrameworkValidation/Profile.py
deleted file mode 100644
index 87e4304fc..000000000
--- a/src/main/dist/DocGenUserScripts/FrameworkValidation/Profile.py
+++ /dev/null
@@ -1,285 +0,0 @@
-'''
-Created on Sep 20, 2011
-
-@author: efosse
-'''
-from java.lang import *
-from com.nomagic.magicdraw.uml.symbols import *
-from com.nomagic.magicdraw.core import Application
-from com.nomagic.magicdraw.ui.dialogs import *
-from com.nomagic.uml2.ext.magicdraw.classes.mdkernel import *
-from com.nomagic.uml2.ext.magicdraw.classes.mddependencies import *
-from com.nomagic.uml2.ext.magicdraw.classes.mdinterfaces import *
-from com.nomagic.uml2.ext.magicdraw.actions.mdbasicactions import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdbasicactivities import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities import *
-from com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdinformationflows import *
-from com.nomagic.uml2.ext.magicdraw.compositestructures.mdports import *
-from com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdsimpletime import *
-from gov.nasa.jpl.mbee.mdk.validation import ValidationRule
-from gov.nasa.jpl.mbee.mdk.validation import ValidationSuite
-from gov.nasa.jpl.mbee.mdk.validation import ViolationSeverity
-
-from gov.nasa.jpl.mbee.mdk.docgen.docbook import DBParagraph
-
-import ProfileValidation as PV
-reload(PV)
-import CreateCustomizationsForStereotypes as CCS
-reload(CCS)
-import DeprecateStereotypes as DS
-reload(DS)
-
-gl = Application.getInstance().getGUILog()
-project = Application.getInstance().getProject()
-
-
-###Grab Inputs from User Script###
-si = {}
-options = ['validateLocation', 'stereotypesForClassifiers', 'stereotypesForProperties', 'stereotypesForOperations','stereotypesForPackages', 'stereotypesForDependencies', 'stereotypesForMisc', 'stereotypeMetaClassCheck','stereotypeSysMLGeneralizationCheck','localGeneralizations', 'customizations','deprecateStereotypes']
-for o in options: si[o]='ignore'
-
-if len(scriptInput['validationTarget'])>0:
- target = scriptInput['validationTarget'][0]
-elif len(scriptInput['DocGenTargets'])>0:
- target = scriptInput['DocGenTargets'][0]
-else:
- gl.log("**ERROR** No Target Provided!")
- output =[]
-if len(scriptInput['validateLocation'])>0:
- if scriptInput['validateLocation'][0].getName() =='validate': Location = PV.validateLocation(target, True, scriptInput['ignorePackage'])
- elif scriptInput['validateLocation'][0].getName() == 'fix': Location = PV.validateLocation(target, False, scriptInput['ignorePackage'])
- si['validateLocation']=scriptInput['validateLocation'][0].getName()
-if len(scriptInput['stereotypesForClassifiers'])>0:
- if scriptInput['stereotypesForClassifiers'][0].getName()=='validate': sterClass = PV.stereotypesForElements(target, True, Classifier, scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- elif scriptInput['stereotypesForClassifiers'][0].getName()=='fix': sterClass = PV.stereotypesForElements(target, False, Classifier, scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- si['stereotypesForClassifiers']=scriptInput['stereotypesForClassifiers'][0].getName()
-if len(scriptInput['stereotypesForProperties'])>0:
- if scriptInput['stereotypesForProperties'][0].getName()=='validate': sterProp = PV.stereotypesForElements(target, True, Property,scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- elif scriptInput['stereotypesForProperties'][0].getName()=='fix': sterProp = PV.stereotypesForElements(target, False, Property,scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- si['stereotypesForProperties']=scriptInput['stereotypesForProperties'][0].getName()
-if len(scriptInput['stereotypesForOperations'])>0:
- if scriptInput['stereotypesForOperations'][0].getName()=='validate': sterOp = PV.stereotypesForElements(target, True, Operation,scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- elif scriptInput['stereotypesForOperations'][0].getName()=='fix': sterOp= PV.stereotypesForElements(target, False, Operation,scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- si['stereotypesForOperations']=scriptInput['stereotypesForOperations'][0].getName()
-if len(scriptInput['stereotypesForPackages'])>0:
- if scriptInput['stereotypesForPackages'][0].getName()=='validate': sterPack = PV.stereotypesForElements(target, True, Package,scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- elif scriptInput['stereotypesForPackages'][0].getName()=='fix': sterPack = PV.stereotypesForElements(target, False, Package,scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- si['stereotypesForPackages']=scriptInput['stereotypesForPackages'][0].getName()
-if len(scriptInput['stereotypesForDependencies'])>0:
- if scriptInput['stereotypesForDependencies'][0].getName() =='validate': sterDep = PV.stereotypesForElements(target, True, Dependency, scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- elif scriptInput['stereotypesForDependencies'][0].getName() == 'fix': sterDep = PV.stereotypesForElements(target, False, Dependency, scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- si['stereotypesForDependencies']=scriptInput['stereotypesForDependencies'][0].getName()
-if len(scriptInput['stereotypesForMisc'])>0:
- if scriptInput['stereotypesForMisc'][0].getName()=='validate': sterM = PV.stereotypesForElements(target, True, 'Misc', scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- elif scriptInput['stereotypesForMisc'][0].getName()=='fix': sterM = PV.stereotypesForElements(target, False, 'Misc', scriptInput['ignoreStereotype'], scriptInput['ignorePackage'])
- si['stereotypesForMisc']=scriptInput['stereotypesForMisc'][0].getName()
-if len(scriptInput['deprecateStereotypes'])>0:
- if scriptInput['deprecateStereotypes'][0].getName() =='validate': depSter = DS.deprecateStereotypes(target, True)
- elif scriptInput['deprecateStereotypes'][0].getName()=='fix': depSter = DS.deprecateStereotypes(target, False)
- si['deprecateStereotypes']=scriptInput['deprecateStereotypes'][0].getName()
-if len(scriptInput['customizations'])>0:
- if scriptInput['customizations'][0].getName()=='validate': cust = CCS.createCustomizationsForStereotypes(target, True)
- elif scriptInput['customizations'][0].getName()=='fix': cust = CCS.createCustomizationsForStereotypes(target, False)
- si['customizations']=scriptInput['customizations'][0].getName()
-if len(scriptInput['stereotypeMetaClassCheck'])>0:
- if scriptInput['stereotypeMetaClassCheck'][0].getName()=='validate': meta = PV.metaclassCheck(target, True)
- elif scriptInput['stereotypeMetaClassCheck'][0].getName() == 'fix': meta = PV.metaclassCheck(target, False)
- si['stereotypeMetaClassCheck']=scriptInput['stereotypeMetaClassCheck'][0].getName()
-if len(scriptInput['stereotypeSysMLGeneralizationCheck'])>0:
- if scriptInput['stereotypeSysMLGeneralizationCheck'][0].getName()=='validate': gen = PV.stereotypeGenCheck(target, True)
- elif scriptInput['stereotypeSysMLGeneralizationCheck'][0].getName()=='fix': gen = PV.stereotypeGenCheck(target, False)
- si['stereotypeSysMLGeneralizationCheck']=scriptInput['stereotypeSysMLGeneralizationCheck'][0].getName()
-if len(scriptInput['localGeneralizations'])>0:
- if scriptInput['localGeneralizations'][0].getName()=='validate': localGen = PV.localGeneralizations(target, True, False, scriptInput['ignoreStereotype'])
- elif scriptInput['localGeneralizations'][0].getName()=='fix': localGen = PV.localGeneralizations(target, False, False, scriptInput['ignoreStereotype'])
- si['localGeneralizations']=scriptInput['localGeneralizations'][0].getName()
-
-#declare validation suite
-profvs = ValidationSuite("ProfileValidation")
-if si['validateLocation']!='ignore':
- #declare validationLocation rules
- sterLoc = ValidationRule("Stereotypes Location", "All stereotypes should be owned by a package with '_Stereotypes' in its name", ViolationSeverity.ERROR)
- profvs.addValidationRule(sterLoc)
- custLoc = ValidationRule("Customizations Location","All customizations should be owned by a package with '_Customizations' in its name", ViolationSeverity.ERROR)
- profvs.addValidationRule(custLoc)
- packExist = ValidationRule("Packages Exist", "A package named '_' should exist as a child of the profile and packages with '_Stereotypes' and '_Customizations' in their names should exist as children of '_' package", ViolationSeverity.ERROR)
- profvs.addValidationRule(packExist)
- profExist = ValidationRule("Executed on Profile", "The input to the viewpoint should be nested within a Profile", ViolationSeverity.ERROR)
- profvs.addValidationRule(profExist)
- depExist = ValidationRule("_Deprecated Stereotypes Package Exists", "A package with '_Deprecated Stereotypes' in its name exists and is owned by '_' Package", ViolationSeverity.WARNING)
- profvs.addValidationRule(depExist)
- ###collect validateLocation errors
- if len(Location)==1:
- if 'ignore' not in Location:
- if '_' in Location[0]: profExist.addViolation(target, "No '_' Package")
- if 'Profile' in Location[0]: packExist.addViolation(target, "Execution Stopped")
- elif len(Location)==3:
- if not isinstance(Location[0], Package):
- if 'wrong' not in Location[0][0]: packExist.addViolation(target, "No '_Stereotypes' Package")
- else: packExist.addViolation(target, "'_Stereotypes Package' not owned by '_' Package")
- if not isinstance(Location[1], Package):
- if 'wrong' not in Location[1][0]: packExist.addViolation(target, "No '_Customizations' Package")
- else: packExist.addViolation(target, "'_Customizations' Package not owned by '_' Package")
- if not isinstance(Location[2], Package):
- if 'wrong' not in Location[2][0]: depExist.addViolation(target, "No '_Deprecated Stereotypes' Package")
- else: depExist.addViolation(target, "'_Deprecated Stereotypes' Package not owned by '_' Package")
- else:
- if not Location[0]: packExist.addViolation(target, "No '_Stereotypes' Package")
- if not Location[1]: depExist.addViolation(target, "No '_Deprecated Stereotypes' Package")
- if not Location[2]: packExist.addViolation(target, "No '_Customizations' Package")
- for s in Location[3]: sterLoc.addViolation(s, "")
- for c in Location[4]: custLoc.addViolation(c, "")
-
-if si['stereotypesForClassifiers']!= 'ignore':
- noSterClass = ValidationRule("Classifier Stereotype Missing", "There is no stereotype name that matches classifier name", ViolationSeverity.ERROR)
- profvs.addValidationRule(noSterClass)
- wrongMetaClass=ValidationRule("Conflicting Classifier Metaclass", "Stereotype metaclass and element type does not match", ViolationSeverity.ERROR)
- profvs.addValidationRule(wrongMetaClass)
- applySterClass = ValidationRule("Stereotype Can Be Applied to a Classifier", "A stereotype exists with the same name as the classifier", ViolationSeverity.ERROR)
- profvs.addValidationRule(applySterClass)
- ###collect errors
- for s in sterClass[0]:noSterClass.addViolation(s, s.getName())
-# for c in sterClass[1]:wrongSter.addViolation(c, c.getName())
- for d in sterClass[2]:wrongMetaClass.addViolation(d, "Stereotype Metaclass")
- for e in sterClass[3]:applySterClass.addViolation(e, e.getName())
-if si['stereotypesForProperties']!='ignore':
- noSterProp = ValidationRule("Property Stereotype Missing", "There is no stereotype name that matches property name", ViolationSeverity.ERROR)
- profvs.addValidationRule(noSterProp)
- wrongMetaProp=ValidationRule("Conflicting Property Metaclass", "Stereotype metaclass and element type does not match", ViolationSeverity.ERROR)
- profvs.addValidationRule(wrongMetaProp)
- applySterProp = ValidationRule("Stereotype Can Be Applied to a Property", "A stereotype exists with the same name as the property", ViolationSeverity.ERROR)
- profvs.addValidationRule(applySterProp)
- ###collect errors
- for s in sterProp[0]:noSterProp.addViolation(s, "")
-# for c in sterClass[1]:wrongSter.addViolation(c, c.getName())
- for d in sterProp[2]:wrongMetaProp.addViolation(d, "Stereotype Metaclass")
- for e in sterProp[3]:applySterProp.addViolation(e, e.getName())
-if si['stereotypesForOperations']!='ignore':
- noSterOp = ValidationRule("Operation Stereotype Missing", "There is no stereotype name that matches operation name", ViolationSeverity.ERROR)
- profvs.addValidationRule(noSterOp)
- wrongMetaOp=ValidationRule("Conflicting Operation Metaclass", "Stereotype metaclass and element type does not match", ViolationSeverity.ERROR)
- profvs.addValidationRule(wrongMetaOp)
- applySterOp = ValidationRule("Stereotype Can Be Applied to a Operation", "A stereotype exists with the same name as the operation", ViolationSeverity.ERROR)
- profvs.addValidationRule(applySterOp)
- for s in sterOp[0]:noSterOp.addViolation(s, s.getName())
-# for c in sterClass[1]:wrongSter.addViolation(c, c.getName())
- for d in sterOp[2]:wrongMetaOp.addViolation(d, "Stereotype Metaclass")
- for e in sterOp[3]:applySterOp.addViolation(e, e.getName())
-if si['stereotypesForPackages']!='ignore':
- noSterPack = ValidationRule("Package Stereotype Missing", "There is no stereotype name that matches package name", ViolationSeverity.ERROR)
- profvs.addValidationRule(noSterPack)
- wrongMetaPack=ValidationRule("Conflicting Package Metaclass", "Stereotype metaclass and element type does not match", ViolationSeverity.ERROR)
- profvs.addValidationRule(wrongMetaPack)
- applySterPack = ValidationRule("Stereotype Can Be Applied to a Package", "A stereotype exists with the same name as the package", ViolationSeverity.ERROR)
- profvs.addValidationRule(applySterPack)
- for s in sterPack[0]:noSterPack.addViolation(s, s.getName())
-# for c in sterClass[1]:wrongSter.addViolation(c, c.getName())
- for d in sterPack[2]:wrongMetaPack.addViolation(d, "")
- for e in sterPack[3]:applySterPack.addViolation(e, e.getName())
-if si['stereotypesForDependencies']!='ignore':
- noSterDep = ValidationRule("Dependency Stereotype Missing", "There is no stereotype name that matches package name", ViolationSeverity.ERROR)
- profvs.addValidationRule(noSterDep)
- wrongMetaDep=ValidationRule("Conflicting Dependency Metaclass", "Stereotype metaclass and element type does not match", ViolationSeverity.ERROR)
- profvs.addValidationRule(wrongMetaDep)
- applySterDep = ValidationRule("Stereotype Can Be Applied to a Dependency", "A stereotype exists with the same name as the dependency", ViolationSeverity.ERROR)
- profvs.addValidationRule(applySterDep)
- for s in sterDep[0]:noSterDep.addViolation(s, s.getName())
-# for c in sterClass[1]:wrongSter.addViolation(c, c.getName())
- for d in sterDep[2]:wrongMetaDep.addViolation(d, "Stereotype Metaclass")
- for e in sterDep[3]:applySterDep.addViolation(e, e.getName())
-if si['stereotypesForMisc']!='ignore':
- noSterMisc = ValidationRule("Misc Stereotype Missing", "There is no stereotype name that matches element name", ViolationSeverity.ERROR)
- profvs.addValidationRule(noSterMisc)
- wrongMetaMisc=ValidationRule("Conflicting Misc Metaclass", "Stereotype metaclass and element type does not match", ViolationSeverity.ERROR)
- profvs.addValidationRule(wrongMetaMisc)
- applySterMisc = ValidationRule("Stereotype Can Be Applied to a Misc", "A stereotype exists with the same name as the dependency", ViolationSeverity.ERROR)
- profvs.addValidationRule(applySterMisc)
- for s in sterM[0]:noSterMisc.addViolation(s, s.getName())
-# for c in sterClass[1]:wrongSter.addViolation(c, c.getName())
- for d in sterM[2]:wrongMetaMisc.addViolation(d, "Stereotype Metaclass")
- for e in sterM[3]:applySterMisc.addViolation(e, e.getName())
-
-if si['stereotypeMetaClassCheck']!='ignore':
-###declare rules for stereotype meta class check
- multMeta = ValidationRule("Stereotype has multiple metaclasses", "The stereotype has multiple metaclasses assigned", ViolationSeverity.WARNING)
- profvs.addValidationRule(multMeta)
-###collect errors
- for m in meta: multMeta.addViolation(m,"")
-
-if si['stereotypeSysMLGeneralizationCheck']!='ignore':
-###declare rules for stereotype sysml generalization check
- sysmlGen = ValidationRule("SysML Generalization", "The stereotype should generalize a SysML stereotype", ViolationSeverity.ERROR)
- nonSysmlGen = ValidationRule('Non SysML Generalization', 'The stereotype has generalizations to profiles besides SysML', ViolationSeverity.WARNING)
- profvs.addValidationRule(sysmlGen)
- profvs.addValidationRule(nonSysmlGen)
-###collect errors
- for n in gen[0]: nonSysmlGen.addViolation(n, "")
- for g in gen[1]: sysmlGen.addViolation(g, "")
-
-if si['localGeneralizations']!='ignore':
-###declare rules for local generalizations check
- sterNoMatch = ValidationRule("Stereotypes Generalization", "A stereotype generalization exists that is not reflected in the model", ViolationSeverity.ERROR)
- baseNoMatch = ValidationRule("Model Generalization", "A local generalization exists in the model that is not reflected in the stereotypes", ViolationSeverity.ERROR)
- profvs.addValidationRule(sterNoMatch)
- profvs.addValidationRule(baseNoMatch)
-###collect errors
- for lg in localGen[0]:
- if lg.getGeneral() is not None and lg.getSpecific() is not None: sterNoMatch.addViolation(lg.getGeneral(), "Generalization from "+ lg.getGeneral().getName() + " to "+ lg.getSpecific().getName())
- else: sterNoMatch.addViolation(lg.getGeneral(), "")
- for lgs in localGen[1]: baseNoMatch.addViolation(lgs.getGeneral(), "Generalization from "+ lgs.getGeneral().getName()+ " to "+ lgs.getSpecific().getName())
-
-if si['customizations']!= 'ignore':
-###declare rules for customizations
-###add in:
- noCust = ValidationRule("Stereotypes With No Customizations", "A stereotype exists without a corresponding customization", ViolationSeverity.ERROR)
- nameMismatch = ValidationRule("Stereotype-Customization Name Mismatch", "The customization name does not match the name of the customization target", ViolationSeverity.ERROR)
- multCust = ValidationRule("Multiple Customization Targets", "Multiple customization targets exist for the customization", ViolationSeverity.ERROR)
- noCustTargs = ValidationRule("No Customization Target", "Customization does not have a target", ViolationSeverity.ERROR)
- noType = ValidationRule("No Customization Type", "Customization does not have a type", ViolationSeverity.ERROR)
- multTypes = ValidationRule("Multiple Customization superTypes", "Multiple customization superTypes exist for the customizations", ViolationSeverity.ERROR)
- elNameMisMatch = ValidationRule("Element-Customization Name Mismatch", "The customization name does not match the name of the customization supertype", ViolationSeverity.ERROR)
- profvs.addValidationRule(noCust)
- profvs.addValidationRule(nameMismatch)
- profvs.addValidationRule(multCust)
- profvs.addValidationRule(noCustTargs)
- profvs.addValidationRule(noType)
- profvs.addValidationRule(multTypes)
- profvs.addValidationRule(elNameMisMatch)
-###collect errors
- for nc in cust[0]: noCust.addViolation(nc, "Stereotype")
- for nm in cust[1]: nameMismatch.addViolation(nm, "Stereotype")
- for mc in cust[2]: multCust.addViolation(mc, "Stereotype")
- for nt in cust[3]: noCustTargs.addViolation(nt, "Customization")
- for nty in cust[4]: noType.addViolation(nty, "Customization")
- for mt in cust[5]: multTypes.addViolation(mt, "Customization")
- for e in cust[6]: elNameMisMatch.addViolation(e, "Element Name")
-if si['deprecateStereotypes']!='ignore':
-###declare rules
- unused = ValidationRule("Unused Stereotypes", "A stereotype is not applied in the model and can be deprecated", ViolationSeverity.ERROR)
- profvs.addValidationRule(unused)
-###collect errors
- gl.log(str(depSter))
- for d in depSter:
- gl.log(str(d))
- unused.addViolation(d, "")
-
-scriptOutput = {"DocGenValidationOutput":[profvs]}
-if len(scriptInput['reportKind'])>0:
- if scriptInput['reportKind'][0].getName()=='log':
- profvs.setShowDetail(True)
- profvs.setShowSummary(False)
- else:
- profvs.setShowSummary(True)
- profvs.setShowDetail(False)
-else:
- profvs.setShowSummary(True)
- profvs.setShowDetail(False)
-
-###Collect Fix Onlys
-fixOutput = []
-for f in si:
- if si[f] == 'fix': fixOutput.append(DBParagraph(f))
-gl.log('[FINISHED]')
-scriptOutput["DocGenOutput"]=[DBParagraph("Profile Validation ")]
-
-
\ No newline at end of file
diff --git a/src/main/dist/DocGenUserScripts/FrameworkValidation/ProfileValidation.py b/src/main/dist/DocGenUserScripts/FrameworkValidation/ProfileValidation.py
deleted file mode 100644
index 285986d4c..000000000
--- a/src/main/dist/DocGenUserScripts/FrameworkValidation/ProfileValidation.py
+++ /dev/null
@@ -1,771 +0,0 @@
-'''
-Created on Sep 20, 2011
-
-@author: efosse
-'''
-from java.lang import *
-from com.nomagic.magicdraw.uml.symbols import *
-from com.nomagic.magicdraw.core import Application
-from com.nomagic.uml2.ext.jmi.helpers import StereotypesHelper
-from com.nomagic.magicdraw.openapi.uml import ModelElementsManager
-from com.nomagic.magicdraw.ui.dialogs import *
-from com.nomagic.uml2.ext.magicdraw.mdprofiles import Stereotype, Profile, Image
-from com.nomagic.uml2.ext.magicdraw.classes.mdkernel import *
-from com.nomagic.uml2.ext.magicdraw.classes.mddependencies import *
-from com.nomagic.uml2.ext.magicdraw.classes.mdinterfaces import *
-from com.nomagic.uml2.ext.magicdraw.actions.mdbasicactions import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdbasicactivities import *
-from com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities import *
-from com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdinformationflows import *
-from com.nomagic.uml2.ext.magicdraw.compositestructures.mdports import *
-from com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdsimpletime import *
-from com.nomagic.uml2.ext.magicdraw.interactions.mdbasicinteractions import Interaction
-from com.nomagic.uml2.ext.magicdraw.classes.mdpowertypes import GeneralizationSet
-from com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdcommunications import Reception, Signal
-from com.nomagic.uml2.ext.magicdraw.activities.mdfundamentalactivities import Activity
-from com.nomagic.uml2.ext.jmi.helpers import CoreHelper
-
-gl = Application.getInstance().getGUILog()
-project = Application.getInstance().getProject()
-ef = project.getElementsFactory()
-mem = ModelElementsManager.getInstance()
-sysmlProf=StereotypesHelper.getProfile(project,"SysML")
-sysmlSt=StereotypesHelper.getStereotypesByProfile(sysmlProf)
-datapack=project.getModel()
-noApply = {}
-
-def validateLocation(modelPackage, validateOnly, ignorePack):
- sterPlace =[]
- custPlace =[]
- if validateOnly!=True: gl.log('[FIXES]: for Package, Stereotypes, and Customization Locations')
-###Find profile package
- profilePackage = profilePackCheck(modelPackage)
- if not profilePackage: return ['No Profile Package']
-###Find infrastructure package
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- if len(infraPack)>0: infraPack = infraPack[0]
- elif validateOnly != True:
- infraPack = ef.createPackageInstance()
- infraPack.setOwner(profilePackage)
- infraPack.setName("_")
- gl.log('[FIX]: Created "_" package')
- else: return['No "_" Package']
-###Collect other packages
- stereotypePackage = packageCheck(profilePackage, infraPack, validateOnly, "_Stereotypes")
- depSterPack = packageCheck(profilePackage, infraPack, validateOnly, "_Deprecated Stereotypes")
- userscriptsPack = packageCheck(profilePackage, infraPack, validateOnly, "_UserScripts")
- customPackage = packageCheck(profilePackage, infraPack, validateOnly, "_Customizations")
- if not isinstance(stereotypePackage, Package) or not isinstance(customPackage, Package): return[stereotypePackage, customPackage, depSterPack]
-###Find locations of all stereotypes and customizations
- allStereotypes = filter(lambda element: isinstance(element, Stereotype), getEverything(profilePackage))
- allCustomizations = filter(lambda element: isinstance(element, Class) and StereotypesHelper.hasStereotype(element, StereotypesHelper.getStereotype(project, "Customization")), getEverything(profilePackage))
- sterPlace = filter(lambda element: element.getOwner() != stereotypePackage, allStereotypes)
- sterPlace = filter(lambda element: element.getOwner()!=depSterPack, sterPlace)
- sterPlace = filter(lambda element: element.getOwner() != userscriptsPack, sterPlace)
- for p in ignorePack:
- sterPlace = filter(lambda element: element.getOwner() != p, sterPlace)
- userscriptPlace = filter(lambda element: element.getOwner()!= userscriptsPack and element.getName().find("opsrev")==0, allStereotypes)
- custPlace = filter(lambda element: element.getOwner()!=customPackage, allCustomizations)
-###Move locations appropriately if set to fix
- if validateOnly!=True:
- setSterOwner(sterPlace, stereotypePackage, depSterPack, userscriptsPack)
- setSterOwner(userscriptPlace, stereotypePackage, depSterPack, userscriptsPack)
- setSterOwner(custPlace, customPackage, 'cust', 'beh')
-###Check for icons
- sters = filter(lambda element: element.getOwner() != userscriptsPack, allStereotypes)
- sters = filter(lambda element: 'port' not in element.getName(), sters)
- sters = filter(lambda element: GeneralizationSet not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Dependency not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Association not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Package not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Operation not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Interface not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Enumeration not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Activity not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Signal not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- sters = filter(lambda element: Reception not in StereotypesHelper.getBaseClassesAsClasses(element), sters)
- for s in sters:
- icon = filter(lambda element: isinstance(element, Image), s.getOwnedElement())
- if not icon:
- gl.log('No icon for stereotype: ' + s.getName())
- return [stereotypePackage, depSterPack, customPackage, sterPlace, custPlace]
-
-def setSterOwner(ster, usedPackage, unusedPackage, userscriptsPackage):
-###set stereotype owner (either stereotype or deprecated stereotypes package
- for s in ster:
- gl.log('[FIX]: Moved ' + s.getName())
- if s.getName().find("zz")==-1 and s.getName().find("opsrev")==-1:
- if isinstance(usedPackage, array): usedPackage=usedPackage[0]
- s.setOwner(usedPackage)
- elif s.getName().find("opsrev")==0:
- if isinstance(userscriptsPackage, array): userscripts = userscripts[0]
- s.setOwner(userscriptsPackage)
- elif unusedPackage!= 'cust':
- if isinstance(unusedPackage, array): unusedPackage=unusedPackage[0]
- s.setOwner(unusedPackage)
- return
-
-def stereotypeGenCheck(modelPackage, validateOnly):
-###Packages
- profilePackage = profilePackCheck(modelPackage)
- if not profilePackage: return ['No Profile Package']
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- if len(infraPack)>0: infraPack = infraPack[0]
- else: return['No underscore Package']
- stereotypePackage = packageCheck(profilePackage, infraPack, validateOnly, "_Stereotypes")
- if not stereotypePackage: return['No Stereotype Package']
- stereotypes =filter(lambda element: isinstance(element, Stereotype), stereotypePackage.getOwnedElement())
- badG = []
- badGs=[]
- noSys = []
- sBad = []
-
- for s in stereotypes:
- sGenerals = filter(lambda element: isinstance(element, Generalization), s.getOwnedElement())
- sGeneral =[]
- for sg in sGenerals:
- sGeneral.extend(s.getGeneral())
- sSysML = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) == StereotypesHelper.getProfile(project, "SysML"), sGeneral)
- sAdd = filter(lambda element: StereotypesHelper.getProfileForStereotype(element)==StereotypesHelper.getProfile(project, "additional_stereotypes"), sGeneral)
-# if StereotypesHelper.getProfileForStereotype(sGeneral) in ignoreProfile:
-# sSyMLInh = filter(lambda element: StereotypesHelper.getProfileForStereotype(element)==StereotypesHelper.getProfile(project, "SysML"), SR.getGeneralizationTree(sg))
-###Collect stereotypes with no sysml generalization
- if len(sSysML)==0 and len(sAdd)==0: noSys.append(s)
-###Collect stereotypes with generalizations to non sysml elements and not part of ignore profiles
- sBad = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) != StereotypesHelper.getProfile(project, "SysML"), sGeneral)
- sBad = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) != StereotypesHelper.getProfile(project, "additional_stereotypes"), sBad)
- sBad = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) != profilePackage, sBad)
- sBad = filter(lambda element: element.getOwner() != stereotypePackage, sBad)
-# for i in ignoreProfile:
-# sBad = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) != StereotypesHelper.getProfile(project, i.getName()), sBad)
- sBad = filter(lambda element: element not in stereotypes, sBad)
- for n in sBad:
- badG.append(filter(lambda element: isinstance(element, Generalization) and element.getGeneral() == n and element.getSpecific() == s, s.get_directedRelationshipOfSource()))
- badG = flatten(badG)
- if validateOnly!=True:
- for b in badG:
- gl.log('[FIX]: removing generalization between '+ b.getGeneral().getName() + ' and '+ b.getSpecific().getName())
- mem.removeElement(b)
-###refine stereotypes with no sysml generalization collection
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Package") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Dependency") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project,"Connector") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Operation") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Diagram") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Port") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Activity") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "DataType") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "GeneralizationSet") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Association") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Reception") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Interaction") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Interface") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Enumeration") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Constraint") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "Signal") not in StereotypesHelper.getBaseClasses(element), noSys)
- noSys = filter(lambda element: StereotypesHelper.getMetaClassByName(project, "SignalEvent") not in StereotypesHelper.getBaseClasses(element), noSys)
- if validateOnly != True: gl.log('['+ str(len(noSys))+'] possible SysML specializations. No codified fix for stereotypes that can specialize SysML. Modeler must do. ')
- return [sBad, noSys]
-
-def flatten(x):
- result = []
- for el in x:
- if hasattr(el, "__iter__") and not isinstance(el, basestring): result.extend(flatten(el))
- else: result.append(el)
- return result
-
-def metaclassCheck(modelPackage, validateOnly):
-###get stereotype package
- if not isinstance(modelPackage, Profile):
- profilePackage = getProfilePackage(modelPackage)
- if not profilePackage:
- gl.log('****ERROR: The code is not being run on a Profile. Stopping Execution')
- return
- else: profilePackage = modelPackage
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- if len(infraPack)>0: infraPack = infraPack[0]
- else: return['No underscore Package']
- stereotypePackage = filter(lambda element: isinstance(element, Package) and "_Stereotypes" in element.getName(), infraPack.getOwnedElement())
- if len(stereotypePackage)==0:
- gl.log('****ERROR: There is no package named "_Stereotypes" that is a direct child of the Profile. Stopping Execution')
- return ['no stereotype Package']
- else: stereotypePackage = stereotypePackage[0]
- sMMeta=[]
-####Collect stereotypes with >1 metaclasses
- for s in stereotypePackage.getOwnedElement():
- if isinstance(s, Stereotype):
- sMeta = StereotypesHelper.getBaseClasses(s)
- if len(sMeta)>1:
- sMMeta.append(s)
- if validateOnly!= True:
- gl.log('There is no codified fix for this problem. Modeler must rectify')
- return sMMeta
-
-def profilePackCheck(modelPackage):
- if not isinstance(modelPackage, Profile):
- profilePackage = profilePackCheck(modelPackage.getOwner())
- if not profilePackage:
- gl.log('[ERROR]: The code is not being run on a Profile. Stopping Execution')
- return
- else:
- profilePackage = modelPackage
- return profilePackage
-
-
-def packageCheck(profilePackage, infraPack, validateOnly, pName):
- package = filter(lambda element: isinstance(element, Package) and pName in element.getName(), profilePackage.getOwnedElement())
- packageI = filter(lambda element: isinstance(element, Package) and pName in element.getName(), infraPack.getOwnedElement())
- if len(package)==0 and len(packageI)==0:
- if validateOnly != True:
- package=ef.createPackageInstance()
- package.setOwner(infraPack)
- package.setName(pName)
- gl.log('[FIX]: created ' + pName +' Package')
- else:
- return ['No package found']
- elif len(package)>0:
- if validateOnly!=True:
- package[0].setOwner(infraPack)
- package = package[0]
- else:
- return ['Package in wrong place']
- else: package=packageI[0]
- return package
-
-def stereotypesForElements(modelPackage, validateOnly, elementType, stereotypesIgnore, packagesIgnore):
- if not stereotypesIgnore:
- stereotypesIgnore=[]
- profilePackage = profilePackCheck(modelPackage)
- if not profilePackage: return ['no Profile Package', 'no Profile Package', 'no Profile Package', 'no Profile Package']
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- if len(infraPack)>0: infraPack = infraPack[0]
- else: return['no underscore pacakage, no underscore pacakage,no underscore pacakage,no underscore pacakage']
- stereotypePackage=packageCheck(profilePackage, infraPack, validateOnly, "_Stereotypes")
- if not stereotypePackage: return ['no Stereotype Package', 'no Stereotype Package', 'no Stereotype Package', 'no Stereotype Package']
- baseClass = getElements(getEverything(modelPackage), profilePackage)
- baseClass = filter(lambda element: "_" not in element.getName(), baseClass)
- if not isinstance(modelPackage, Profile): baseClass.append(modelPackage)
-###intialize counts
- sterCreate = 0
- nameChange = 0
- unapply = 0
- apply = 0
-###
- if elementType != 'Misc':
- baseClass = filter(lambda element: isinstance(element, elementType), baseClass)
- for s in stereotypesIgnore: baseClass = filter(lambda element: StereotypesHelper.hasStereotypeOrDerived(element, s) == False, baseClass)
- ignoredPackEls = []
- for i in packagesIgnore: baseClass = filter(lambda element: element not in getEverything(i), baseClass)
- result = getMissing(baseClass, filter(lambda element: isinstance(element, NamedElement),stereotypePackage.getOwnedElement()))
- bNoSter = result[0]
- bWrongSter = result[1]
- bWrongMeta = result[2]
- applySter = []
- for n in noApply:
- if n not in bWrongSter and n not in bWrongMeta and n in baseClass: applySter.append(n)
- if validateOnly!=True:
- ('[FIXING]:' + str(elementType))
- successful = []
- bWS = []
- bWM=[]
- noFix=[]
- for b in bNoSter:
- bStillMissing = getMissing([b], filter(lambda element: isinstance(element, NamedElement), stereotypePackage.getOwnedElement()))
- bWS = bStillMissing[1]
- bWM = bStillMissing[2]
- if bStillMissing[0]:
- ###check if any local stereotype is applied
- bLocalSter = filter(lambda element: element.getOwner() == stereotypePackage, StereotypesHelper.getStereotypes(b))
- if len(bLocalSter)>0:
- for bL in bLocalSter:
- localSterApply = filter(lambda element: bL in StereotypesHelper.getStereotypes(element), getElements(getEverything(profilePackage), profilePackage))
- if len(localSterApply)==1:
- ###if local stereotype is applied to only this element in the base class then change the name of stereotype. Otherwise create new ster and unapply this one.
- bL.setName(propertyCheck(b))
- gl.log('[FIX]:Stereotype name was changed to match applied element name: ' + b.getQualifiedName())
- nameChange+=1
- elif filter(lambda element: propertyCheck(element) == bL.getName(), getElements(getEverything(profilePackage), profilePackage)):
- createStereotype(stereotypePackage, b, stereotypePackage)
- unapplyStereotypes([b])
- gl.log('[FIX]:Stereotype Created ' +b.getName())
- gl.log('\t\t Location = ' + b.getQualifiedName())
- sterCreate+=1
- else:
- ###get sysml extension, unapply stereotype and apply sysml extension
- bLgeneralizations = getGeneralizationTree(bL)
- bLSysGen = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) == StereotypesHelper.getProfile(project, "SysML") or StereotypesHelper.getProfileForStereotype(element) == StereotypesHelper.getProfile(project, "additional_stereotypes"), bLgeneralizations)
- unapplyStereotypes([b])
- if bLSysGen:
- StereotypesHelper.addStereotype(b, bLSysGen[0])
- gl.log('[FIX]:Stereotype applied to multiple elements, none with matching name. Unapplied stereotype:' + bL.getName())
- unapply+=1
- createStereotype(stereotypePackage, b, stereotypePackage)
- unapplyStereotypes([b])
- gl.log('[FIX]:Stereotype Created ' +b.getName())
- gl.log('\t\t Location = ' + b.getQualifiedName())
- sterCreate+=1
- else:
- createStereotype(stereotypePackage, b, stereotypePackage)
- unapplyStereotypes([b])
- gl.log('[FIX]:Stereotype Created ' +b.getName())
- gl.log('\t\t Location = ' + b.getQualifiedName())
- sterCreate+=1
- for b in bWS:
- if not isinstance(b, Interface) and StereotypesHelper.getBaseClassAsClasses(b)[0] == Port:
- if b.getName().find("part property")==0:
- bPort = filter(lambda element: element.getName() == b.getName() + " port", filter(lambda element: isinstance(element, NamedElement), stereotypePackage.getOwnedElement()))
- if len(bPort)!=0:
- bApplied = filter(lambda element: StereotypesHelper.isElementStereotypedBy(element, b.getName())==True, baseClass)
- for f in bApplied:
- StereotypesHelper.removeStereotypes(f, [b])
- StereotypesHelper.addStereotype(f, bPort)
- ###Apply applicable stereotypes
- for b in noApply:
- if b not in bWrongSter and b not in bWrongMeta and b not in bWS and b not in bWM and b in baseClass:
- if StereotypesHelper.getBaseClasses(noApply[b])[0].getName() != 'Element':
- StereotypesHelper.addStereotype(b, noApply[b])
- unapplyStereotypes([b])
- gl.log('[FIX]: Stereotype Applied ' + b.getName())
- gl.log('\t\t Location = '+b.getQualifiedName())
- apply+=1
- if len(bWrongSter)>0: gl.log('[UNFIXABLE]: Inheritance Mismatch (see validation log for details)')
- for b in bWrongMeta:
- gl.log('[UNFIXABLE]: Metaclass Mismatch: '+ b.getQualifiedName())
-# if elementType == Classifier and validateOnly!=True: localGeneralizations(modelPackage, validateOnly, True)
-###Messages Log
- if apply!=0 or sterCreate!=0 or nameChange !=0 or unapply!=0:
- gl.log('[FIX SUMMARY]:')
- gl.log(str(apply) + " existing stereotype(s) applied")
- gl.log(str(sterCreate) + " stereotypes created")
- gl.log(str(nameChange) + " stereotype names changed")
- gl.log(str(unapply) + " stereotypes unapplied")
- else: gl.log('No Fixes Needed')
- if len(bWrongSter)!=0 or bWrongMeta!=0:
- gl.log('[UNFIXABLE SUMMARY]:')
- if len(bWrongSter)>0: gl.log(str(len(bWrongSter))+ " stereotype inheritance mismatch")
- if len(bWrongMeta)>0: gl.log(str(len(bWrongMeta))+ " stereotype metaclasses and element types not matching")
- else: gl.log('No modeler fixes needed')
-################
- return [bNoSter, bWrongSter, bWrongMeta, applySter]
- else:
- baseClass = filter(lambda element: not isinstance(element, Class), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Package), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Property), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Operation), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Diagram), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Dependency), baseClass)
- for s in stereotypesIgnore: baseClass = filter(lambda element: StereotypesHelper.hasStereotypeOrDerived(element, s) == False, baseClass)
- ignoredPackEls = []
- for i in packagesIgnore: baseClass = filter(lambda element: element not in getEverything(i), baseClass)
- resultMisc = getMissing(baseClass, stereotypePackage.getOwnedElement())
- mNoSter = resultMisc[0]
- mWrongSter = resultMisc[1]
- mWrongMeta = resultMisc[2]
- applySter = []
- for n in noApply:
- if n not in mWrongSter and n not in mWrongMeta and n in baseClass: applySter.append(n)
- if validateOnly!=True:
- gl.log('[FIX]:' + str(elementType))
- successful = []
- for b in mNoSter:
- mStillMissing = getMissing([b], stereotypePackage.getOwnedElement())
- if mStillMissing[0]:
- createStereotype(stereotypePackage, b, stereotypePackage)
- unapplyStereotypes([b])
- gl.log('\t Stereotype Created ' +b.getName())
- gl.log('\t\t Location = ' + b.getQualifiedName())
- for b in noApply:
- if b not in mWrongSter and b not in mWrongMeta and n in baseClass:
- StereotypesHelper.addStereotype(b, noApply[b])
- unapplyStereotypes([b])
- gl.log('\t Stereotype Applied ' + b.getName())
- gl.log('\t\t Location = '+b.getQualifiedName())
- if len(mWrongSter)>0: gl.log('UNFIXABLE: Inheritance Mismatch (see validation log for details)')
- if len(mWrongMeta)>0: gl.log('UNFIXABLE: Metaclass Mismatch (see validation log for details)')
- return [mNoSter, mWrongSter, mWrongMeta, applySter]
-
-def localGeneralizations(modelPackage, validateOnly, createOnly, sterIgnore):
-###Finds generalizations that exist in the base class and checks to see if they exist in the stereotypes.
- badGen = 0
- warn = 0
- error = 0
- profilePackage = profilePackCheck(modelPackage)
- if not profilePackage: return ['no Profile Package', 'no Profile Package', 'no Profile Package', 'no Profile Package']
- infraPack = filter(lambda element: isinstance(element, Package) and "_"==element.getName(), profilePackage.getOwnedElement())
- if len(infraPack)>0: infraPack = infraPack[0]
- else: return['No underscore package','No underscore package','No underscore package','No underscore package']
- stereotypePackage=packageCheck(profilePackage, infraPack, validateOnly, "_Stereotypes")
- if not stereotypePackage: return ['no Stereotype Package', 'no Stereotype Package', 'no Stereotype Package', 'no Stereotype Package']
- stereotypesGen = getEverything(stereotypePackage)
- stereotypesGen = flatten(stereotypesGen)
- sters = filter(lambda element: isinstance(element, Stereotype), stereotypesGen)
- stereotypesGen = filter(lambda element: isinstance(element, Generalization), stereotypesGen)
- localstereotypeGen=filter(lambda element: getProfilePackage(element.getGeneral().getOwner()) == profilePackage and getProfilePackage(element.getSpecific().getOwner()) == profilePackage, stereotypesGen)
- baseGen = filter(lambda element: isinstance(element, Generalization) and element not in stereotypesGen, getEverything(modelPackage))
- baseGen = filter(lambda element: isinstance(element.getGeneral(), Class), baseGen)
- everything = getEverything(profilePackage)
- BG= []
- # [CYL:2012/10/03] Define these variables since they may not get defined if the if statements are skipped
- sterNoMatch = []
- baseNoMatch = []
- for b in baseGen:
- if b.getGeneral() in everything and b.getSpecific() in everything:
- BG.append(b)
-###Check for stereotype Generalizations not in base
- if len(localstereotypeGen)>0:
- sterCheck = generalizationCheck(localstereotypeGen, BG, sterIgnore)
- sterMatch = sterCheck[0]
- sterNoMatch.extend(sterCheck[1])
-###FIX->remove local generalizations that exist in stereotypes but not in base
- if validateOnly != True and createOnly!=True:
- for s in sterNoMatch:
- gl.log('[FIX] Removed Stereotype Generalization: '+ s.getGeneral().getName() + ' to '+ s.getSpecific().getName())
- mem.removeElement(s)
-###Check for base generalizations not in stereotypes
- stereotypesGen=filter(lambda element: isinstance(element, Generalization), flatten(getEverything(stereotypePackage)))
- localstereotypeGen=filter(lambda element: getProfilePackage(element.getGeneral().getOwner()) == profilePackage and getProfilePackage(element.getSpecific().getOwner()) == profilePackage, stereotypesGen)
- baseCheck = generalizationCheck(BG, localstereotypeGen, sterIgnore)
- baseMatch = baseCheck[0]
- baseNoMatch.extend(baseCheck[1])
-###Fix add base generalizations into stereotypes
- if validateOnly != True:
- genError=[]
- for s in baseNoMatch:
- sterParent = filter(lambda element: element.getName()==s.getGeneral().getName(), sters)
- if len(sterParent)!=0: sterParent = sterParent[0]
- else: sterParent = 0
- sterChild = filter(lambda element: element.getName()== s.getSpecific().getName(), sters)
- if len(sterChild)!=0: sterChild = sterChild[0]
- else: sterChild= 0
- if sterChild!=0 and sterParent!=0:
-###Check for potential cyclic generalizations
- Gen = sterChild.get_generalizationOfGeneral()
- cycle = filter(lambda element: element.getSpecific()==sterParent, Gen)
- if len(cycle)>0:
- gl.log('[WARNING]: Fix not implemented, cyclic generalization: '+ sterParent.getQualifiedName() + ' and '+ sterChild.getQualfiedName())
- warn+=1
- else:
- newg = ef.createGeneralizationInstance()
- newg.setGeneral(sterParent)
- newg.setSpecific(sterChild)
- newg.setOwner(sterChild)
- gl.log('[FIX] Created Stereotype Generalization:' + sterParent.getName() + " to " + sterChild.getName())
- else: genError.append(s)
- if len(genError)>0:
- for g in genError:
- error+=1
- gl.log('[ERROR] '+ g.getGeneral().getName() + " to " + g.getSpecific().getName() + " couldn't be made")
- gl.log('[FIX SUMMARY]: ')
- gl.log('[ERRORS] = ' + str(error))
- gl.log('[WARNINGS] = ' + str(warn))
- return [sterNoMatch, baseNoMatch]
-
-
-
-def generalizationCheck(setA, setB, sterIgnore):
- match = []
- noMatch = []
- ignore = []
- setB = filter(lambda element: element not in sterIgnore, setB)
- for s in setA:
- check = filter(lambda element: element.getGeneral().getName() == s.getGeneral().getName() and element.getSpecific().getName() == s.getSpecific().getName(), setB)
- if len(check)>0:
- if not StereotypesHelper.hasStereotypeOrDerived(s.getGeneral(), sterIgnore) and not StereotypesHelper.hasStereotypeOrDerived(s.getSpecific(),sterIgnore):
- match.append(s)
- else:
- ignore.append(s)
- else:
- if not StereotypesHelper.hasStereotypeOrDerived(s.getGeneral(), sterIgnore) and not StereotypesHelper.hasStereotypeOrDerived(s.getSpecific(), sterIgnore):
- noMatch.append(s)
- return [match, noMatch]
-
-def getElements(allels, profilePackage):
- sterPack = filter(lambda element: isinstance(element, Package) and element.getName() == "_Stereotypes", profilePackage.getOwnedElement())
- custPack = filter(lambda element:isinstance(element, Package) and element.getName() == "_Customizations", profilePackage.getOwnedElement())
- depPack = filter(lambda element: isinstance(element, Package) and element.getName() == "_Deprecated Stereotypes", profilePackage.getOwnedElement())
- depCust = filter(lambda element: isinstance(element, Package) and element.getName() == "_Deprecated Customizations", profilePackage.getOwnedElement())
- unusedSter = filter(lambda element: isinstance(element, Package) and element.getName() == '_Unused Stereotypes', profilePackage.getOwnedElement())
- baseClass = filter(lambda element: element.getOwner() != sterPack, allels)
- baseClass = filter(lambda element: element.getOwner() != custPack, baseClass)
- baseClass = filter(lambda element: element.getOwner()!=depPack, baseClass)
- baseClass = filter(lambda element: element.getOwner()!= depCust, baseClass)
- baseClass = filter(lambda element: element.getOwner()!=unusedSter, baseClass)
- baseClass = filter(lambda element: isinstance(element, NamedElement), baseClass)
- baseClass = filter(lambda element: element.getName() != "_Stereotypes" and element.getName() != "_Customizations" and element.getName() != "_Deprecated Stereotypes" and element.getName() != "_Deprecated Customizations", baseClass)
- baseClass = filter(lambda element: not isinstance(element, Stereotype), baseClass)
- baseClass = filter(lambda element: StereotypesHelper.getStereotype(project, "Customization") not in StereotypesHelper.getAllAssignedStereotypes([element]), baseClass)
-# baseClass = filter(lambda element: not isinstance(element, Diagram), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Comment), baseClass)
- baseClass = filter(lambda element: StereotypesHelper.getStereotype(project, "FrameworkValidation.Profile") not in StereotypesHelper.getAllAssignedStereotypes([element]), baseClass)
- # baseClass = filter(lambda element: not isinstance(element, Property), baseClass)
- baseClass = filter(lambda element: not isinstance(element, InputPin), baseClass)
- baseClass = filter(lambda element: not isinstance(element, OutputPin), baseClass)
- baseClass = filter(lambda element: not isinstance(element, ActivityParameterNode), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Parameter), baseClass)
- baseClass = filter(lambda element: not isinstance(element, CallBehaviorAction), baseClass)
-# baseClass = filter(lambda element: not isinstance(element, Operation), baseClass)
- baseClass = filter(lambda element: not isinstance(element, EnumerationLiteral), baseClass)
- baseClass = filter(lambda element: not isinstance(element, ObjectFlow), baseClass)
- baseClass = filter(lambda element: not isinstance(element, Interaction), baseClass)
-# baseClass = filter(lambda element: not isinstance(element, StateMachine), baseClass)
- baseClass = filter(lambda element: element.getName() != "", baseClass)
- baseClass = filter(lambda element: 'base_' not in element.getName(), baseClass)
- baseClass = filter(lambda element: 'extension_' not in element.getName(), baseClass)
- return baseClass
-
-def getEverything(element, collection = None):
- collection2 = []
- if collection is not None:
- collection2 = collection
-
- for e in element.getOwnedElement():
- collection2.append(e)
- getEverything(e, collection2)
-
- return collection2
-
-def getProfilePackage(package, profilePackage = None):
- profilePackage2 = []
- if profilePackage is not None:
- profilePackage2 = profilePackage
- if isinstance(package, Profile):
- profilePackage = package
- else:
- p = package.getNestingPackage()
- if p:
- if not isinstance(p, Profile):
- profilePackage2 = getProfilePackage(p, profilePackage)
- else:
- profilePackage2 = p
- return profilePackage2
-
-def unapplyStereotypes(elements):
- for e in elements:
- eSter = StereotypesHelper.getAllAssignedStereotypes([e])
- suffix = [' part property', ' constraint property', ' reference property',' shared property', ' value property', ' shared property', ' distributed property', ' port', ' flow property']
- names = []
- for s in suffix:
- names.append(e.getName() + s)
- names.append(e.getName())
- names.append('Customization')
- for s in eSter:
- if s.getName() not in names:
- StereotypesHelper.removeStereotype(e, s)
- return
-
-def getMissing(A, B):
- missing =[]
- nameMatch = {}
- metaMismatch=[]
- applyMismatch=[]
- for a in A:
- aName = a.getName()
- if isinstance(a, Property):
- aName = propertyCheck(a)
- elif isinstance(a, Stereotype) and StereotypesHelper.getBaseClassesAsClasses(a)[0] == Property:
- aGens = filter(lambda element: isinstance(element, Generalization), a.get_directedRelationshipOfSource())
- if len(filter(lambda element: element.getGeneral() == StereotypesHelper.getStereotype(project, "ConstraintProperty"), aGens))!=0:
- if a.getName().find("constraint property")==-1: aName = a.getName() + " constraint property"
- elif len(filter(lambda element: element.getGeneral() == StereotypesHelper.getStereotype(project, "SharedProperty"), aGens))!=0:
- if a.getName().find("shared property")==-1: aName = a.getName() + " shared property"
- elif len(filter(lambda element: element.getGeneral() == StereotypesHelper.getStereotype(project, "DistributedProperty"), aGens))!=0:
- if a.getName().find("distributed property")==-1: aName = a.getName() + " distributed property"
- elif len(filter(lambda element: element.getGeneral() == StereotypesHelper.getStereotype(project, "FlowProperty"), aGens))!=0:
- if a.getName().find("flow property")==-1: aName = a.getName() + " flow property"
- elif len(filter(lambda element: element.getGeneral() == StereotypesHelper.getStereotype(project, "ValueProperty"), aGens))!=0:
- if a.getName().find("value property")==-1: aName = a.getName() + " value property"
- elif len(filter(lambda element: element.getGeneral() == StereotypesHelper.getStereotype(project, "ReferenceProperty"), aGens))!=0:
- if a.getName().find("reference property")==-1: aName = a.getName() + " reference property"
- else:
- if a.getName().find("part property")==-1: aName=a.getName() + " part property"
- elif isinstance(a, Stereotype) and StereotypesHelper.getBaseClassAsClasses(a)[0] == Port:
- if a.getName().find("port")==-1: aName = a.getName() + " port"
- bExist = 0
- for b in B:
- if aName == b.getName():
- nameMatch[a]=b
- bExist = 1
- if b not in StereotypesHelper.getAllAssignedStereotypes([a]):
- noApply[a]=b
- if bExist == 0:
- missing.append(a)
- for n in nameMatch:
- ###get generalizations of stereotype
- stereotype = nameMatch[n]
- nGeneral = filter(lambda element: isinstance(element, Generalization), stereotype.get_directedRelationshipOfSource())
- general = []
- for g in nGeneral:
- general.append(g.getGeneral())
- ###keep only SysML generalizations
- gSys = filter(lambda element: StereotypesHelper.getProfileForStereotype(element) == StereotypesHelper.getProfile(project, "SysML"), general)
- if gSys and not StereotypesHelper.checkForAllDerivedStereotypes(n, gSys[0]): applyMismatch.append(n)
- ###check if same
- if n.getName() != "_Unused Stereotypes":
- if not isinstance(n, StereotypesHelper.getClassOfMetaClass(StereotypesHelper.getBaseClasses(nameMatch[n])[0])): metaMismatch.append(n)
- return [missing, applyMismatch, metaMismatch]
-
-def assignCustomizationTags(stereotype, customBlock, supertype):
- StereotypesHelper.setStereotypePropertyValue(customBlock, StereotypesHelper.getStereotype(project, "Customization"), "customizationTarget", stereotype)
- if supertype != False: StereotypesHelper.setStereotypePropertyValue(customBlock, StereotypesHelper.getStereotype(project, "Customization"), "superTypes", supertype)
- else: gl.log('[FIX ERROR]: no supertype found for customization: ' + customBlock.getName())
- StereotypesHelper.setStereotypePropertyValue(customBlock, StereotypesHelper.getStereotype(project, "Customization"), "hideMetatype", False)
- return
-
-def flatten(x):
- result = []
- for el in x:
- if hasattr(el, "__iter__") and not isinstance(el, basestring):
- result.extend(flatten(el))
- else:
- result.append(el)
- return result
-
-def createCustomization(stereotypeName, owner):
- new = ef.createClassInstance()
- new.setOwner(owner)
- new.setName(stereotypeName)
- StereotypesHelper.addStereotype(new, StereotypesHelper.getStereotype(project, "Customization"))
- return new
-
-def createStereotype(owner, element, stereotypePackage):
- '''append Package to any package element, this is an OpsRev naming convention '''
- if isinstance(element, Package):
- package = element.getName().find("Package")
- if package == -1:
- element.setName(element.getName() + " Package")
- '''stereotypes should not be made for enumeration literals'''
- if not isinstance(element, EnumerationLiteral):
- eSter = StereotypesHelper.getAllAssignedStereotypes([element])
- elementSterName = propertyCheck(element)
- newSter = StereotypesHelper.createStereotype(owner, elementSterName, [StereotypesHelper.getBaseClass(element)])
- StereotypesHelper.addStereotype(element, newSter)
- for e in eSter:
- if StereotypesHelper.getProfileForStereotype(e) == StereotypesHelper.getProfile(project, "SysML") or StereotypesHelper.getProfileForStereotype(e) == StereotypesHelper.getProfile(project, "additional_stereotypes"):
- newgen = ef.createGeneralizationInstance()
- newgen.setGeneral(e)
- newgen.setSpecific(newSter)
- newgen.setOwner(newSter)
- icon = filter(lambda element: isinstance(element, Image), e.getOwnedElement())
- if icon:
- icon = icon[0]
- newicon= ef.createImageInstance()
- newicon.setLocation(icon.getLocation())
- newicon.setContent(icon.getContent())
- newicon.setFormat(icon.getFormat())
- newicon.setOwner(newSter)
- if isinstance(element, Class) and e.getOwner() == stereotypePackage:
- newgen = ef.createGeneralizationInstance()
- newgen.setGeneral(e)
- newgen.setSpecific(newSter)
- newgen.setOwner(newSter)
- icon = filter(lambda element: isinstance(element, Image), e.getOwnedElement())
- if icon:
- icon = icon[0]
- newicon = ef.createImageInstance()
- newicon.setLocation(icon.getLocation())
- newicon.setContent(icon.getContent())
- newicon.setFormat(icon.getFormat())
- newicon.setOwner(newSter)
- return
-
-def propertyCheck(element):
- '''append part property to any Property or constraint property or port element, this is an OpsRev naming convention '''
- elementSterName = element.getName()
- if isinstance(element, Property):
- if StereotypesHelper.isElementStereotypedBy(element, "ConstraintProperty"):
- if element.getName().find("constraint property") == -1:
- elementSterName = element.getName() + " constraint property"
- elif StereotypesHelper.isElementStereotypedBy(element, "PartProperty"):
- if element.getName().find("part property") == -1:
- elementSterName = element.getName() + " part property"
- elif isinstance(element, Port):
- if element.getName().find("port") == -1:
- elementSterName = element.getName()+ " port"
- elif StereotypesHelper.isElementStereotypedBy(element, "SharedProperty"):
- if element.getName().find("shared property")==-1:
- elementSterName = element.getName() + " shared property"
- elif StereotypesHelper.isElementStereotypedBy(element, "ValueProperty"):
- if element.getName().find("value property")==-1:
- elementSterName = element.getName() + " value property"
- elif StereotypesHelper.isElementStereotypedBy(element,"ReferenceProperty"):
- if element.getName().find("reference property")==-1:
- elementSterName = element.getName() + " reference property"
- elif StereotypesHelper.isElementStereotypedBy(element, "DistributedProperty"):
- if element.getName().find("distributed property")==-1:
- elementSterName = element.getName() + " distributed property"
- elif StereotypesHelper.isElementStereotypedBy(element, "FlowProperty"):
- if element.getName().find("flow property")==-1:
- elementSterName = element.getName() + " flow property"
- return elementSterName
-
-def createPackage(name, owner):
- new = ef.createPackageInstance()
- new.setOwner(owner)
- new.setName(name)
- return new
-
-def createElement(stereotype, owner,checkEnum):
- new = None
- mclass = StereotypesHelper.getBaseClassesAsClasses(stereotype)
- for m in mclass:
- insCreate = str(m)
- findtrunc = insCreate.split(".")
- insCreate = findtrunc[len(findtrunc)-1]
- insCreate = insCreate[:-2]
- if insCreate != "Property" and insCreate != "Association" and insCreate != "Dependency" and insCreate!= "ObjectFlow" and insCreate != "Relationship" and insCreate != "Operation" and insCreate!= "EnumerationLiteral":
- if insCreate == "Element":
- new = ef.createClassInstance()
- gl.log(stereotype.getName() + " Stereotype metaclass was element. Stereotyped Class was created")
- elif checkEnum==True:
- new=ef.createEnumerationInstance()
- gl.log(stereotype.getName() + " Stereotype metaclass was enumeration. Stereotyped Enumeration was created")
- else:
- instanceCreate = 'create'+insCreate+'Instance'
- new = eval('ef.create'+insCreate+'Instance()')
- new.setOwner(owner)
- if docStereotypeCheck(stereotype) == 0:
- new.setName(stereotype.getName())
- return new
-
-def docStereotypeCheck(element):
- sterCheck = 0
- docProfile = StereotypesHelper.getProfile(project,"Document Profile")
- if docProfile:
- docStereotypes = getEverything(docProfile)
- docStereotypes = filter(lambda element: isinstance(element, Stereotype), docStereotypes)
- for s in StereotypesHelper.getStereotypes(element):
- if s in docStereotypes:
- sterCheck = 1
- return sterCheck
-
-def createStereotypedElement(stereotype, owner):
- new = None
- mclass = StereotypesHelper.getBaseClassesAsClasses(stereotype)
- for m in mclass:
- insCreate = str(m)
- findtrunc = insCreate.split(".")
- insCreate = findtrunc[len(findtrunc)-1]
- insCreate = insCreate[:-2]
- if insCreate != "Property" and insCreate != "Association" and insCreate != "Dependency" and insCreate != "Relationship" and insCreate != "Element" and insCreate != "Operation" and insCreate!= "Property" and insCreate!= "EnumerationLiteral":
- instanceCreate = 'create'+insCreate+'Instance'
- new = eval('ef.create'+insCreate+'Instance()')
- new.setOwner(owner)
- new.setName(stereotype.getName())
- StereotypesHelper.addStereotypeByString(new, stereotype.getName())
- return new
-
-def getGeneralizationTree(e, tree=None):
- '''returns a map of element to list of elements it specializes, starting from e'''
- res = tree
- if not res:
- res = {}
- parents = []
- for r in e.get_directedRelationshipOfSource():
- if isinstance(r, Generalization):
- parents.append(CoreHelper.getSupplierElement(r))
- #if isinstance(e, Class):
- # parents = e.getSuperClass()
- res[e] = parents
- for super in parents:
- getGeneralizationTree(super, res)
- return res
\ No newline at end of file
diff --git a/src/main/dist/DocGenUserScripts/examples/HelloWorldParagraph.py b/src/main/dist/DocGenUserScripts/examples/HelloWorldParagraph.py
index 71b44542a..7047187d9 100644
--- a/src/main/dist/DocGenUserScripts/examples/HelloWorldParagraph.py
+++ b/src/main/dist/DocGenUserScripts/examples/HelloWorldParagraph.py
@@ -1,3 +1,3 @@
-from gov.nasa.jpl.mbee.mdk.docgen.docbook import DBParagraph
+from org.openmbee.mdk.docgen.docbook import DBParagraph
-scriptOutput = [DBParagraph("Hello World")]
\ No newline at end of file
+scriptOutput = [DBParagraph("Hello World")]
diff --git a/src/main/dist/bin/cli/automatedcommitter.sh b/src/main/dist/bin/cli/automatedcommitter.sh
index 41141a705..d86287bc4 100755
--- a/src/main/dist/bin/cli/automatedcommitter.sh
+++ b/src/main/dist/bin/cli/automatedcommitter.sh
@@ -65,7 +65,7 @@ java -Xmx8192M -Xss1024M -DLOCALCONFIG=true -DWINCONFIG=true \
-Dcom.sun.media.imageio.disableCodecLib=true \
-Dsun.locale.formatasdefault=true \
-Dcom.nomagic.magicdraw.launcher=com.nomagic.magicdraw.commandline.CommandLineActionLauncher \
- -Dcom.nomagic.magicdraw.commandline.action=gov.nasa.jpl.mbee.mdk.cli.AutomatedCommitter \
+ -Dcom.nomagic.magicdraw.commandline.action=org.openmbee.mdk.cli.AutomatedCommitter \
com.nomagic.osgi.launcher.ProductionFrameworkLauncher -verbose "$@"
exit $?
diff --git a/src/main/dist/bin/cli/automatedviewgenerator.sh b/src/main/dist/bin/cli/automatedviewgenerator.sh
index e5846c3b0..3b88afb7a 100755
--- a/src/main/dist/bin/cli/automatedviewgenerator.sh
+++ b/src/main/dist/bin/cli/automatedviewgenerator.sh
@@ -48,7 +48,7 @@ java -Xmx8192M -Xss1024M -DLOCALCONFIG=true -DWINCONFIG=true \
-Dcom.sun.media.imageio.disableCodecLib=true \
-Dsun.locale.formatasdefault=true \
-Dcom.nomagic.magicdraw.launcher=com.nomagic.magicdraw.commandline.CommandLineActionLauncher \
- -Dcom.nomagic.magicdraw.commandline.action=gov.nasa.jpl.mbee.mdk.cli.AutomatedViewGenerator \
+ -Dcom.nomagic.magicdraw.commandline.action=org.openmbee.mdk.cli.AutomatedViewGenerator \
com.nomagic.osgi.launcher.ProductionFrameworkLauncher -verbose "$@"
exit $?
diff --git a/src/main/dist/data/defaults/data/diagrams/DocGen 3 Diagram/descriptor.xml b/src/main/dist/data/defaults/data/diagrams/DocGen 3 Diagram/descriptor.xml
deleted file mode 100644
index 710761ce8..000000000
--- a/src/main/dist/data/defaults/data/diagrams/DocGen 3 Diagram/descriptor.xml
+++ /dev/null
@@ -1,508 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326674039615_227913_16224
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370475_341756_16193
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370476_414963_16195
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370477_194305_16196
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370477_153155_16197
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370477_499488_16198
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370478_258826_16200
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370478_57771_16201
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370479_571288_16202
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370479_350723_16203
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370479_705556_16204
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370479_99496_16205
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370480_245933_16206
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326673370480_823110_16207
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326674039621_930791_16225
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326674039621_571449_16226
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326674039621_354029_16227
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326674039622_366865_16230
-
-
-
-
-
-
-
-
- _17_0_3_244d03ea_1326674039623_393506_16231
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- com.nomagic.uml2.ext.magicdraw.actions.mdbasicactions.CallBehaviorAction
-
- ADD_CALL_BEHAVIOR_ACTION
- ADD_DECISION_NODE
- ADD_MERGE_NODE
- ADD_JOIN_NODE_HORIZONTAL
- ADD_FORK_NODE_HORIZONTAL
- ADD_CALL_OPERATION_ACTION
- ADD_FINAL_NODE
- ADD_FLOW_FINAL_NODE_
- ADD_STRUCTURED_ACTIVITY_NODE
-
-
-
- ADD_NOTE
- ADD_HTML_NOTE
- ADD_COMMENT
- ADD_HTML_COMMENT
-
-
-
- com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities.ForkNode
-
- ADD_CALL_BEHAVIOR_ACTION
- ADD_DECISION_NODE
- ADD_MERGE_NODE
- ADD_JOIN_NODE_HORIZONTAL
- ADD_FORK_NODE_HORIZONTAL
- ADD_CALL_OPERATION_ACTION
- ADD_FINAL_NODE
- ADD_FLOW_FINAL_NODE_
- ADD_STRUCTURED_ACTIVITY_NODE
-
-
- ADD_NOTE
- ADD_HTML_NOTE
-
-
-
- com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities.JoinNode
-
- ADD_CALL_BEHAVIOR_ACTION
- ADD_DECISION_NODE
- ADD_MERGE_NODE
- ADD_JOIN_NODE_HORIZONTAL
- ADD_FORK_NODE_HORIZONTAL
- ADD_CALL_OPERATION_ACTION
- ADD_FINAL_NODE
- ADD_FLOW_FINAL_NODE_
- ADD_STRUCTURED_ACTIVITY_NODE
-
-
- ADD_NOTE
- ADD_HTML_NOTE
-
-
-
- com.nomagic.uml2.ext.magicdraw.activities.mdintermediateactivities.MergeNode
-
- ADD_CALL_BEHAVIOR_ACTION
- ADD_DECISION_NODE
- ADD_MERGE_NODE
- ADD_JOIN_NODE_HORIZONTAL
- ADD_FORK_NODE_HORIZONTAL
- ADD_CALL_OPERATION_ACTION
- ADD_FINAL_NODE
- ADD_FLOW_FINAL_NODE_
- ADD_STRUCTURED_ACTIVITY_NODE
-
-
- ADD_NOTE
- ADD_HTML_NOTE
- ADD_COMMENT
- ADD_HTML_COMMENT
-
-
-
- com.nomagic.uml2.ext.magicdraw.activities.mdstructuredactivities.StructuredActivityNode
-
-
- ADD_CALL_BEHAVIOR_ACTION
- ADD_DECISION_NODE
- ADD_MERGE_NODE
- ADD_JOIN_NODE_HORIZONTAL
- ADD_FORK_NODE_HORIZONTAL
- ADD_CALL_OPERATION_ACTION
- ADD_FINAL_NODE
- ADD_FLOW_FINAL_NODE_
- ADD_STRUCTURED_ACTIVITY_NODE
-
-
- ADD_NOTE
- ADD_HTML_NOTE
- ADD_COMMENT
- ADD_HTML_COMMENT
-
-
-
-
diff --git a/src/main/dist/data/defaults/data/diagrams/DocGen 3 View Diagram/descriptor.xml b/src/main/dist/data/defaults/data/diagrams/DocGen 3 View Diagram/descriptor.xml
deleted file mode 100644
index 69d8bcd69..000000000
--- a/src/main/dist/data/defaults/data/diagrams/DocGen 3 View Diagram/descriptor.xml
+++ /dev/null
@@ -1,815 +0,0 @@
-
-
-
-
- 47494638396110001000B30800FFD6967E7E7EFCFCD7F8F9A9FAFAC1F6F793F5F6844D4D4DFFFFFF00000000000000000000000000000000000000000021F90401000008002C000000001000100000043C10C949ABBD38D3C07BC801208A1F769C689A4A87E1BEB07BB0716DCC486BC3F851FCC0E0AF37281A8FC51E61C96C2E7B82A8741AEDA9AE278D761B01003B
-
-
-
-
-
-
-
-
-
- 47494638396110001000B30800D7D7D7B9B9B9F5F5F5E7E7E7C7C7C7AFAFAFFFFFFF4D4D4DFFFFFF00000000000000000000000000000000000000000021F90401000008002C000000001000100000043E10C949AB3C386B4C4F2901010C82617257B165C6D1A6A0489A6D86782B46BF5E3C963B9E2AC73ADC3EA15F90475C599E508B263A31DEA8171BD68ABD5022003B
- 47494638396110001000B30800D7D7D7B9B9B9F5F5F5E7E7E7C7C7C7AFAFAFFFFFFF4D4D4DFFFFFF00000000000000000000000000000000000000000021F90401000008002C000000001000100000043C10C949ABBDF5E8CD4F2E4540008360181A75149D86A2D31A8EE5C9496B7B9C360E8A24130F86C8E95C9EE28F66BA1C3D374C0C278D6DAA54AC561B01003B
-
-
-
- _12_0EAPbeta_be00301_1161608845944_479560_828
-
- body
-
-
-
- documentation
-
-
-
-
-
-
-
-
- 47494638396110001000B30800D7D7D7B9B9B9F5F5F5E7E7E7C7C7C7AFAFAFFFFFFF4D4D4DFFFFFF00000000000000000000000000000000000000000021F90401000008002C000000001000100000043E10C949AB3C386B4C4F2901010C82617257B165C6D1A6A0489A6D86782B46BF5E3C963B9E2AC73ADC3EA15F90475C599E508B263A31DEA8171BD68ABD5022003B
- 47494638396110001000B30800D7D7D7B9B9B9F5F5F5E7E7E7C7C7C7AFAFAFFFFFFF4D4D4DFFFFFF00000000000000000000000000000000000000000021F90401000008002C000000001000100000043C10C949ABBDF5E8CD4F2E4540008360181A75149D86A2D31A8EE5C9496B7B9C360E8A24130F86C8E95C9EE28F66BA1C3D374C0C278D6DAA54AC561B01003B
-
-
-
- _12_0EAPbeta_be00301_1161608845944_588421_829
-
- body
-
-
-
- documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _12_0EAPbeta_8740266_1161259910656_258566_788
-
- visibility
- public
-
-
-
-
-
- documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 47494638396110001000A20500FEFECCFFFFFF4D4D4D878787DDCD9EFFFFFF00000000000021F90401000005002C000000001000100000034238BABCF583C8494718906A626F8984206ADD1509402AAECDB9A66A75C2B42087F06B4F0A0EA0AA95AD0714D6382E112D87A400974390E479EC4D84D8E666DBEA3212003B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 47494638396110001000A20000000000FFFFFFCCCCFED2D2FEDEDEFEECECFF4D4D4DFFFFFF21F90401000007002C000000001000100000033778BADC67301AB78CB877D287F37E52285A5DD941662AA0AA45B2A99B91F13AABF66B0C7CEFEF3C0861482C162185A472B91C39211F4A02003B
- 47494638396110001000C40000000000FFFFFFCCCCFECECEFECFCFFED1D1FED3D3FED4D4FED6D6FED8D8FEDADAFEDBDBFEDFDFFEE0E0FEE2E2FEE6E6FFE8E8FFEAEAFFEFEFFFF0F0FFF6F6FF4D4D4DFFFFFF00000000000000000000000000000000000000000000000000000021F90401000016002C0000000010001000000545A0258E64699E66A5AEA85809B050B5D61BCFEDAAEFA41DFFB29EA130B8C982A3CA226120C05ED0DEA3B13838A1489724E250188A369C8B32813010CE5B6FC7A6B9DF705208003B
-
-
-
- _12_0EAPbeta_be00301_1161605592877_100027_1665
-
- visibility
- public
-
-
-
-
-
- documentation
-
-
-
-
-
-
-
-
- 47494638396110001000910000DADAA84D4D4DFFFFCCFFFFFF21F90401000003002C000000001000100000022D8C8F69C0ED6E849C7482586710FBEE2C6D1D068A820786DC4996129A529E421FCFDDB4F15CD338AE4BF17A8802003B
- 47494638396110001000910300DADAA8FFFFCC4D4D4DFFFFFF21F90401000003002C00000000100010000002329C8FA99BE20FA111A0DA5BC50CBC731150DA007A1D286EE6170263B98681ABC61C4D46BA53DBF8BEEBC57EC008E388541400003B
-
-
-
- _12_0_8740266_1163768800359_692757_250
-
- isActive
- isActive_DESCRIPTION
-
-
- isAbstract
- isAbstract_DESCRIPTION
-
-
-
- isLeaf
- isLeaf_DESCRIPTION
-
-
- visibility
- public
-
-
-
-
-
- documentation
-
-
-
-
-
-
-
-
- 474946383961100010009102005B7EE34D4D4DFFFFFF00000021F90401000002002C0000000010001000000224948FA9CB080F4373404E51EBD5BAF57E6196024E60802E67788C4929B8076CA023CD4E05003B
- 474946383961100010009102005B7EE34D4D4DFFFFFF00000021F90401000002002C0000000010001000000224948FA9CB080F4373404E51EBD5BAF57E6196024E60802E67788C4929B8076CA0328B1B05003B
-
-
-
- _12_0EAPbeta_be00301_1161605592877_807953_1667
-
- visibility
- public
-
-
-
-
-
- documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 47494638396110001000A20500FEFECCFFFFFF4D4D4D878787DDCD9EFFFFFF00000000000021F90401000005002C000000001000100000034238BABCF583C8494718906A626F8984206ADD1509402AAECDB9A66A75C2B42087F06B4F0A0EA0AA95AD0714D6382E112D87A400974390E479EC4D84D8E666DBEA3212003B
- 47494638396110001000A20500FEFECCFFFFFF4D4D4D878787DDCD9EFFFFFF00000000000021F90401000005002C000000001000100000034238BABCF583C8494718906A626F8984206ADD1509402AAECDB9A66A75C2B42087F06B4F0A0EA0AA95AD0714D6382E112D87A400974390E479EC4D84D8E666DBEA3212003B
- 3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D38223F3E0D0A3C212D2D2047656E657261746F723A2041646F626520496C6C7573747261746F722031312E302C20535647204578706F727420506C75672D496E20202D2D3E0D0A3C21444F435459504520737667205055424C494320222D2F2F5733432F2F4454442053564720312E302F2F454E222020202022687474703A2F2F7777772E77332E6F72672F54522F323030312F5245432D5356472D32303031303930342F4454442F73766731302E64746422205B0D0A093C21454E54495459206E735F666C6F77732022687474703A2F2F6E732E61646F62652E636F6D2F466C6F77732F312E302F223E0D0A093C21454E54495459206E735F7376672022687474703A2F2F7777772E77332E6F72672F323030302F737667223E0D0A093C21454E54495459206E735F786C696E6B2022687474703A2F2F7777772E77332E6F72672F313939392F786C696E6B223E0D0A5D3E0D0A3C7376672020786D6C6E733D22266E735F7376673B2220786D6C6E733A786C696E6B3D22266E735F786C696E6B3B2220786D6C6E733A613D22687474703A2F2F6E732E61646F62652E636F6D2F41646F6265535647566965776572457874656E73696F6E732F332E302F220D0A092077696474683D22313622206865696768743D223136222076696577426F783D223020302031362031362220786D6C3A73706163653D227072657365727665223E0D0A093C646566733E0D0A093C2F646566733E0D0A093C673E0D0A09093C72616469616C4772616469656E742069643D22584D4C49445F315F222063783D2238222063793D22382220723D22372E33383533222066783D2238222066793D223822206772616469656E74556E6974733D227573657253706163654F6E557365223E0D0A0909093C73746F7020206F66667365743D223022207374796C653D2273746F702D636F6C6F723A23464646464646222F3E0D0A0909093C73746F7020206F66667365743D223122207374796C653D2273746F702D636F6C6F723A23444443443945222F3E0D0A0909093C613A6D6964506F696E7453746F7020206F66667365743D223022207374796C653D2273746F702D636F6C6F723A23464646464646222F3E0D0A0909093C613A6D6964506F696E7453746F7020206F66667365743D22302E3522207374796C653D2273746F702D636F6C6F723A23464646464646222F3E0D0A0909093C613A6D6964506F696E7453746F7020206F66667365743D223122207374796C653D2273746F702D636F6C6F723A23444443443945222F3E0D0A09093C2F72616469616C4772616469656E743E0D0A09093C706F6C796C696E6520646973706C61793D226E6F6E65222066696C6C3D2275726C2823584D4C49445F315F292220706F696E74733D2231352E342C332E372031352E342C31352E3420302E362C31352E3420302E362C302E362031322E332C302E3620222F3E0D0A09093C706F6C79676F6E20646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D22352220706F696E74733D22372E312C31332E3420322E332C31332E34200D0A090909322E332C31322E3220322E332C31302E3120372E312C31302E3120222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3322207374726F6B652D6D697465726C696D69743D2235222078313D2237222079313D2231322E31222078323D22322E32222079323D2231322E31222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3322207374726F6B652D6D697465726C696D69743D2235222078313D22372E31222079313D2231322E36222078323D22322E33222079323D2231322E36222F3E0D0A09093C706F6C79676F6E20646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D22352220706F696E74733D2231342C31332E3420392E322C31332E34200D0A090909392E322C31322E3220392E322C31302E312031342C31302E3120222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3322207374726F6B652D6D697465726C696D69743D2235222078313D2231332E39222079313D2231322E31222078323D22392E31222079323D2231322E31222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3322207374726F6B652D6D697465726C696D69743D2235222078313D223134222079313D2231322E36222078323D22392E32222079323D2231322E36222F3E0D0A09093C706F6C79676F6E20646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D22352220706F696E74733D2231302E362C362E3520352E382C362E35200D0A090909352E382C352E3420352E382C332E332031302E362C332E332031302E362C362E3620222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3322207374726F6B652D6D697465726C696D69743D2235222078313D2231302E35222079313D22352E32222078323D22352E37222079323D22352E32222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3322207374726F6B652D6D697465726C696D69743D2235222078313D2231302E36222079313D22352E38222078323D22352E38222079323D22352E38222F3E0D0A09093C706F6C796C696E6520646973706C61793D226E6F6E65222066696C6C3D226E6F6E6522207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D22352220706F696E74733D22342E342C392E3920342E342C382E38200D0A09090931312E382C382E382031312E382C313020222F3E0D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D226E6F6E6522207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D2235222078313D22382E32222079313D22382E36222078323D22382E32222079323D22362E35222F3E0D0A09093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D226E6F6E6522207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D2235222078313D22372E34222079313D22372E36222078323D2239222079323D22372E36222F3E0D0A09093C706F6C796C696E6520646973706C61793D226E6F6E65222066696C6C3D2275726C2823584D4C49445F315F292220706F696E74733D2231352E342C332E372031352E342C31352E3420302E362C31352E3420302E362C302E362031322E332C302E3620222F3E0D0A09093C706F6C79676F6E20646973706C61793D226E6F6E65222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D22352220706F696E74733D2231342E322C31342E3120322E312C31342E31200D0A090909322E312C332E362031342E312C332E362031342E312C31342E3120222F3E0D0A09093C706F6C79676F6E20646973706C61793D226E6F6E65222066696C6C3D222346464646464622207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D22352220706F696E74733D2231322E382C31312E3620352E392C31312E36200D0A090909352E392C362E312031322E392C362E312031322E392C31312E3520222F3E0D0A09090D0A0909093C7265637420783D22352E342220793D22382E312220646973706C61793D226E6F6E65222066696C6C3D222346464646464622207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D2235222077696474683D22312E3722206865696768743D22312E37222F3E200D0A09090D0A0909093C7265637420783D22312E332220793D22382E312220646973706C61793D226E6F6E65222066696C6C3D222346464646464622207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D2235222077696474683D22312E3722206865696768743D22312E37222F3E200D0A09090D0A0909093C6C696E6520646973706C61793D226E6F6E65222066696C6C3D222346464646464622207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E3622207374726F6B652D6D697465726C696D69743D2235222078313D22332E31222079313D22382E39222078323D22352E34222079323D22382E39222F3E0D0A09093C706F6C796C696E652066696C6C3D2275726C2823584D4C49445F315F292220706F696E74733D2231352E342C332E372031352E342C31352E3420302E362C31352E3420302E362C302E362031322E332C302E3620222F3E0D0A09093C7265637420783D22322E312220793D22342E38222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E36222077696474683D22382E3322206865696768743D22352E33222F3E200D0A09093C7265637420783D22322E312220793D22332E37222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E36222077696474683D22332E3822206865696768743D2232222F3E200D0A09093C7265637420783D22352E362220793D22382E34222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E36222077696474683D22382E3322206865696768743D22352E33222F3E200D0A09093C7265637420783D22352E362220793D22372E33222066696C6C3D222346454645434322207374726F6B653D222334443444344422207374726F6B652D77696474683D22302E36222077696474683D22332E3822206865696768743D2232222F3E200D0A09093C706F6C79676F6E2066696C6C3D22234646464646462220656E61626C652D6261636B67726F756E643D226E6577202020202220706F696E74733D2231322E332C302E372031322E332C332E382031352E342C332E382031322E342C302E3920222F3E0D0A09093C706174682066696C6C3D22233444344434442220643D224D31322C302E3776332E3468332E396C2D332E332D332E354C31322C302E3356302E377A204D31322E362C312E3163302E352C302E352C312E392C312E392C322E352C322E35632D302E372C302D322E312C302D322E352C300D0A0909094331322E362C332E322C31322E362C312E382C31322E362C312E317A222F3E0D0A09093C706174682066696C6C3D22233444344434442220643D224D31322C30483076313668313656332E386C2D322D324C31322E312C304831327A204D31312E392C302E3663302E322C302E322C312E372C312E372C312E372C312E3773312E362C312E362C312E382C312E380D0A09090963302C302E322C302C31302E392C302C31312E33632D302E362C302D31342E322C302D31342E382C3063302D302E362C302D31342E322C302D31342E3843312E322C302E362C31312E362C302E362C31312E392C302E367A222F3E0D0A093C2F673E0D0A3C2F7376673E0D0A
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- SHOW_ABBREVIATED_DIAGRAM_TYPE
- DIAGRAM_FRAME
- SHOW_ABBREVIATED_DIAGRAM_TYPE_DESCRIPTION
-
-
-
- SHOW_DIAGRAM_TYPE
- DIAGRAM_FRAME
- SHOW_DIAGRAM_TYPE_DESCRIPTION
-
-
-
- SHOW_PARAMETERS
- DIAGRAM_FRAME
- SHOW_PARAMETERS_DESCRIPTION
-
-
- SHOW_CONTEXT_TYPE
- DIAGRAM_FRAME
- SHOW_CONTEXT_TYPE_DESCRIPTION
-
-
-
- SHOW_FRAME_OWNER
- DIAGRAM_FRAME
- SHOW_FRAME_OWNER_DESCRIPTION
-
-
-
-
-
- com.nomagic.uml2.ext.magicdraw.mdusecases.Actor
-
- ADD_ACTOR
-
-
- ADD_ACTOR
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_PACKAGE
-
-
- ADD_USECASE
- ADD_ACTOR
-
-
- ADD_ACTOR
-
-
- ADD_ACTOR
-
-
- ADD_USECASE
- ADD_ACTOR
-
-
- ADD_ACTOR
-
-
- ADD_ACTOR
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
- com.nomagic.uml2.ext.magicdraw.classes.mdkernel.DataType
-
- ADD_DATA_TYPE
-
-
- ADD_DATA_TYPE
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_COMMENT
-
-
-
- com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Enumeration
-
- ADD_ENUMERATION
-
-
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
- com.nomagic.uml2.ext.magicdraw.classes.mdinterfaces.Interface
-
-
-
- ADD_INTERFACE
-
-
- ADD_INTERFACE
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
- com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdmodels.Model
-
- ADD_PACKAGE
- ADD_MODEL
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
- com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Package
-
-
-
-
-
-
- ADD_PACKAGE
-
-
-
- ADD_PACKAGE
- ADD_MODEL
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
- com.nomagic.uml2.ext.magicdraw.mdusecases.UseCase
-
- ADD_ACTOR
- ADD_USECASE
- ADD_SUBSYSTEM
-
-
- ADD_USECASE
-
-
- ADD_USECASE
-
-
- ADD_USECASE
-
-
- ADD_USECASE
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_INTERFACE
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_INTERFACE
-
-
- ADD_INTERFACE
-
-
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_INTERFACE
-
-
- ADD_INTERFACE
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
-
- IDaction_1157007825625_911897_0
-
-
- ADD_PACKAGE
-
-
-
-
-
-
-
- ADD_NOTE
- ADD_COMMENT
-
-
-
-
-
- ADD_INTERFACE
- ADD_DATA_TYPE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_COMMENT
- IDaction_1161246966968_114012_0
- IDaction_1161246993578_492912_0
-
-
-
-
diff --git a/src/main/dist/data/defaults/data/diagrams/Module Management/descriptor.xml b/src/main/dist/data/defaults/data/diagrams/Module Management/descriptor.xml
deleted file mode 100644
index 7a3ef354b..000000000
--- a/src/main/dist/data/defaults/data/diagrams/Module Management/descriptor.xml
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204742_829595_37939
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204742_324987_37940
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204742_76983_37941
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204743_995012_37942
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204743_131978_37943
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204743_19823_37944
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204743_424691_37945
-
-
-
-
-
-
-
-
-
-
- _17_0_2_2_8c20286_1363889204741_197978_37938
-
- LINE_WIDTH
- LINE_WIDTH_DESCRIPTION
-
-
-
-
-
- STEREOTYPE_FONT
- STEREOTYPE_FONT_DESCRIPTION
- Arial
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/main/dist/data/defaults/data/diagrams/View Class Diagram/descriptor.xml b/src/main/dist/data/defaults/data/diagrams/View Class Diagram/descriptor.xml
deleted file mode 100644
index 9625819dd..000000000
--- a/src/main/dist/data/defaults/data/diagrams/View Class Diagram/descriptor.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Class
-
-
-
- ADD_CLASS
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_CLASS
- ADD_INTERFACE
- ADD_ENUMERATION
-
-
- ADD_CLASS
- ADD_INTERFACE
- ADD_ENUMERATION
- ADD_PACKAGE
-
-
- ADD_NOTE
- ADD_HTML_NOTE
- ADD_COMMENT
- ADD_HTML_COMMENT
-
-
-
-
diff --git a/src/main/dist/data/defaults/data/diagrams/View Diagram/descriptor.xml b/src/main/dist/data/defaults/data/diagrams/View Diagram/descriptor.xml
index ec709c226..3a774de39 100644
--- a/src/main/dist/data/defaults/data/diagrams/View Diagram/descriptor.xml
+++ b/src/main/dist/data/defaults/data/diagrams/View Diagram/descriptor.xml
@@ -1,6 +1,6 @@
- gov.nasa.jpl.mbee.mdk#Model Development Kit;SysML Extensions.mdxml;UML_Standard_Profile.mdzip
+ org.openmbee.mdk#Model Development Kit;SysML Extensions.mdxml;UML_Standard_Profile.mdzip
diff --git a/src/main/dist/data/defaults/data/diagrams/Viewpoint Method Diagram/descriptor.xml b/src/main/dist/data/defaults/data/diagrams/Viewpoint Method Diagram/descriptor.xml
index 8d10f390f..0cc6ec18b 100644
--- a/src/main/dist/data/defaults/data/diagrams/Viewpoint Method Diagram/descriptor.xml
+++ b/src/main/dist/data/defaults/data/diagrams/Viewpoint Method Diagram/descriptor.xml
@@ -1,6 +1,6 @@
- gov.nasa.jpl.mbee.mdk#Model Development Kit;SysML Extensions.mdxml;UML_Standard_Profile.mdzip
+ org.openmbee.mdk#Model Development Kit;SysML Extensions.mdxml;UML_Standard_Profile.mdzip
diff --git a/src/main/dist/plugins/gov.nasa.jpl.cae.magicdraw.mdk/docbook-xsl/fo/mdk-default.xsl b/src/main/dist/plugins/org.openmbee.mdk/docbook-xsl/fo/mdk-default.xsl
similarity index 100%
rename from src/main/dist/plugins/gov.nasa.jpl.cae.magicdraw.mdk/docbook-xsl/fo/mdk-default.xsl
rename to src/main/dist/plugins/org.openmbee.mdk/docbook-xsl/fo/mdk-default.xsl
diff --git a/src/main/dist/plugins/gov.nasa.jpl.cae.magicdraw.mdk/mandatory.profiles b/src/main/dist/plugins/org.openmbee.mdk/mandatory.profiles
similarity index 100%
rename from src/main/dist/plugins/gov.nasa.jpl.cae.magicdraw.mdk/mandatory.profiles
rename to src/main/dist/plugins/org.openmbee.mdk/mandatory.profiles
diff --git a/src/main/dist/profiles/SysML Extensions.mdxml b/src/main/dist/profiles/SysML Extensions.mdxml
index cfd945104..360e6370c 100644
--- a/src/main/dist/profiles/SysML Extensions.mdxml
+++ b/src/main/dist/profiles/SysML Extensions.mdxml
@@ -1,35 +1,30 @@
-
-
-
+
+
MagicDraw UML
- 19.0 v9
+ 2022x v7
-
+
-
-
-
+
+
+
-
-
MagicDraw UML
- 19.0 v9
+ 2022x v7
-
-
-
+
+
+
-
-
@@ -37,63 +32,66 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
_18_5_2_8bf0285_1506036581728_178502_16023
_18_5_2_8bf0285_1506035907394_170856_16003
_18_5_2_8bf0285_1506035893424_581849_16000
@@ -106,6 +104,7 @@
_17_0_5_1_407019f_1431903739087_549326_12013
_18_5_2_8bf0285_1506035630039_111915_15943
_18_0_2_407019f_1435683487667_494971_14412
+ _17_0_5_1_407019f_1430628376067_525763_12104
_18_5_2_8bf0285_1506035931938_310479_16009
_17_0_5_1_407019f_1430628178633_708586_11903
_17_0_5_1_407019f_1431903724067_825986_11992
@@ -118,6 +117,8 @@
_17_0_5_1_407019f_1431903782715_816930_12086
_17_0_5_1_407019f_1431905056867_399626_12014
_17_0_5_1_407019f_1430628190151_363897_11927
+ _17_0_5_1_407019f_1431903785758_545971_12087
+ _17_0_5_1_407019f_1430628276506_565_12080
_17_0_5_1_407019f_1430628230072_232804_12027
_17_0_5_1_407019f_1431903748021_2367_12034
_17_0_5_1_407019f_1431903779059_24627_12083
@@ -144,7 +145,7 @@
-
+
@@ -153,14 +154,14 @@
-
+
-
+
@@ -195,939 +196,1145 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
_17_0_2_3_407019f_1377881373451_410611_29880
- _17_0_2_3_eac0346_1374702049717_940561_29326
_17_0_2_3_407019f_1383246733266_643367_29111
- _17_0_2_3_407019f_1392933512037_923374_29116
_18_5_2_8bf0285_1506039168694_68950_16012
- _17_0_2_3_407019f_1390932205525_919663_29081
+ _17_0_2_3_407019f_1392933512037_923374_29116
_17_0_1_244d03ea_1319516813259_299492_31607
- _17_0_2_3_407019f_1375478227338_916532_29448
- _17_0_3_22b603cd_1326013013139_878806_22722
+ _17_0_2_3_407019f_1390932205525_919663_29081
+ _17_0_1_407019f_1326234755273_224421_2268
_17_0_2_3_407019f_1390932208567_859381_29082
- _17_0_1_407019f_1328144867002_496707_11648
_17_0_1_244d03ea_1319496233783_891814_25444
- _17_0_1_407019f_1326234773085_987220_2353
- _18_0_5_407019f_1470005737807_510670_14136
+ _17_0_2_3_f4a035d_1366702935947_453687_36949
_18_5_8bf0285_1486510206488_641014_16435
- _18_0_5_ef50357_1480453674805_247681_14020
_17_0_2_3_e9f034d_1382549095816_841656_29288
- _17_0_5_407019f_1334874009778_450293_11887
_17_0_1_244d03ea_1319493472012_280032_25174
- _17_0_1_244d03ea_1319496295123_976570_25549
_17_0_2_3_407019f_1389807646468_407004_29083
- _17_0_1_244d03ea_1319496233783_863507_25446
- _17_0_2_3_407019f_1375478202124_54078_29442
_17_0_2_3_407019f_1375478106241_179073_29432
- _17_0_1_244d03ea_1319498271382_366209_27127
+ _17_0_1_407019f_1326234755276_362534_2273
_17_0_1_244d03ea_1319512585316_739002_28257
- _18_0_5_407019f_1470005595314_374414_14088
_18_5_8bf0285_1486492425321_148190_16541
- _17_0_1_244d03ea_1319496835940_687265_26332
- _17_0_2_3_407019f_1377881290425_771645_29850
- _17_0_1_244d03ea_1319496693539_401734_26113
- _18_5_8bf0285_1486510206488_462142_16437
- _17_0_2_3_eac0346_1374702126549_860105_29341
- _17_0_2_3_e9f034d_1373577520335_451309_31082
_17_0_2_3_407019f_1377881450967_321942_29897
+ _17_0_1_244d03ea_1319514860754_370691_31131
_17_0_1_407019f_1328144847825_676498_11638
- _17_0_2_3_407019f_1378759110375_633756_31132
- _17_0_2_3_e9f034d_1375474838719_217024_29345
_17_0_2_3_407019f_1392933512039_771243_29122
- _17_0_1_244d03ea_1319496665600_810517_26084
- _17_0_1_407019f_1326234773085_565198_2352
_18_0_5_ef50357_1480453603004_463545_13967
- _18_5_8bf0285_1486510206491_742294_16442
+ _17_0_1_244d03ea_1319495903697_356474_25334
_17_0_2_3_407019f_1375478223072_685520_29445
_18_5_2_8bf0285_1506039168695_291021_16018
_17_0_3_407019f_1329678829423_78858_11652
_17_0_2_3_eac0346_1374702126547_776675_29336
- _17_0_3_22b603cd_1325896779557_865472_22501
_17_0_2_3_e9f034d_1375474838726_523216_29350
+ _17_0_1_244d03ea_1319514876751_940503_31152
_17_0_1_244d03ea_1319496835940_17359_26334
- _18_5_8bf0285_1486490948776_422870_16475
- _17_0_1_244d03ea_1319514988149_226239_31222
_9_0_62a020a_1106296071977_61607_0
_17_0_2_3_e9f034d_1375474838729_503082_29353
- _18_0_5_ef50357_1480453603006_162044_13974
_17_0_1_244d03ea_1319497038087_667818_26464
- _17_0_1_244d03ea_1319497038087_604382_26466
- _17_0_5_407019f_1335308485024_999466_11880
+ _17_0_2_3_f4a035d_1366647903994_494629_36996
_17_0_1_244d03ea_1319516848749_913766_31670
_17_0_2_3_407019f_1377881371027_185659_29877
_17_0_2_3_e9f034d_1373577520332_910341_31078
_9_0_62a020a_1105704887225_574298_8173
- _9_0_62a020a_1105704885833_713624_8075
_17_0_2_3_e9f034d_1382549098028_492236_29291
_18_5_8bf0285_1486510206488_993202_16436
+ _17_0_1_244d03ea_1319496625815_610409_26001
_17_0_1_244d03ea_1319498271382_869989_27128
- _17_0_1_407019f_1326235099262_893723_2566
- _17_0_2_3_407019f_1375477713740_36541_29375
- _17_0_1_407019f_1327621598097_74626_11636
+ _17_0_1_407019f_1326235066489_400410_2500
_16_5_4_409a058d_1259864884296_446961_1782
- _17_0_3_22b603cd_1326012963243_350261_22698
- _17_0_2_3_e9f034d_1373577520335_585836_31083
- _17_0_1_244d03ea_1319514828651_961828_31094
- _17_0_1_244d03ea_1319497038087_410574_26465
+ _17_0_1_407019f_1327621598097_74626_11636
+ _18_0_5_ef50357_1480453687183_315493_14026
_17_0_1_244d03ea_1319496312176_430718_25614
- _17_0_2_3_407019f_1380044908011_537162_29414
_18_5_8bf0285_1486492425321_296470_16542
- _17_0_2_3_407019f_1375477706302_957614_29351
+ _17_0_2_3_407019f_1380044908011_537162_29414
_9_0_62a020a_1105704892254_121736_8466
_17_0_3_407019f_1329678743490_51101_11560
_17_0_2_3_407019f_1383246733249_213230_29103
- _17_0_1_244d03ea_1319496288568_378090_25516
- _17_0_1_407019f_1327621532316_185916_11611
- _17_0_1_407019f_1326235099261_958590_2562
_17_0_2_3_e9f034d_1375474838729_92695_29354
- _17_0_1_244d03ea_1319496233783_13985_25445
+ _17_0_1_407019f_1326235099261_958590_2562
_17_0_1_2_8c20286_1339091178652_286852_26957
_17_0_2_3_e9f034d_1375474838729_330264_29355
- _17_0_2_3_407019f_1377881450967_816749_29896
- _17_0_2_3_407019f_1377881439143_676247_29890
- _18_5_8bf0285_1486492425323_722985_16547
_17_0_5_407019f_1336584917813_438410_11929
+ _18_0_5_ef50357_1480453674806_394165_14024
_18_0_5_ef50357_1480453603004_952878_13968
_17_0_2_3_407019f_1392933512037_415245_29117
- _18_5_2_8bf0285_1506039168694_658017_16013
- _17_0_2_3_407019f_1375477706303_198937_29353
- _17_0_2_3_e9f034d_1382549108492_500346_29312
- _17_0_2_3_407019f_1380044930714_40003_29445
+ _18_0_5_407019f_1470005635293_749336_14127
+ _17_0_1_407019f_1326235066487_846022_2496
_17_0_1_244d03ea_1319516814842_658446_31610
_17_0_5_407019f_1334874009783_997482_11893
- _17_0_1_407019f_1328144847813_140393_11635
- _17_0_5_407019f_1336584917813_567345_11931
- _17_0_1_244d03ea_1319496312176_499348_25613
_18_5_8bf0285_1486492425321_446573_16540
- _17_0_1_407019f_1326235099261_393831_2561
_17_0_1_244d03ea_1319496238109_947614_25479
_17_0_1_244d03ea_1319515001443_901885_31224
_17_0_1_244d03ea_1319498260925_536510_27086
_17_0_1_244d03ea_1319512564304_251824_28229
- _17_0_1_407019f_1326235066484_404532_2489
_17_0_1_244d03ea_1319496687615_668363_26110
+ _17_0_1_407019f_1326235066484_404532_2489
+ _17_0_1_244d03ea_1319498532455_647891_27265
_17_0_1_244d03ea_1319496304695_54141_25572
- _17_0_1_244d03ea_1319512607076_848629_28263
- _17_0_1_407019f_1327621532316_883433_11610
- _17_0_2_3_407019f_1380044930711_467480_29441
- _17_0_2_3_407019f_1392933512040_977582_29126
- _18_5_2_8bf0285_1506039168696_419327_16023
_17_0_1_407019f_1326153204004_566419_2514
- _18_0_5_407019f_1470005603104_831813_14122
+ _17_0_2_3_407019f_1392933512040_977582_29126
_17_0_3_22b603cd_1326013082413_375760_22729
_17_0_1_244d03ea_1319496312169_748809_25611
_17_0_1_244d03ea_1319498271382_829478_27129
_17_0_1_407019f_1326234773085_445042_2351
- _17_0_1_244d03ea_1319498271375_801303_27126
_18_5_2_8bf0285_1506039168695_447119_16016
- _17_0_1_244d03ea_1319512568693_523605_28231
- _16_5_4_409a058d_1259862803278_226185_1083
- _18_0_5_407019f_1470005603104_746679_14123
- _17_0_1_244d03ea_1319514914602_248164_31192
+ _17_0_2_1_407019f_1357760760469_155614_13104
+ _17_0_2_3_87b0275_1371477411201_520371_42976
_17_0_2_3_407019f_1392933512027_567203_29113
- _17_0_1_244d03ea_1319496693539_60960_26112
- _17_0_1_407019f_1326153204004_455293_2515
- _17_0_1_244d03ea_1319496084592_994459_25379
- _9_0_62a020a_1105704885298_713292_7913
_17_0_1_244d03ea_1319516814842_266085_31609
- _17_0_1_244d03ea_1319496238109_97350_25477
_9_0_62a020a_1105704884807_371561_7741
- _17_0_2_3_e9f034d_1373577520336_897648_31084
- _17_0_2_3_407019f_1375478106239_201227_29427
+ _17_0_1_407019f_1331570545905_777142_11931
_17_0_2_407019f_1354126829683_118515_12923
- _17_0_1_244d03ea_1319491352350_961728_23579
- _18_5_8bf0285_1486492425323_723449_16546
_17_0_1_244d03ea_1319497189592_990918_26673
- _9_0_62a020a_1105704884514_638424_7612
- _17_0_2_3_407019f_1377881460838_39713_29901
- _17_0_1_244d03ea_1319498260924_675941_27085
_17_0_1_244d03ea_1319496709515_593681_26154
- _17_0_2_407019f_1354126829684_820035_12925
_17_0_5_407019f_1335308482553_137522_11876
_17_0_1_244d03ea_1319496312176_854642_25612
- _17_0_3_22b603cd_1326012963243_738582_22697
_17_0_5_407019f_1334874009783_109186_11892
- _17_0_2_3_407019f_1377881439143_157788_29892
- _17_0_2_3_407019f_1392933505529_270043_29089
+ _17_0_3_22b603cd_1326012963243_738582_22697
_17_0_2_3_e9f034d_1382560412655_837255_29281
_17_0_2_3_407019f_1383246733263_81752_29106
_17_0_1_407019f_1326235099262_113219_2568
_17_0_2_3_e9f034d_1373577520321_53029_31075
_17_0_2_3_407019f_1380044930701_741076_29438
_17_0_3_407019f_1329678741569_858131_11557
- _9_0_62a020a_1105704928546_39588_9532
+ _18_0_5_ef50357_1485560463958_403837_14222
_17_0_1_407019f_1327621532316_184898_11612
- _17_0_1_244d03ea_1319496835940_526569_26333
- _17_0_5_407019f_1334874009778_557893_11888
- _17_0_1_244d03ea_1319512568693_818742_28232
_17_0_2_3_407019f_1377881425878_31757_29886
- _17_0_3_22b603cd_1326012955130_890985_22694
_17_0_2_3_eac0346_1374702126547_877763_29338
- _17_0_1_407019f_1320688868391_878682_2122
- _17_0_2_3_e9f034d_1382549098027_212301_29289
_17_0_2_3_407019f_1380044930714_486059_29446
- _18_0_5_407019f_1470005603102_708805_14119
_17_0_1_244d03ea_1319496709522_900445_26156
- _17_0_1_407019f_1328144867013_420389_11649
- _17_0_5_407019f_1336584908958_73996_11925
+ _17_0_2_3_8660276_1401389132922_411813_29178
_17_0_2_3_e9f034d_1372790075630_9841_29706
- _17_0_2_3_e9f034d_1372790075630_658047_29704
+ _18_0_5_ef50357_1480453674806_404335_14021
_17_0_2_3_407019f_1383246733266_658390_29112
_17_0_1_244d03ea_1319498258297_961829_27083
- _18_0_5_ef50357_1480453603006_178485_13973
- _17_0_2_3_eac0346_1374701945748_238477_29309
+ _17_0_1_407019f_1326235066488_994225_2498
_17_0_2_3_e9f034d_1382560431740_484428_29302
- _17_0_1_407019f_1326234773082_787014_2348
+ _17_0_2_3_f4a035d_1366698987711_498852_36951
+ _17_0_2_3_f4a035d_1366647903995_652492_37000
+ _17_0_2_3_eac0346_1374701945748_238477_29309
_9_0_62a020a_1105704941426_574917_9666
_18_0_5_407019f_1470005603095_374722_14116
_17_0_2_407019f_1354126829684_408278_12924
_17_0_1_244d03ea_1319496238102_558482_25476
_17_0_2_3_eac0346_1374702049712_250078_29317
- _17_0_1_244d03ea_1319493472012_855164_25176
- _17_0_1_244d03ea_1319512585316_174737_28258
_9_0_62a020a_1105704892095_330690_8434
- _9_0_62a020a_1105704885754_51496_8051
_17_0_2_3_407019f_1383246733264_946317_29107
_18_0_5_ef50357_1480453603005_261885_13969
- _17_0_5_407019f_1336584891327_98670_11922
_17_0_2_3_eac0346_1374702049717_220319_29325
- _17_0_2_3_407019f_1392933512039_754667_29121
_17_0_1_407019f_1327621530191_464577_11609
- _17_0_2_3_eac0346_1374702049715_433117_29321
_18_0_5_407019f_1470005603102_898362_14117
- _17_0_1_407019f_1326153232164_272985_2519
- _17_0_2_3_407019f_1375478079564_152907_29404
_17_0_3_407019f_1329678743490_712733_11559
- _17_0_1_244d03ea_1319493455798_725597_25146
- _17_0_2_3_407019f_1377881439143_824966_29891
- _17_0_2_3_407019f_1375478106241_129625_29433
_17_0_1_407019f_1326235099262_630577_2567
+ _17_0_2_3_407019f_1375478106241_129625_29433
_17_0_2_3_407019f_1383246769115_164209_29116
- _17_0_1_244d03ea_1319496563016_568238_25892
- _17_0_2_3_e9f034d_1382549098027_14346_29290
- _18_5_8bf0285_1486510206491_273199_16441
_17_0_5_407019f_1334874009778_283707_11889
- _17_0_1_244d03ea_1319515001442_538029_31223
_17_0_2_3_407019f_1377881375839_429998_29883
- _18_5_2_8bf0285_1506039168695_655231_16017
_18_5_2_8bf0285_1506039168694_265871_16011
- _17_0_1_244d03ea_1319496304695_359169_25571
_16_5_4_409a058d_1259864884296_790671_1783
- _17_0_2_3_eac0346_1374702049712_124794_29316
_9_0_62a020a_1105704885195_432731_7879
_17_0_1_244d03ea_1319512568693_956000_28230
_17_0_1_244d03ea_1319493460411_655158_25149
- _17_0_1_244d03ea_1319496714544_994648_26172
_17_0_2_3_eac0346_1374702049712_81697_29315
_17_0_1_244d03ea_1319496288568_47981_25517
- _17_0_1_244d03ea_1319496238109_814851_25478
+ _17_0_1_407019f_1326235066488_640475_2497
_17_0_2_3_407019f_1377881460838_601248_29902
- _17_0_1_244d03ea_1319496719922_3626_26188
+ _17_0_2_1_407019f_1357754545372_515246_12946
_17_0_3_22b603cd_1326013089535_666900_22731
- _17_0_2_3_407019f_1392933512037_696355_29115
- _17_0_1_244d03ea_1319515001443_631603_31225
- _17_0_1_2_8c20286_1339091178652_405772_26956
+ _17_0_1_244d03ea_1319496719922_3626_26188
_17_0_5_407019f_1334874009783_416564_11894
_17_0_5_407019f_1335308485023_675971_11879
- _18_5_8bf0285_1486492425322_898073_16545
- _17_0_1_244d03ea_1319497203139_861238_26699
- _17_0_1_244d03ea_1319496565916_576532_25895
- _17_0_2_3_407019f_1392933512040_305402_29125
_17_0_5_407019f_1336584917813_259656_11930
+ _17_0_1_244d03ea_1319496565916_576532_25895
+ _17_0_1_407019f_1326235066485_627132_2492
_17_0_1_244d03ea_1319493460411_596156_25147
- _17_0_1_407019f_1326153204004_96727_2516
_17_0_2_3_407019f_1375477706302_173194_29352
_17_0_1_244d03ea_1319512585316_247404_28256
- _17_0_1_407019f_1326234773082_325541_2347
- _17_0_1_407019f_1328144867013_17561_11650
+ _18_5_3_8bf0285_1521068949448_770737_15757
_17_0_2_3_407019f_1383246724224_41450_29079
- _17_0_2_3_e9f034d_1372790075630_59498_29705
+ _18_5_2_8bf0285_1506039168692_328263_16005
_17_0_1_407019f_1326235099254_490080_2560
_17_0_2_3_407019f_1375478106241_132835_29434
_17_0_2_3_407019f_1392933512039_598537_29120
_17_0_1_407019f_1326234773082_952618_2346
_17_0_2_3_407019f_1390932208568_204488_29084
- _17_0_1_407019f_1326234773070_188221_2345
- _17_0_1_244d03ea_1319496618788_376560_25968
- _18_0_5_ef50357_1480453603005_611488_13971
_18_5_2_8bf0285_1506039168690_925234_16001
- _17_0_2_3_8660276_1401389256052_913526_29184
- _17_0_1_244d03ea_1319498260924_604730_27084
_17_0_2_3_407019f_1375477696989_696093_29350
- _17_0_1_2_8c20286_1339091178652_692897_26954
- _18_5_8bf0285_1486510206491_471327_16440
- _17_0_1_244d03ea_1319496304695_118206_25573
- _17_0_1_244d03ea_1319496302084_771803_25570
- _17_0_1_244d03ea_1319496225382_275996_25443
- _17_0_1_407019f_1328144768208_151103_11611
- _17_0_1_244d03ea_1319512585310_48515_28251
- _17_0_1_407019f_1326153232164_735336_2520
- _18_5_8bf0285_1486490375961_643681_16463
+ _17_0_2_3_eac0346_1374702167791_45754_29347
+ _17_0_2_407019f_1354126842407_376731_12945
+ _17_0_2_3_87b0275_1371477411203_989239_42981
+ _18_5_3_8bf0285_1521068930329_710374_15756
+ _17_0_2_3_f4a035d_1366647903996_970714_37001
_17_0_1_244d03ea_1319496280368_246829_25514
- _18_5_2_8bf0285_1506039168696_317841_16022
_17_0_1_244d03ea_1319493460411_633293_25148
- _17_0_2_3_407019f_1389807639137_860750_29082
- _17_0_2_3_407019f_1383246733263_43243_29105
_17_0_2_3_407019f_1375477713739_521188_29373
- _17_0_1_244d03ea_1319496288568_322393_25515
_17_0_1_244d03ea_1319496295129_723858_25550
- _17_0_1_407019f_1326234755270_757726_2266
- _17_0_2_3_407019f_1390932234015_358101_29107
+ _18_0_5_ef50357_1480453674806_579987_14022
+ _17_0_1_244d03ea_1319496288568_322393_25515
_9_0_62a020a_1105704885343_144138_7929
+ _17_0_2_3_407019f_1390932234015_358101_29107
_17_0_2_3_407019f_1389807646469_994361_29085
- _17_0_2_3_eac0346_1374702049715_898088_29320
_17_0_2_3_407019f_1380044930711_926311_29442
- _17_0_1_244d03ea_1319497033271_468321_26463
- _17_0_1_244d03ea_1319497092672_229725_26554
+ _17_0_2_3_eac0346_1374702049715_898088_29320
_18_0_6_8bf0285_1472249392051_308169_13999
- _17_0_1_244d03ea_1319512585310_502966_28253
- _17_0_1_244d03ea_1319496565916_225942_25894
- _17_0_1_244d03ea_1319497198660_178943_26686
_17_0_5_407019f_1335308712374_646661_11921
- _17_0_1_244d03ea_1319496693539_807750_26111
- _17_0_2_3_e9f034d_1373577520332_852159_31077
+ _17_0_1_407019f_1326235066486_18523_2494
+ _17_0_2_3_407019f_1381769070509_353816_29443
_17_0_1_407019f_1326153203989_998077_2508
_18_0_5_407019f_1470005603104_372096_14124
- _17_0_2_3_eac0346_1374702066208_763130_29330
_17_0_5_407019f_1336584908958_126478_11924
_17_0_1_244d03ea_1319496709522_874654_26155
+ _17_0_1_407019f_1326234755274_851122_2269
_17_0_3_22b603cd_1326012963242_711573_22696
- _17_0_2_3_eac0346_1374702126547_503609_29337
+ _17_0_1_244d03ea_1319514851492_96390_31122
_17_0_2_3_eac0346_1374702049717_223802_29327
_17_0_1_244d03ea_1319496615380_995165_25965
_17_0_5_407019f_1334873987130_64195_11860
- _17_0_2_3_407019f_1383246733266_596420_29110
- _17_0_1_244d03ea_1319514828651_13339_31092
_17_0_1_407019f_1328144867013_732158_11651
+ _17_0_2_3_407019f_1383246733266_596420_29110
+ _17_0_2_3_e9f034d_1375464942934_241960_29357
_17_0_2_3_eac0346_1374702126550_494525_29343
_17_0_2_3_407019f_1390932208568_284045_29083
_17_0_2_3_e9f034d_1382560412655_911249_29282
- _17_0_2_3_e9f034d_1382560431740_358199_29304
_17_0_2_3_407019f_1377881425878_359106_29887
_18_5_2_8bf0285_1506039168696_878415_16021
+ _18_0_5_ef50357_1485560463959_827350_14223
_17_0_2_3_407019f_1378759110375_923842_31134
- _17_0_1_244d03ea_1319496618788_106009_25967
+ _17_0_5_407019f_1335308503717_13286_11899
+ _17_0_1_244d03ea_1319497045132_870775_26499
_17_0_3_22b603cd_1326013089535_41978_22733
- _17_0_2_3_e9f034d_1382560401073_180081_29279
- _17_0_1_244d03ea_1319496295130_38629_25552
_17_0_2_3_407019f_1377881460838_569191_29900
_17_0_2_3_407019f_1375478106239_622591_29428
- _17_0_2_3_407019f_1375477713739_349979_29374
_17_0_2_3_407019f_1377881278282_546944_29826
- _17_0_2_3_eac0346_1374702562548_986805_29538
- _17_0_2_3_407019f_1375478106239_63614_29429
- _17_0_2_3_407019f_1377881450967_159344_29895
_17_0_2_3_87b0275_1371477871400_792964_43374
- _17_0_2_3_407019f_1380044930711_189206_29440
_17_0_2_3_407019f_1378759110375_200332_31133
- _16_5_4_409a058d_1259864884295_35030_1781
- _17_0_5_407019f_1336584908958_692658_11926
- _17_0_1_244d03ea_1319496709523_275146_26157
- _17_0_5_407019f_1334874009766_186141_11885
+ _17_0_2_407019f_1354126883459_812675_12969
_17_0_3_407019f_1329678743490_253528_11561
- _17_0_2_3_eac0346_1374702049715_478326_29322
- _18_0_5_ef50357_1480453603005_276326_13972
+ _18_0_5_ef50357_1480453674806_233962_14023
_17_0_2_3_407019f_1377881267910_878293_29802
- _17_0_1_2_8c20286_1339091178652_646086_26955
- _17_0_2_3_407019f_1380044930714_229509_29447
+ _17_0_1_407019f_1334700528349_622231_11957
_17_0_1_244d03ea_1319497080824_236032_26529
_17_0_2_3_e9f034d_1373577520333_580351_31079
- _17_0_2_3_e9f034d_1382560431740_397788_29303
- _17_0_2_3_e9f034d_1375474838726_538471_29349
- _17_0_2_407019f_1354126823633_971278_12922
- _17_0_2_3_407019f_1377881425877_607205_29885
+ _18_0_5_407019f_1470005650600_819515_14129
_18_0_6_8bf0285_1480702282066_678566_13974
- _17_0_1_244d03ea_1319496324253_676532_25648
_17_0_3_22b603cd_1326013089535_539403_22732
- _17_0_2_3_e9f034d_1382560412655_870726_29280
_17_0_5_407019f_1335308485023_327846_11878
_17_0_2_3_e9f034d_1375474838726_909126_29348
- _17_0_1_244d03ea_1319496565916_484509_25893
- _17_0_2_3_407019f_1389807646468_897613_29084
_17_0_1_244d03ea_1319493472012_591512_25175
- _18_5_8bf0285_1486490977174_333662_16507
+ _17_0_2_3_f4a035d_1366647903992_193657_36992
_17_0_1_407019f_1328144847825_867437_11637
_17_0_1_407019f_1326235099261_887181_2563
_17_0_1_244d03ea_1319496618788_59915_25966
- _17_0_2_3_407019f_1392933512041_320116_29127
_17_0_1_244d03ea_1319514825599_941543_31091
_17_0_5_407019f_1336584858932_290814_11897
- _17_0_1_407019f_1326153232165_420439_2521
_17_0_1_244d03ea_1319496295129_865881_25551
- _17_0_2_407019f_1354126877485_998642_12949
- _17_0_1_244d03ea_1319516814842_914_31608
- _18_5_2_8bf0285_1506039345282_469784_16241
_17_0_1_407019f_1326996604350_494231_11646
- _18_0_5_407019f_1470005603102_359032_14118
- _17_0_2_3_eac0346_1374702126549_195909_29342
- _17_0_1_407019f_1328144847825_834125_11636
+ _18_0_2_407019f_1446851501517_190337_14411
_17_0_1_244d03ea_1319512585310_846498_28252
- _18_0_5_ef50357_1480453603002_831462_13966
_17_0_1_244d03ea_1319514828651_870714_31093
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ _17_0_2_3_f4a035d_1366696484320_980107_36953
+ _17_0_2_3_eac0346_1374702049717_940561_29326
+ _17_0_2_3_407019f_1375478227338_916532_29448
+ _17_0_3_22b603cd_1326013013139_878806_22722
+ _17_0_1_407019f_1328144867002_496707_11648
+ _17_0_1_407019f_1326234755277_954076_2275
+ _17_0_1_407019f_1326234773085_987220_2353
+ _17_0_1_407019f_1326234755277_694672_2274
+ _18_0_5_407019f_1470005737807_510670_14136
+ _18_0_5_ef50357_1480453674805_247681_14020
+ _17_0_5_407019f_1334874009778_450293_11887
+ _17_0_1_244d03ea_1319496295123_976570_25549
+ _17_0_2_3_407019f_1375478202124_54078_29442
+ _17_0_1_244d03ea_1319496233783_863507_25446
+ _18_5_8bf0285_1486490961201_53583_16502
+ _17_0_2_3_f4a035d_1366647903994_370992_36997
+ _17_0_1_244d03ea_1319498271382_366209_27127
+ _18_0_5_407019f_1470005595314_374414_14088
+ _17_0_1_244d03ea_1319496835940_687265_26332
+ _17_0_2_3_407019f_1377881290425_771645_29850
+ _17_0_3_22b603cd_1326013162594_947_22756
+ _17_0_1_244d03ea_1319496693539_401734_26113
+ _18_5_8bf0285_1486510206488_462142_16437
+ _17_0_2_3_eac0346_1374702126549_860105_29341
+ _17_0_2_3_e9f034d_1373577520335_451309_31082
+ _17_0_2_3_407019f_1378759110375_633756_31132
+ _17_0_2_3_e9f034d_1375474838719_217024_29345
+ _17_0_1_407019f_1326234773085_565198_2352
+ _17_0_1_244d03ea_1319496665600_810517_26084
+ _18_5_8bf0285_1486510206491_742294_16442
+ _17_0_3_22b603cd_1325896779557_865472_22501
+ _18_5_3_8bf0285_1521068918012_137789_15755
+ _17_0_1_244d03ea_1319498562372_562863_27284
+ _18_5_8bf0285_1486490948776_422870_16475
+ _17_0_1_244d03ea_1319514988149_226239_31222
+ _17_0_2_3_f4a035d_1366937144204_212191_29388
+ _18_0_5_ef50357_1480453603006_162044_13974
+ _17_0_1_244d03ea_1319497038087_604382_26466
+ _17_0_5_407019f_1335308485024_999466_11880
+ _17_0_1_407019f_1326234755278_335501_2277
+ _9_0_62a020a_1105704885833_713624_8075
+ _17_0_1_407019f_1326235099262_893723_2566
+ _17_0_2_3_e9f034d_1375464993159_319060_29362
+ _17_0_2_3_407019f_1375477713740_36541_29375
+ _17_0_3_22b603cd_1326012963243_350261_22698
+ _17_0_2_3_e9f034d_1373577520335_585836_31083
+ _17_0_1_244d03ea_1319514828651_961828_31094
+ _17_0_1_244d03ea_1319497038087_410574_26465
+ _17_0_5_1_407019f_1413747341255_264237_15529
+ _17_0_2_3_407019f_1375477706302_957614_29351
+ _17_0_1_407019f_1327621532316_185916_11611
+ _17_0_1_244d03ea_1319496288568_378090_25516
+ _17_0_1_407019f_1331570531889_7475_11919
+ _17_0_1_244d03ea_1319496233783_13985_25445
+ _17_0_2_3_407019f_1377881450967_816749_29896
+ _18_5_3_8bf0285_1521068910983_593804_15754
+ _17_0_2_3_407019f_1377881439143_676247_29890
+ _18_5_8bf0285_1486492425323_722985_16547
+ _18_5_2_8bf0285_1506039168694_658017_16013
+ _17_0_2_3_407019f_1390932221980_272368_29104
+ _17_0_2_3_e9f034d_1382549108492_500346_29312
+ _17_0_2_3_407019f_1375477706303_198937_29353
+ _17_0_2_3_407019f_1380044930714_40003_29445
+ _17_0_1_407019f_1328144847813_140393_11635
+ _17_0_5_407019f_1336584917813_567345_11931
+ _17_0_1_244d03ea_1319496312176_499348_25613
+ _17_0_1_407019f_1326235066485_606466_2491
+ _17_0_1_407019f_1326235099261_393831_2561
+ _18_0_2_8bf0285_1437433621496_656152_14293
+ _17_0_2_3_f4a035d_1366647903992_983742_36991
+ _17_0_1_244d03ea_1319512607076_848629_28263
+ _17_0_2_3_407019f_1380044930711_467480_29441
+ _17_0_1_407019f_1327621532316_883433_11610
+ _18_5_2_8bf0285_1506039168696_419327_16023
+ _18_0_5_407019f_1470005603104_831813_14122
+ _18_5_2_8bf0285_1506039168691_616880_16003
+ _17_0_1_244d03ea_1319498271375_801303_27126
+ _17_0_1_244d03ea_1319512568693_523605_28231
+ _16_5_4_409a058d_1259862803278_226185_1083
+ _18_0_5_407019f_1470005603104_746679_14123
+ _17_0_1_244d03ea_1319514914602_248164_31192
+ _17_0_2_407019f_1354126880450_542569_12967
+ _17_0_1_244d03ea_1319496693539_60960_26112
+ _17_0_1_407019f_1326153204004_455293_2515
+ _17_0_1_244d03ea_1319496084592_994459_25379
+ _9_0_62a020a_1105704885298_713292_7913
+ _17_0_2_3_f4a035d_1366647903995_864529_36998
+ _17_0_1_244d03ea_1319496238109_97350_25477
+ _17_0_2_3_e9f034d_1373577520336_897648_31084
+ _17_0_2_3_407019f_1375478106239_201227_29427
+ _17_0_1_244d03ea_1319491352350_961728_23579
+ _18_5_8bf0285_1486492425323_723449_16546
+ _17_0_3_22b603cd_1325918544882_866233_22682
+ _9_0_62a020a_1105704884514_638424_7612
+ _17_0_2_3_407019f_1377881460838_39713_29901
+ _17_0_1_407019f_1326235066487_103440_2495
+ _17_0_1_244d03ea_1319498260924_675941_27085
+ _17_0_2_407019f_1354126829684_820035_12925
+ _17_0_1_244d03ea_1319516821801_563713_31643
+ _17_0_2_3_407019f_1377881439143_157788_29892
+ _17_0_2_3_407019f_1392933505529_270043_29089
+ _17_0_1_244d03ea_1319496582372_985703_25940
+ _9_0_62a020a_1105704928546_39588_9532
+ _17_0_1_244d03ea_1319498309923_639732_27207
+ _17_0_1_244d03ea_1319496835940_526569_26333
+ _17_0_5_407019f_1337877398021_833589_12407
+ _17_0_5_407019f_1334874009778_557893_11888
+ _17_0_1_244d03ea_1319512568693_818742_28232
+ _17_0_1_407019f_1320688868391_878682_2122
+ _17_0_3_22b603cd_1326012955130_890985_22694
+ _17_0_2_3_e9f034d_1382549098027_212301_29289
+ _18_0_5_407019f_1470005603102_708805_14119
+ _17_0_1_407019f_1328144867013_420389_11649
+ _17_0_5_407019f_1336584908958_73996_11925
+ _17_0_2_3_e9f034d_1372790075630_658047_29704
+ _18_0_5_ef50357_1480453603006_178485_13973
+ _17_0_1_407019f_1326234773082_787014_2348
+ _17_0_1_244d03ea_1319493472012_855164_25176
+ _17_0_1_244d03ea_1319512585316_174737_28258
+ _9_0_62a020a_1105704885754_51496_8051
+ _17_0_3_22b603cd_1326013151393_974295_22752
+ _17_0_5_407019f_1336584891327_98670_11922
+ _17_0_2_3_407019f_1401407642590_25314_29093
+ _17_0_2_3_407019f_1392933512039_754667_29121
+ _17_0_2_3_eac0346_1374702049715_433117_29321
+ _17_0_1_407019f_1326153232164_272985_2519
+ _17_0_2_3_407019f_1375478079564_152907_29404
+ _17_0_1_244d03ea_1319493455798_725597_25146
+ _17_0_2_3_407019f_1377881439143_824966_29891
+ _18_5_3_8bf0285_1521153033339_174845_15754
+ _17_0_1_244d03ea_1319496563016_568238_25892
+ _17_0_2_3_e9f034d_1382549098027_14346_29290
+ _18_5_8bf0285_1486510206491_273199_16441
+ _17_0_1_244d03ea_1319515001442_538029_31223
+ _18_5_2_8bf0285_1506039168695_655231_16017
+ _17_0_1_244d03ea_1319496304695_359169_25571
+ _17_0_2_3_eac0346_1374702049712_124794_29316
+ _17_0_1_244d03ea_1319496714544_994648_26172
+ _17_0_1_407019f_1326234755279_555464_2279
+ _17_0_1_244d03ea_1319496238109_814851_25478
+ _17_0_2_3_407019f_1392933512037_696355_29115
+ _17_0_1_2_8c20286_1339091178652_405772_26956
+ _17_0_1_244d03ea_1319515001443_631603_31225
+ _18_5_8bf0285_1486492425322_898073_16545
+ _17_0_1_407019f_1327621560758_727189_11632
+ _17_0_2_3_407019f_1383079906610_910368_29070
+ _17_0_1_244d03ea_1319497203139_861238_26699
+ _17_0_2_3_f4a035d_1366647903995_472834_36999
+ _18_0_5_ef50357_1480453603005_772821_13970
+ _17_0_2_3_e9f034d_1375464914291_213939_29352
+ _17_0_2_3_407019f_1392933512040_305402_29125
+ _17_0_1_407019f_1326234755278_591404_2276
+ _17_0_1_407019f_1326153204004_96727_2516
+ _17_0_1_407019f_1326234773082_325541_2347
+ _17_0_2_3_f4a035d_1366647903994_91751_36995
+ _17_0_1_407019f_1328144867013_17561_11650
+ _17_0_2_3_e9f034d_1372790075630_59498_29705
+ _18_5_3_8bf0285_1535069866470_494431_15912
+ _17_0_1_407019f_1326235066488_662723_2499
+ _17_0_1_407019f_1326234773070_188221_2345
+ _17_0_1_244d03ea_1319496618788_376560_25968
+ _18_0_5_ef50357_1480453603005_611488_13971
+ _17_0_2_3_8660276_1401389256052_913526_29184
+ _17_0_1_244d03ea_1319498260924_604730_27084
+ _17_0_1_2_8c20286_1339091178652_692897_26954
+ _17_0_1_244d03ea_1319515019723_907728_31258
+ _18_5_8bf0285_1486510206491_471327_16440
+ _17_0_1_244d03ea_1319496304695_118206_25573
+ _17_0_1_244d03ea_1319496225382_275996_25443
+ _17_0_1_244d03ea_1319496302084_771803_25570
+ _17_0_2_3_407019f_1383246795200_10396_29118
+ _17_0_1_407019f_1328144768208_151103_11611
+ _17_0_1_244d03ea_1319512585310_48515_28251
+ _17_0_1_407019f_1326153232164_735336_2520
+ _18_5_8bf0285_1486490375961_643681_16463
+ _18_5_2_8bf0285_1506039168696_317841_16022
+ _17_0_2_3_407019f_1389807639137_860750_29082
+ _17_0_2_3_407019f_1383246733263_43243_29105
+ _17_0_1_407019f_1326234755270_757726_2266
+ _17_0_2_3_e9f034d_1375464775176_680884_29346
+ _17_0_1_244d03ea_1319497033271_468321_26463
+ _17_0_1_244d03ea_1319497092672_229725_26554
+ _17_0_2_3_e9f034d_1375474838722_505212_29347
+ _17_0_1_244d03ea_1319512585310_502966_28253
+ _17_0_1_244d03ea_1319497198660_178943_26686
+ _17_0_1_244d03ea_1319496565916_225942_25894
+ _17_0_1_244d03ea_1319496693539_807750_26111
+ _17_0_2_3_e9f034d_1373577520332_852159_31077
+ _17_0_2_3_eac0346_1374702066208_763130_29330
+ _17_0_2_3_eac0346_1374702126547_503609_29337
+ _17_0_1_244d03ea_1319514828651_13339_31092
+ _17_0_2_3_e9f034d_1382560431740_358199_29304
+ _17_0_1_244d03ea_1319496618788_106009_25967
+ _17_0_2_3_e9f034d_1382560401073_180081_29279
+ _17_0_2_3_f4a035d_1366647903993_223705_36993
+ _17_0_1_244d03ea_1319496295130_38629_25552
+ _17_0_1_244d03ea_1319498479438_256574_27245
+ _17_0_2_3_407019f_1375477713739_349979_29374
+ _17_0_2_3_f4a035d_1366647903996_463299_37002
+ _18_5_2_8bf0285_1506039168691_347264_16004
+ _17_0_1_407019f_1326234755279_970927_2278
+ _17_0_2_3_407019f_1375478106239_63614_29429
+ _17_0_2_3_eac0346_1374702562548_986805_29538
+ _17_0_2_3_407019f_1377881450967_159344_29895
+ _17_0_2_3_407019f_1380044930711_189206_29440
+ _17_0_5_407019f_1336584908958_692658_11926
+ _17_0_1_244d03ea_1319496709523_275146_26157
+ _16_5_4_409a058d_1259864884295_35030_1781
+ _17_0_5_407019f_1334874009766_186141_11885
+ _17_0_1_407019f_1326235066486_421222_2493
+ _18_0_5_ef50357_1480453603005_276326_13972
+ _17_0_2_3_eac0346_1374702049715_478326_29322
+ _17_0_1_2_8c20286_1339091178652_646086_26955
+ _17_0_1_244d03ea_1319491372078_972850_23601
+ _17_0_2_3_407019f_1380044930714_229509_29447
+ _17_0_2_3_e9f034d_1382560431740_397788_29303
+ _17_0_2_3_e9f034d_1375474838726_538471_29349
+ _17_0_2_407019f_1354126823633_971278_12922
+ _17_0_2_3_407019f_1377881425877_607205_29885
+ _17_0_2_3_407019f_1375478178682_543537_29439
+ _17_0_1_244d03ea_1319496324253_676532_25648
+ _17_0_3_22b603cd_1326012973531_937458_22717
+ _17_0_2_3_e9f034d_1382560412655_870726_29280
+ _17_0_1_244d03ea_1319496565916_484509_25893
+ _17_0_2_3_407019f_1389807646468_897613_29084
+ _18_5_8bf0285_1486490977174_333662_16507
+ _17_0_2_3_407019f_1392933512041_320116_29127
+ _17_0_1_407019f_1326234755275_446310_2272
+ _17_0_1_244d03ea_1319496098052_976028_25415
+ _17_0_1_407019f_1326153232165_420439_2521
+ _17_0_2_407019f_1354126877485_998642_12949
+ _17_0_1_244d03ea_1319516814842_914_31608
+ _18_5_2_8bf0285_1506039345282_469784_16241
+ _17_0_2_3_eac0346_1374702126549_195909_29342
+ _18_0_5_407019f_1470005603102_359032_14118
+ _17_0_1_407019f_1328144847825_834125_11636
+ _18_0_5_ef50357_1480453603002_831462_13966
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1140,14 +1347,14 @@
-
+
-
+
@@ -1159,7 +1366,7 @@
-
+
@@ -1172,7 +1379,7 @@
-
+
@@ -1186,14 +1393,14 @@
-
+
-
+
@@ -1205,7 +1412,7 @@
-
+
@@ -1218,7 +1425,7 @@
-
+
@@ -1233,14 +1440,14 @@
-
+
-
+
@@ -1252,7 +1459,7 @@
-
+
@@ -1265,7 +1472,7 @@
-
+
@@ -1281,14 +1488,14 @@
-
+
-
+
@@ -1300,7 +1507,7 @@
-
+
@@ -1313,7 +1520,7 @@
-
+
@@ -1331,14 +1538,14 @@
-
+
-
+
@@ -1350,7 +1557,7 @@
-
+
@@ -1363,7 +1570,7 @@
-
+
@@ -1379,14 +1586,14 @@
-
+
-
+
@@ -1398,7 +1605,7 @@
-
+
@@ -1411,7 +1618,7 @@
-
+
@@ -1427,14 +1634,14 @@
-
+
-
+
@@ -1446,7 +1653,7 @@
-
+
@@ -1459,7 +1666,7 @@
-
+
@@ -1475,14 +1682,14 @@
-
+
-
+
@@ -1494,7 +1701,7 @@
-
+
@@ -1507,7 +1714,7 @@
-
+
@@ -1521,14 +1728,14 @@
-
+
-
+
@@ -1541,7 +1748,7 @@
-
+
@@ -1553,7 +1760,7 @@
-
+
@@ -1567,7 +1774,7 @@
-
+
@@ -1579,7 +1786,7 @@
-
+
@@ -1593,7 +1800,7 @@
-
+
@@ -1605,7 +1812,7 @@
-
+
@@ -1618,7 +1825,7 @@
-
+
@@ -1677,7 +1884,7 @@
-
+
@@ -1690,7 +1897,7 @@
-
+
@@ -1704,14 +1911,14 @@
-
+
-
+
@@ -1723,7 +1930,7 @@
-
+
@@ -1736,7 +1943,7 @@
-
+
@@ -1751,14 +1958,14 @@
-
+
-
+
@@ -1770,7 +1977,7 @@
-
+
@@ -1783,7 +1990,7 @@
-
+
@@ -1797,7 +2004,7 @@
-
+
@@ -1809,7 +2016,7 @@
-
+
@@ -1825,14 +2032,14 @@
-
+
-
+
@@ -1844,7 +2051,7 @@
-
+
@@ -1857,7 +2064,7 @@
-
+
@@ -1873,14 +2080,14 @@
-
+
-
+
@@ -1892,7 +2099,7 @@
-
+
@@ -1905,7 +2112,7 @@
-
+
@@ -1921,14 +2128,14 @@
-
+
-
+
@@ -1940,7 +2147,7 @@
-
+
@@ -1953,7 +2160,7 @@
-
+
@@ -1968,14 +2175,14 @@
-
+
-
+
@@ -1987,7 +2194,7 @@
-
+
@@ -2000,7 +2207,7 @@
-
+
@@ -2021,14 +2228,14 @@
-
+
-
+
@@ -2040,7 +2247,7 @@
-
+
@@ -2053,7 +2260,7 @@
-
+
@@ -2068,14 +2275,14 @@
-
+
-
+
@@ -2087,7 +2294,7 @@
-
+
@@ -2100,7 +2307,7 @@
-
+
@@ -2114,7 +2321,7 @@
-
+
@@ -2126,7 +2333,7 @@
-
+
@@ -2137,7 +2344,7 @@
-
+
@@ -2149,7 +2356,7 @@
-
+
@@ -2159,14 +2366,14 @@
-
+
-
+
@@ -2182,7 +2389,7 @@
-
+
@@ -2192,7 +2399,7 @@
-
+
@@ -2203,7 +2410,7 @@
-
+
@@ -2215,7 +2422,7 @@
-
+
@@ -2225,7 +2432,7 @@
-
+
@@ -2234,7 +2441,7 @@
-
+
@@ -2243,7 +2450,7 @@
-
+
@@ -2255,7 +2462,7 @@
-
+
@@ -2268,7 +2475,7 @@
-
+
@@ -2278,7 +2485,7 @@
-
+
@@ -2288,14 +2495,14 @@
-
+
-
+
@@ -2310,7 +2517,7 @@
-
+
@@ -2320,7 +2527,7 @@
-
+
@@ -2331,7 +2538,7 @@
-
+
@@ -2343,7 +2550,7 @@
-
+
@@ -2358,7 +2565,7 @@
-
+
@@ -2375,7 +2582,7 @@
-
+
@@ -2385,7 +2592,7 @@
-
+
@@ -2394,7 +2601,7 @@
-
+
@@ -2402,7 +2609,7 @@
-
+
@@ -2414,7 +2621,7 @@
-
+
@@ -2424,7 +2631,7 @@
-
+
@@ -2435,7 +2642,7 @@
-
+
@@ -2447,7 +2654,7 @@
-
+
@@ -2457,14 +2664,14 @@
-
+
-
+
@@ -2473,7 +2680,7 @@
-
+
@@ -2485,7 +2692,7 @@
-
+
@@ -2495,14 +2702,14 @@
-
+
-
+
@@ -2511,7 +2718,7 @@
-
+
@@ -2523,7 +2730,7 @@
-
+
@@ -2533,14 +2740,14 @@
-
+
-
+
@@ -2555,7 +2762,7 @@
-
+
@@ -2565,14 +2772,14 @@
-
+
-
-
+
+
@@ -2587,7 +2794,7 @@
-
+
@@ -2597,14 +2804,14 @@
-
+
-
+
@@ -2613,7 +2820,7 @@
-
+
@@ -2625,7 +2832,7 @@
-
+
@@ -2635,14 +2842,14 @@
-
+
-
+
@@ -2651,7 +2858,7 @@
-
+
@@ -2663,7 +2870,7 @@
-
+
@@ -2682,21 +2889,21 @@
-
+
-
+
-
+
@@ -2707,7 +2914,7 @@
-
+
@@ -2718,7 +2925,7 @@
-
+
@@ -2734,7 +2941,7 @@
-
+
@@ -2747,7 +2954,7 @@
-
+
@@ -2762,21 +2969,21 @@
-
+
-
+
-
+
@@ -2791,7 +2998,7 @@
-
+
@@ -2804,7 +3011,7 @@
-
+
@@ -2818,28 +3025,28 @@
-
+
-
+
-
+
-
+
@@ -2854,7 +3061,7 @@
-
+
@@ -2867,7 +3074,7 @@
-
+
@@ -2880,7 +3087,7 @@
-
+
@@ -2897,21 +3104,21 @@
-
+
-
+
-
+
@@ -2921,7 +3128,7 @@
-
+
@@ -2932,7 +3139,7 @@
-
+
@@ -2948,7 +3155,7 @@
-
+
@@ -2961,7 +3168,7 @@
-
+
@@ -2977,14 +3184,14 @@
-
+
-
+
@@ -2996,7 +3203,7 @@
-
+
@@ -3009,7 +3216,7 @@
-
+
@@ -3023,7 +3230,7 @@
-
+
@@ -3035,7 +3242,7 @@
-
+
@@ -3047,7 +3254,7 @@
-
+
@@ -3059,7 +3266,7 @@
-
+
@@ -3071,7 +3278,7 @@
-
+
@@ -3083,7 +3290,7 @@
-
+
@@ -3095,7 +3302,7 @@
-
+
@@ -3107,7 +3314,7 @@
-
+
@@ -3117,7 +3324,7 @@
-
+
@@ -3127,7 +3334,7 @@
-
+
@@ -3137,21 +3344,21 @@
-
+
-
+
-
+
@@ -3161,7 +3368,7 @@
-
+
@@ -3178,7 +3385,7 @@
-
+
@@ -3191,7 +3398,7 @@
-
+
@@ -3207,21 +3414,21 @@
-
+
-
+
-
+
@@ -3233,7 +3440,7 @@
-
+
@@ -3246,7 +3453,7 @@
-
+
@@ -3260,21 +3467,21 @@
-
+
-
+
-
+
@@ -3286,7 +3493,7 @@
-
+
@@ -3299,7 +3506,7 @@
-
+
@@ -3312,7 +3519,7 @@
-
+
@@ -3327,21 +3534,21 @@
-
+
-
+
-
+
@@ -3353,7 +3560,7 @@
-
+
@@ -3366,7 +3573,7 @@
-
+
@@ -3381,21 +3588,21 @@
-
+
-
+
-
+
@@ -3407,7 +3614,7 @@
-
+
@@ -3420,7 +3627,7 @@
-
+
@@ -3433,7 +3640,7 @@
-
+
@@ -3446,7 +3653,7 @@
-
+
@@ -3459,7 +3666,7 @@
-
+
@@ -3470,21 +3677,21 @@
-
+
-
+
-
+
@@ -3496,7 +3703,7 @@
-
+
@@ -3509,7 +3716,7 @@
-
+
@@ -3522,7 +3729,7 @@
-
+
@@ -3536,21 +3743,21 @@
-
+
-
+
-
+
@@ -3562,7 +3769,7 @@
-
+
@@ -3575,7 +3782,7 @@
-
+
@@ -3588,7 +3795,7 @@
-
+
@@ -3600,14 +3807,14 @@
-
+
-
+
@@ -3624,7 +3831,7 @@
-
+
@@ -3634,14 +3841,14 @@
-
+
-
+
@@ -3657,7 +3864,7 @@
-
+
@@ -3667,14 +3874,14 @@
-
+
-
+
@@ -3686,14 +3893,14 @@
-
+
-
+
@@ -3708,7 +3915,7 @@
-
+
@@ -3724,7 +3931,7 @@
-
+
@@ -3734,7 +3941,7 @@
-
+
@@ -3746,7 +3953,7 @@
-
+
@@ -3758,7 +3965,7 @@
-
+
@@ -3770,7 +3977,7 @@
-
+
@@ -3782,7 +3989,7 @@
-
+
@@ -3794,7 +4001,7 @@
-
+
@@ -3806,7 +4013,7 @@
-
+
@@ -3816,7 +4023,7 @@
-
+
@@ -3828,14 +4035,14 @@
-
+
-
+
@@ -3847,7 +4054,7 @@
-
+
@@ -3860,7 +4067,7 @@
-
+
@@ -3871,14 +4078,14 @@
-
+
-
+
@@ -3895,7 +4102,7 @@
-
+
@@ -3905,14 +4112,14 @@
-
+
-
+
@@ -3922,7 +4129,7 @@
-
+
@@ -3932,7 +4139,7 @@
-
+
@@ -3948,7 +4155,7 @@
-
+
@@ -3958,14 +4165,14 @@
-
+
-
+
@@ -3980,7 +4187,7 @@
-
+
@@ -3990,14 +4197,14 @@
-
+
-
+
@@ -4013,7 +4220,7 @@
-
+
@@ -4026,21 +4233,21 @@
-
+
-
+
-
+
@@ -4057,7 +4264,7 @@
-
+
@@ -4070,7 +4277,7 @@
-
+
@@ -4080,14 +4287,14 @@
-
+
-
+
@@ -4102,7 +4309,7 @@
-
+
@@ -4112,14 +4319,14 @@
-
+
-
+
@@ -4135,7 +4342,7 @@
-
+
@@ -4145,7 +4352,7 @@
-
+
@@ -4156,7 +4363,7 @@
-
+
@@ -4168,7 +4375,7 @@
-
+
@@ -4178,14 +4385,14 @@
-
+
-
+
@@ -4200,7 +4407,7 @@
-
+
@@ -4217,21 +4424,21 @@
-
+
-
+
-
+
@@ -4241,7 +4448,7 @@
-
+
@@ -4252,8 +4459,8 @@
-
-
+
+
@@ -4263,7 +4470,7 @@
-
+
@@ -4272,8 +4479,8 @@
-
-
+
+
@@ -4288,7 +4495,7 @@
-
+
@@ -4301,7 +4508,7 @@
-
+
@@ -4311,14 +4518,14 @@
-
+