[kune-commits] r1742 - in trunk: . docs src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/content src/main/java/cc/kune/core/server/init src/main/java/cc/kune/core/server/manager/impl src/main/java/cc/kune/core/server/rack src/main/java/cc/kune/core/server/xmpp src/main/resources src/main/resources/META-INF src/test/java/cc/kune/core/server src/test/java/cc/kune/core/server/integration
Vicente J. Ruiz Jurado
vjrj_ at ourproject.org
Tue Mar 6 22:17:54 CET 2012
Author: vjrj_
Date: 2012-03-06 22:17:53 +0100 (Tue, 06 Mar 2012)
New Revision: 1742
Added:
trunk/docs/kune-guice-graph.dot
trunk/docs/kune-guice-graph.png
trunk/docs/kune-guice-graph.svg
trunk/docs/wave-guice-graph.dot
trunk/src/main/java/cc/kune/core/server/DataSourceKune.java
trunk/src/main/java/cc/kune/core/server/DataSourceKunePersistModule.java
trunk/src/main/java/cc/kune/core/server/DataSourceKuneSessionProvider.java
trunk/src/main/java/cc/kune/core/server/DataSourceOpenfire.java
trunk/src/main/java/cc/kune/core/server/DataSourceOpenfirePersistModule.java
trunk/src/main/java/cc/kune/core/server/DataSourceOpenfireSessionProvider.java
trunk/src/main/java/cc/kune/core/server/GenericPersistenceInitializer.java
trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterFinder.java
trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterProvider.java
trunk/src/main/java/cc/kune/core/server/xmpp/Roster.java
trunk/src/main/java/cc/kune/core/server/xmpp/XmppRosterProvider.java
Modified:
trunk/.classpath
trunk/TROUBLESHOOT
trunk/pom.xml
trunk/src/main/java/cc/kune/core/server/CustomPersistFilter.java
trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
trunk/src/main/java/cc/kune/core/server/manager/impl/ExtMediaDescripManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/I18nCountryManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/I18nLanguageManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/LicenseManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/RateManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/TagManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/ToolConfigurationManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
trunk/src/main/resources/META-INF/persistence.xml
trunk/src/main/resources/log4j.properties
trunk/src/test/java/cc/kune/core/server/PersistenceTest.java
trunk/src/test/java/cc/kune/core/server/TestConstants.java
trunk/src/test/java/cc/kune/core/server/TestHelper.java
trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
Log:
Added Multiple Persistence (to connecto to openfire via guice-persist). Work in progress
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/.classpath 2012-03-06 21:17:53 UTC (rev 1742)
@@ -48,6 +48,9 @@
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r09/guava-gwt-r09.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0/guice-3.0.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0/guice-3.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assistedinject/3.0/guice-assistedinject-3.0.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-assistedinject/3.0/guice-assistedinject-3.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-grapher/3.0/guice-grapher-3.0.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-grapher/3.0/guice-grapher-3.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-multibindings/3.0/guice-multibindings-3.0.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-multibindings/3.0/guice-multibindings-3.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0/guice-persist-3.0.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0/guice-persist-3.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/bradrydzewski/gwt-cal/0.9.3-dndCreation/gwt-cal-0.9.3-dndCreation.jar"/>
Modified: trunk/TROUBLESHOOT
===================================================================
--- trunk/TROUBLESHOOT 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/TROUBLESHOOT 2012-03-06 21:17:53 UTC (rev 1742)
@@ -1,6 +1,6 @@
=TROUBLESHOOTING=
-== Server debug ==
+==Server debug==
You can debug the server running from eclipse as external tool:
'script/kune server via mvn with debug.launch'
@@ -15,30 +15,30 @@
See also log4j.properties in src/main/resources/
-== Client debug ==
+==Client debug==
You can debug the client with the eclipse launch configuration 'script/kune client -no-server.launch'.
-== Firebug and client log levels ==
+==Firebug and client log levels==
To increase client logging add ?log_level=DEBUG# to the url and use firebug firefox extension to see the output.
-== Emite troubleshooting ==
+==Emite troubleshooting==
See:
http://code.google.com/p/emite/wiki/Troubleshooting
-== Liquibase ==
+==Liquibase==
-=== Checksum errors ===
+===Checksum errors===
Migration Failed: Validation Failed:1 change sets failed MD5Sum Check src/main/resources/db/liquibase_changelog.xml :: 18 :: vjrj :: (MD5Sum: bde0aa519108e1e3d1f29bb2483bc9)
Don't try to update the liquibase changelogs you have already use. Better create new ones to delete, update, and so on. If you are developing and want to clear the checksums, you can use the command "clearCheckSums". See script/liquibase-* and http://www.liquibase.org/manual/command_line
-== Lucene ==
+==Lucene==
-=== Indexes problems during upgrades ===
+===Indexes problems during upgrades===
If you get errors like:
@@ -52,28 +52,28 @@
Sometimes the tests also fails without any error (use the same workaround).
-== JUnit ==
+==JUnit==
Running all the Kune test from eclipse I get connection pool exceptions like:
Connections could not be acquired from the underlying database
We have problems testing all test together from eclipse and using real db (not the h2 memory db)
-== Too many files open ==
+==Too many files open==
If running all the Kune test you get errors about "Too many files open" see:
http://code.google.com/p/gwt-examples/wiki/gwtEclipseFaqs
about how to fix it in your system.
-== If you change some .properties or configuration files in src directory ==
+==If you change some .properties or configuration files in src directory==
Be sure to do mvn compile (that copy them to the target directory)
-== If the client get: Error fetching initial data from Kune server ==
+==If the client get: Error fetching initial data from Kune server==
Probably the client code is outdated from the server code (or viceversa). Try to get both codes in sync compiling it.
-== Mysql: Caused by: java.sql.SQLException: Access denied for user 'kune'@'localhost' (using password: YES) ==
+==Mysql: Caused by: java.sql.SQLException: Access denied for user 'kune'@'localhost' (using password: YES)==
Check that the password you have use in the database creation it's the same like the kune.properties. If it's wrong maybe you have to remove the mysql user (DROP USER) and repeat the GRANT sentences of the INSTALL.
@@ -81,7 +81,7 @@
If you have this problem with openfire it's not enough to change the password in openfire.xml because probably it's already stored in the ofProperty openfire table and you need to change the password there.
-== Other mysql errors ==
+==Other mysql errors==
If you get this warning, probably you have connection problems between kune and your database:
@@ -100,7 +100,7 @@
#general_log = 1
in /etc/mysql/my.cnf
-== If during initialization (first start) you get a 'Account already exists' ==
+==If during initialization (first start) you get a 'Account already exists'==
If you stopped the first initialization and the server init is half started you will get something like:
@@ -109,7 +109,7 @@
trying to run kune and creating the DB. So better remove the first account of wave and related /var/lib/kune/_*
-== Eclipse & GWT ==
+==Eclipse & GWT==
If you have some tests with error like "can not be found in source packages. Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly" and you have installed GWTDesigner, uncheck "client classpath": http://code.google.com/webtoolkit/tools/gwtdesigner/preferences/gwt/preferences_builder.html
@@ -125,18 +125,18 @@
Error: Problem with Eclipse plugin and UiBinder "Field xxx has no corresponding field in template file yyy.ui.xml"
https://code.google.com/p/google-web-toolkit/issues/detail?id=4353
-== Too many GWT permutations? ==
+==Too many GWT permutations?==
Compile in PRETTY mode and edit target/kune-VERSION/ws/ws.nocache.js and look for 'unflattenKeylistIntoAnswers' to see a permutation list. See:
https://groups.google.com/group/google-web-toolkit/browse_thread/thread/ec7737c291ce4572/142590b8985b1b20?lnk=gst&q=user-agent+permutations#142590b8985b1b20
If you want to compile less permutations (only for dev or testing), comment some locale and user.agent in src/main/java/cc/kune/Kune.gwt.xml
-== Outbound variable M2_REPO ==
+==Outbound variable M2_REPO==
Set M2_REPO to eclipse in Preferences > Java > Build Path > Classpath Variable (normally to /home/youruser/.m2/repository/)
-== Error generating CoreResources ==
+==Error generating CoreResources==
[INFO] Computing all possible rebind results for 'cc.kune.core.client.resources.CoreResources' [INFO] Rebinding cc.kune.core.client.resources.CoreResources [INFO] Invoking generator com.google.gwt.resources.rebind.context.StaticClientBundleGenerator [INFO] [ERROR] Generator 'com.google.gwt.resources.rebind.context.StaticClientBundleGenerator' threw an exception while rebinding 'cc.kune.cor
[INFO] at com.google.gwt.dev.util.Util.computeStrongName(Util.java:170) [INFO] at com.google.gwt.dev.util.Util.computeStrongName(Util.java:145) [INFO] at com.google.gwt.resources.rebind.context.StaticResourceContext.deploy(StaticResourceContext.java:61)
@@ -144,3 +144,7 @@
http://code.google.com/p/google-web-toolkit/issues/detail?id=6103
The gwt compiler is trying to create a sprite sheet, an image with all the icons all together (to minimize calls from client to server) but cannot open all the files. This happens normally when ulimit is not setted. See: "Too many files open" above.
+
+==Eclipse startup is slow==
+Check, for instance, the first points of:
+http://www.beyondlinux.com/2011/06/25/speed-up-your-eclipse-as-a-super-fast-ide/
\ No newline at end of file
Added: trunk/docs/kune-guice-graph.dot
===================================================================
--- trunk/docs/kune-guice-graph.dot (rev 0)
+++ trunk/docs/kune-guice-graph.dot 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,709 @@
+digraph injector {
+graph [rankdir=TB];
+k_c92e8c4d [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ServletRequest<br align="left"/></font></td></tr></table>>, shape=box]
+k_2ca5daf6 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ServletResponse<br align="left"/></font></td></tr></table>>, shape=box]
+k_57676221 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">FilterPipeline<br align="left"/></font></td></tr></table>>, shape=box]
+k_c2892102 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ServletContext<br align="left"/></font></td></tr></table>>, shape=box]
+k_3208fff2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">HttpServletRequest<br align="left"/></font></td></tr></table>>, shape=box]
+i_3208fff2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">InternalServletModule.java:95<br align="left"/></font><font color="#ffffff">#provideHttpServletRequest()<br align="left"/></font></td></tr></table>>, shape=box]
+k_ef0fca5f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">HttpServletResponse<br align="left"/></font></td></tr></table>>, shape=box]
+i_ef0fca5f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">InternalServletModule.java:99<br align="left"/></font><font color="#ffffff">#provideHttpServletResponse()<br align="left"/></font></td></tr></table>>, shape=box]
+k_e44414fe [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">HttpSession<br align="left"/></font></td></tr></table>>, shape=box]
+i_e44414fe [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">InternalServletModule.java:103<br align="left"/></font><font color="#ffffff">#provideHttpSession()<br align="left"/></font></td></tr></table>>, shape=box]
+k_77c04a82 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@RequestParameters<br align="left"/></font><font color="#000000">Map<String, String[]><br align="left"/></font></td></tr></table>>, shape=box]
+i_77c04a82 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">InternalServletModule.java:108<br align="left"/></font><font color="#ffffff">#provideRequestParameters()<br align="left"/></font></td></tr></table>>, shape=box]
+k_d7819d58 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">KuneProperties<br align="left"/></font></td></tr></table>>, shape=box]
+i_d7819d58 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">MyDataSourceOnePersistModule.java:62<br align="left"/></font><font color="#ffffff">KunePropertiesDefault<br align="left"/></font></td></tr></table>>, shape=box]
+k_ec0eec1 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Jpa<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_ec0eec1 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:58<br align="left"/></font><font color="#ffffff">"development"<br align="left"/></font></td></tr></table>>, shape=box]
+k_3025761f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Jpa<br align="left"/></font><font color="#000000">Properties<br align="left"/></font></td></tr></table>>, shape=box]
+i_3025761f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:61<br align="left"/></font><font color="#ffffff">{hibernate.connection.username=kune, hibernate.connection.password=db4kune, hibernate.connection.url=jdbc:mysql://localhost/kune_dev?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8}<br align="left"/></font></td></tr></table>>, shape=box]
+k_4af18928 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">PersistService<br align="left"/></font></td></tr></table>>, shape=box]
+k_34d8ea68 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">UnitOfWork<br align="left"/></font></td></tr></table>>, shape=box]
+k_bd577e32 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">EntityManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_efaafb9a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">EntityManagerFactory<br align="left"/></font></td></tr></table>>, shape=box]
+k_ed3850fe [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ContainerFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_ed3850fe [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 7e64cfe0<br align="left"/></font></td></tr></table>>, shape=box]
+k_50c5378e [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ContentFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_50c5378e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at c8bbbf4<br align="left"/></font></td></tr></table>>, shape=box]
+k_e32fd65a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ExtMediaDescripFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_e32fd65a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 29e0969b<br align="left"/></font></td></tr></table>>, shape=box]
+k_c52e8b1f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">GroupFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_c52e8b1f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 57bfaf97<br align="left"/></font></td></tr></table>>, shape=box]
+k_f190cf1a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nCountryFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_f190cf1a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 69a10f82<br align="left"/></font></td></tr></table>>, shape=box]
+k_9e4d04a6 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nLanguageFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_9e4d04a6 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 4d0155fb<br align="left"/></font></td></tr></table>>, shape=box]
+k_e0cca2c0 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nTranslationFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_e0cca2c0 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 12b3f93c<br align="left"/></font></td></tr></table>>, shape=box]
+k_571c5d0 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">LicenseFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_571c5d0 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 65afdbbb<br align="left"/></font></td></tr></table>>, shape=box]
+k_d05d4d [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RateFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_d05d4d [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 7c830624<br align="left"/></font></td></tr></table>>, shape=box]
+k_a599624d [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TagFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_a599624d [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 7e086558<br align="left"/></font></td></tr></table>>, shape=box]
+k_23d1709 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TagUserContentFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_23d1709 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 5935b50c<br align="left"/></font></td></tr></table>>, shape=box]
+k_975262ab [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">UserFinder<br align="left"/></font></td></tr></table>>, shape=box]
+i_975262ab [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">JpaPersistModule.java:159<br align="left"/></font><font color="#ffffff">com.google.inject.persist.jpa.JpaPersistModule$1 at 55015495<br align="left"/></font></td></tr></table>>, shape=box]
+k_f7b6406d [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@MyDataSourceOne<br align="left"/></font><font color="#000000">Session<br align="left"/></font></td></tr></table>>, shape=box]
+k_779877f7 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@MyDataSourceOne<br align="left"/></font><font color="#000000">EntityManager<br align="left"/></font></td></tr></table>>, shape=box]
+i_779877f7 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">MyDataSourceOnePersistModule.java:116<br align="left"/></font><font color="#ffffff">Provider<javax.persistence.EntityManager><br align="left"/></font></td></tr></table>>, shape=box]
+k_91a74692 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@MyDataSourceOne<br align="left"/></font><font color="#000000">CustomPersistFilter<br align="left"/></font></td></tr></table>>, shape=box]
+k_23eb5148 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Internal(value=1)<br align="left"/></font><font color="#000000">FilterDefinition<br align="left"/></font></td></tr></table>>, shape=box]
+i_23eb5148 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">FiltersModuleBuilder.java:49<br align="left"/></font><font color="#ffffff">FilterDefinition<br align="left"/></font></td></tr></table>>, shape=box]
+k_713ad964 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">UserManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_38aee1f8 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">GroupManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_157473fe [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ContentManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_1acc6318 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ToolConfigurationManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_a4692fd8 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ContainerManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_74d7c200 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">LicenseManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_90277b38 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SocialNetworkManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_4984b5f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">XmppManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_f4865409 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ChatManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_a164c085 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RateManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_313e6bb7 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nCountryManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_1e55cee9 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nLanguageManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_2b3b226a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nTranslationManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_d1eae4dc [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TagManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_19107f5b [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TagUserContentManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_a0509078 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">FileManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_45bff81a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ExtMediaDescripManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_f2e2f2a7 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">KuneWaveManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_11ed20eb [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SiteService<br align="left"/></font></td></tr></table>>, shape=box]
+k_b8cb81fe [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">GroupService<br align="left"/></font></td></tr></table>>, shape=box]
+k_8453f77 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ContentService<br align="left"/></font></td></tr></table>>, shape=box]
+k_3c71cd07 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">UserService<br align="left"/></font></td></tr></table>>, shape=box]
+k_4d085577 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SocialNetService<br align="left"/></font></td></tr></table>>, shape=box]
+k_cdb92fce [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nService<br align="left"/></font></td></tr></table>>, shape=box]
+k_d1806ccf [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ListsService<br align="left"/></font></td></tr></table>>, shape=box]
+k_94078109 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">ClientStatsService<br align="left"/></font></td></tr></table>>, shape=box]
+k_f4da46d1 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">UserInfoService<br align="left"/></font></td></tr></table>>, shape=box]
+k_ab46457f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">CreationService<br align="left"/></font></td></tr></table>>, shape=box]
+k_f99f2b86 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">AccessRightsService<br align="left"/></font></td></tr></table>>, shape=box]
+k_8636f4ac [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">AccessService<br align="left"/></font></td></tr></table>>, shape=box]
+k_7ecc0a55 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">FinderService<br align="left"/></font></td></tr></table>>, shape=box]
+k_a66e0dc0 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">StateService<br align="left"/></font></td></tr></table>>, shape=box]
+k_24961ca8 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nTranslationService<br align="left"/></font></td></tr></table>>, shape=box]
+k_b81a1c1 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">I18nTranslationServiceMultiLang<br align="left"/></font></td></tr></table>>, shape=box]
+k_aa3c53ae [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">KuneWaveService<br align="left"/></font></td></tr></table>>, shape=box]
+k_2eb97c23 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">MailService<br align="left"/></font></td></tr></table>>, shape=box]
+k_5fe7fac5 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">StatsService<br align="left"/></font></td></tr></table>>, shape=box]
+k_9f28c448 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">Mapper<br align="left"/></font></td></tr></table>>, shape=box]
+k_48c0beec [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">UsersOnline<br align="left"/></font></td></tr></table>>, shape=box]
+k_5676f2ec [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">NotificationSender<br align="left"/></font></td></tr></table>>, shape=box]
+k_3edb753c [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=ExtendedModule-1)<br align="left"/></font><font color="#000000">AbstractExtendedModule<br align="left"/></font></td></tr></table>>, shape=box]
+i_3edb753c [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">AbstractExtendedModule.java:100<br align="left"/></font><font color="#ffffff">PlatformServerModule<br align="left"/></font></td></tr><tr><td align="left" port="m_ea7d63">#injectRegisteredObjects(...)</td></tr></table>>, shape=box]
+k_e518eb99 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RESTMethodFinder<br align="left"/></font></td></tr></table>>, shape=box]
+k_79cc66c6 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RESTSerializer<br align="left"/></font></td></tr></table>>, shape=box]
+k_3e59236a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ManagedFilterPipeline<br align="left"/></font></td></tr><tr><td align="left" port="m_84fd56bb"><init></td></tr></table>>, shape=box]
+k_e20aa4f9 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ManagedServletPipeline<br align="left"/></font></td></tr><tr><td align="left" port="m_c910e7a6"><init></td></tr></table>>, shape=box]
+k_ae1a7ede [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">JpaPersistService<br align="left"/></font></td></tr><tr><td align="left" port="m_39b7e4fa"><init></td></tr></table>>, shape=box]
+k_33bd1bc8 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">KunePersistenceInitializer<br align="left"/></font></td></tr><tr><td align="left" port="m_724ea93f"><init></td></tr></table>>, shape=box]
+k_9b3b57fa [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">KunePersistenceService<br align="left"/></font></td></tr><tr><td align="left" port="m_1af67f92"><init></td></tr><tr><td align="left" port="m_b7f26df5">databaseInitializer</td></tr></table>>, shape=box]
+k_edd20636 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SocialNetwork<br align="left"/></font></td></tr><tr><td align="left" port="m_29530556"><init></td></tr></table>>, shape=box]
+k_8c7fc3dd [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">XMLActionReader<br align="left"/></font></td></tr><tr><td align="left" port="m_8e4df240"><init></td></tr></table>>, shape=box]
+k_b8b1fb55 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ServerToolRegistry<br align="left"/></font></td></tr><tr><td align="left" port="m_b4a6ea93"><init></td></tr></table>>, shape=box]
+k_aa5efde3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileUploadManager<br align="left"/></font></td></tr><tr><td align="left" port="m_f70b907a"><init></td></tr><tr><td align="left" port="m_fbf8f608">kuneProperties</td></tr><tr><td align="left" port="m_75d06daa">i18n</td></tr><tr><td align="left" port="m_9a2f00cb">accessService</td></tr><tr><td align="left" port="m_3f42d6ac">creationService</td></tr><tr><td align="left" port="m_55fe5eeb">fileManager</td></tr><tr><td align="left" port="m_f73bea64">i18n</td></tr><tr><td align="left" port="m_9359f431">userSession</td></tr></table>>, shape=box]
+k_3fdfa1f3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileDownloadManager<br align="left"/></font></td></tr><tr><td align="left" port="m_a193f493"><init></td></tr><tr><td align="left" port="m_e765dc67">contentManager</td></tr><tr><td align="left" port="m_1457c827">kuneProperties</td></tr><tr><td align="left" port="m_116dcc06">fileUtils</td></tr></table>>, shape=box]
+k_f073050a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">EntityLogoUploadManager<br align="left"/></font></td></tr><tr><td align="left" port="m_1d803b88"><init></td></tr></table>>, shape=box]
+k_cc3648a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">EntityLogoDownloadManager<br align="left"/></font></td></tr><tr><td align="left" port="m_fd8a1421"><init></td></tr><tr><td align="left" port="m_e17f200f">groupManager</td></tr></table>>, shape=box]
+k_e01da407 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ParticipantUtils<br align="left"/></font></td></tr><tr><td align="left" port="m_ffdcacd3"><init></td></tr></table>>, shape=box]
+k_96a0f6e3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveEmailNotifier<br align="left"/></font></td></tr><tr><td align="left" port="m_dadc2f23"><init></td></tr></table>>, shape=box]
+k_4eb32c88 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">PendingNotificationSender<br align="left"/></font></td></tr><tr><td align="left" port="m_6683cfea"><init></td></tr></table>>, shape=box]
+k_888ff559 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CronServerTasksManager<br align="left"/></font></td></tr><tr><td align="left" port="m_6e568d1e"><init></td></tr></table>>, shape=box]
+k_a385bbee [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DocumentServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_7d837e0d"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_c39634b7 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">BlogServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_15dbf5cc"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_d29d0090 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WikiServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_760be197"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_3e11d995 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ChatServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_a9ff88e7"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_d7ead9b2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">BarterServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_f138584c"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_bf14fe3a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">EventsServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_3b84fb69"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_928ab46b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">TaskServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_1e5046ac"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_a489c883 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ListsServerTool<br align="left"/></font></td></tr><tr><td align="left" port="m_d1e0d2bd"><init></td></tr><tr><td align="left" port="m_fce6b61b">#register(...)</td></tr></table>>, shape=box]
+k_9aa7b1a3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">InternalServletModule$BackwardsCompatibleServletContextProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_2e3e1d1"><init></td></tr></table>>, shape=box]
+k_4c3181a3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">JpaPersistService$EntityManagerFactoryProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_535448fb"><init></td></tr></table>>, shape=box]
+k_76fbe1f5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">MyDataSourceOneSessionProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_dec4736d"><init></td></tr><tr><td align="left" port="m_4835dd36">entityManagerProvider</td></tr></table>>, shape=box]
+k_d7664ccd [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CustomPersistFilter<br align="left"/></font></td></tr><tr><td align="left" port="m_762b5a60"><init></td></tr></table>>, shape=box]
+k_34146061 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">UserManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_a1db3271"><init></td></tr></table>>, shape=box]
+k_23e4713d [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">GroupManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_7182081"><init></td></tr></table>>, shape=box]
+k_a95a0142 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ContentManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_540a509d"><init></td></tr></table>>, shape=box]
+k_6e7a86e2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ToolConfigurationManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_80d9bd00"><init></td></tr></table>>, shape=box]
+k_211a147a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ContainerManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_4eabfea5"><init></td></tr></table>>, shape=box]
+k_bcc05686 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">LicenseManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_b8b71743"><init></td></tr><tr><td align="left" port="m_702001c6">#setLicenseFinder(...)</td></tr></table>>, shape=box]
+k_4d9521fe [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SocialNetworkManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_155ec683"><init></td></tr></table>>, shape=box]
+k_6d7939e2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">XmppManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_101e3d67"><init></td></tr></table>>, shape=box]
+k_74d84ba7 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ChatManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_5a841140"><init></td></tr></table>>, shape=box]
+k_aa995474 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">RateManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_4f9b8ac6"><init></td></tr></table>>, shape=box]
+k_a1ef436f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">I18nCountryManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_eb61cf5a"><init></td></tr></table>>, shape=box]
+k_d9cc655c [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">I18nLanguageManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_eccba8fc"><init></td></tr></table>>, shape=box]
+k_be0df4f2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">I18nTranslationManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_f548b735"><init></td></tr></table>>, shape=box]
+k_8d8763fc [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">TagManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_aa2699dc"><init></td></tr></table>>, shape=box]
+k_ce20d85e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">TagUserContentManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_b707ae9a"><init></td></tr></table>>, shape=box]
+k_33ad704e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_11088986"><init></td></tr></table>>, shape=box]
+k_648b0d65 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ExtMediaDescripManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_caed5f27"><init></td></tr></table>>, shape=box]
+k_13cb7cfc [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">KuneWaveManagerDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_d21306a0"><init></td></tr></table>>, shape=box]
+k_710db6c7 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SiteRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_94bc12fa"><init></td></tr></table>>, shape=box]
+k_9954bf2a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">GroupRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_f8b7308a"><init></td></tr></table>>, shape=box]
+k_ba1ed833 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ContentRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_6bc89f50"><init></td></tr></table>>, shape=box]
+k_9e1c3bcd [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">UserRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_ecb87f6"><init></td></tr></table>>, shape=box]
+k_3e2c542c [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SocialNetworkRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_b56ae5c8"><init></td></tr></table>>, shape=box]
+k_27aebc9 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">I18nRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_20e4f4c3"><init></td></tr></table>>, shape=box]
+k_1522a94f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ListsRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_19f5554c"><init></td></tr></table>>, shape=box]
+k_94a0c3b7 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">StatsRPC<br align="left"/></font></td></tr><tr><td align="left" port="m_29212e6a"><init></td></tr></table>>, shape=box]
+k_78c34902 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">UserInfoServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_e2253da6"><init></td></tr></table>>, shape=box]
+k_994472f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CreationServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_3ada629b"><init></td></tr></table>>, shape=box]
+k_acd8cfab [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">AccessRightsServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_a352c536"><init></td></tr></table>>, shape=box]
+k_6f494958 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">AccessServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_63a0fdbf"><init></td></tr></table>>, shape=box]
+k_d357d6a [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FinderServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_2d8dc501"><init></td></tr></table>>, shape=box]
+k_cabb1647 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">StateServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_fc5df405"><init></td></tr></table>>, shape=box]
+k_2da29983 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">I18nTranslationServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_1b1ed846"><init></td></tr></table>>, shape=box]
+k_26f8fb23 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">KuneWaveServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_f42f63ac"><init></td></tr></table>>, shape=box]
+k_1e755bca [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">MailServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_a2bece9f"><init></td></tr></table>>, shape=box]
+k_75cf6687 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">StatsServiceDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_96bb30a1"><init></td></tr></table>>, shape=box]
+k_1ea1ab37 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DozerMapper<br align="left"/></font></td></tr><tr><td align="left" port="m_100deaab"><init></td></tr></table>>, shape=box]
+k_c6d9dbe4 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">UserSessionManager<br align="left"/></font></td></tr><tr><td align="left" port="m_c72f445d"><init></td></tr></table>>, shape=box]
+k_92a2ff20 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NotificationSenderDefault<br align="left"/></font></td></tr><tr><td align="left" port="m_87014a14"><init></td></tr></table>>, shape=box]
+k_5d423cd2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">Injector<br align="left"/></font></td></tr></table>>, shape=box]
+i_5d423cd2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">[unknown source]<br align="left"/></font><font color="#ffffff">Provider<Injector><br align="left"/></font></td></tr></table>>, shape=box]
+k_8b7d57ca [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultRESTMethodFinder<br align="left"/></font></td></tr><tr><td align="left" port="m_ed90671"><init></td></tr></table>>, shape=box]
+k_ebdd5943 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">JSONLibRESTSerializer<br align="left"/></font></td></tr><tr><td align="left" port="m_38c8ab78"><init></td></tr></table>>, shape=box]
+k_58b25e68 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DatabaseInitializer<br align="left"/></font></td></tr><tr><td align="left" port="m_1b090b84"><init></td></tr></table>>, shape=box]
+k_a51f5dd5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileUtils<br align="left"/></font></td></tr><tr><td align="left" port="m_ed1988bf"><init></td></tr></table>>, shape=box]
+k_63626340 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">KuneBasicProperties<br align="left"/></font></td></tr><tr><td align="left" port="m_94b0e6a0"><init></td></tr></table>>, shape=box]
+k_bbcefa18 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=wave_server_domain)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_bbcefa18 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"localhost"<br align="left"/></font></td></tr></table>>, shape=box]
+k_a32471fe [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveBus<br align="left"/></font></td></tr></table>>, shape=box]
+k_deac30bd [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CustomJobFactory<br align="left"/></font></td></tr><tr><td align="left" port="m_d67d262c"><init></td></tr></table>>, shape=box]
+k_d1a9c6cf [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">StdSchedulerFactory<br align="left"/></font></td></tr><tr><td align="left" port="m_b26be00d"><init></td></tr></table>>, shape=box]
+k_107a33fb [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">AccountStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_d09b5324 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ChatProperties<br align="left"/></font></td></tr><tr><td align="left" port="m_14070d2b"><init></td></tr></table>>, shape=box]
+k_2dec6c9 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CustomUserRegistrationServlet<br align="left"/></font></td></tr><tr><td align="left" port="m_145a2d5b"><init></td></tr></table>>, shape=box]
+k_ed3bb2d4 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NotificationService<br align="left"/></font></td></tr><tr><td align="left" port="m_f7fa287d"><init></td></tr></table>>, shape=box]
+k_2501bc07 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ReservedWordsRegistry<br align="left"/></font></td></tr><tr><td align="left" port="m_de674d3e"><init></td></tr></table>>, shape=box]
+k_7ec03d78 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CustomWaveClientServlet<br align="left"/></font></td></tr><tr><td align="left" port="m_ab1e54db"><init></td></tr></table>>, shape=box]
+k_4bf632c5 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=use_socketio)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_4bf632c5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">true<br align="left"/></font></td></tr></table>>, shape=box]
+k_f1928bf8 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SessionManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_7034c7d2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">EventDataConverterManager<br align="left"/></font></td></tr></table>>, shape=box]
+i_7034c7d2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">EventDataConverterModule.java:43<br align="left"/></font><font color="#ffffff">#provideEventDataConverterManager()<br align="left"/></font></td></tr></table>>, shape=box]
+k_5ecb29e3 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=DataApiRegistry)<br align="left"/></font><font color="#000000">OperationServiceRegistry<br align="left"/></font></td></tr></table>>, shape=box]
+i_5ecb29e3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:117<br align="left"/></font><font color="#ffffff">#provideDataApiRegistry(SearchService)<br align="left"/></font></td></tr></table>>, shape=box]
+k_ef3f9bf1 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveRenderer<br align="left"/></font></td></tr></table>>, shape=box]
+k_c5f43fe [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ConversationUtil<br align="left"/></font></td></tr><tr><td align="left" port="m_cb039b61"><init></td></tr></table>>, shape=box]
+k_66a99b94 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveletProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_2721f26b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveletNotificationDispatcher<br align="left"/></font></td></tr><tr><td align="left" port="m_72bb3f17"><init></td></tr></table>>, shape=box]
+k_6b87e61f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileAccountStore<br align="left"/></font></td></tr><tr><td align="left" port="m_2bca331e"><init></td></tr></table>>, shape=box]
+k_fcb759e6 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=disable_registration)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_fcb759e6 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">false<br align="left"/></font></td></tr></table>>, shape=box]
+k_f3f49125 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NotificationHtmlHelper<br align="left"/></font></td></tr><tr><td align="left" port="m_40754071"><init></td></tr></table>>, shape=box]
+k_c1b15a81 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">UserSession<br align="left"/></font></td></tr><tr><td align="left" port="m_4d2e2d30"><init></td></tr></table>>, shape=box]
+k_81bf39cf [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SessionManagerImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_bc6356d8"><init></td></tr></table>>, shape=box]
+k_f801e1f1 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SearchService<br align="left"/></font></td></tr><tr><td align="left" port="m_22b30b9b"><init></td></tr></table>>, shape=box]
+k_ea6f93fe [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ThreadedWaveRenderer<br align="left"/></font></td></tr><tr><td align="left" port="m_b9a42285"><init></td></tr></table>>, shape=box]
+k_140c93ab [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">IdGenerator<br align="left"/></font></td></tr></table>>, shape=box]
+i_140c93ab [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:106<br align="left"/></font><font color="#ffffff">#provideIdGenerator(String, Seed)<br align="left"/></font></td></tr></table>>, shape=box]
+k_744f2334 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveServerImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_3065e839"><init></td></tr></table>>, shape=box]
+k_91161f83 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@FederationHostBridge<br align="left"/></font><font color="#000000">WaveletFederationListener$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+k_f7d047b9 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">CertificateManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_50cd9615 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=account_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_50cd9615 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_accounts"<br align="left"/></font></td></tr></table>>, shape=box]
+k_ee7215a0 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">AbsoluteFileDownloadUtils<br align="left"/></font></td></tr><tr><td align="left" port="m_30d2c19e"><init></td></tr></table>>, shape=box]
+k_3e09faf2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SessionManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_74c3c0d2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SearchProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_d63563c2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">Templates<br align="left"/></font></td></tr><tr><td align="left" port="m_c73d3a59"><init></td></tr></table>>, shape=box]
+k_c898c54b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ContentRenderer<br align="left"/></font></td></tr><tr><td align="left" port="m_946dead5"><init></td></tr></table>>, shape=box]
+k_33570740 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">IdGeneratorImpl$Seed<br align="left"/></font></td></tr></table>>, shape=box]
+i_33570740 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:126<br align="left"/></font><font color="#ffffff">#provideSeed(SecureRandom)<br align="left"/></font></td></tr></table>>, shape=box]
+k_ca34da5f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=listener_executor)<br align="left"/></font><font color="#000000">Executor<br align="left"/></font></td></tr></table>>, shape=box]
+i_ca34da5f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:106<br align="left"/></font><font color="#ffffff">ThreadPoolExecutor<br align="left"/></font></td></tr></table>>, shape=box]
+k_9831ace4 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@FederationRemoteBridge<br align="left"/></font><font color="#000000">WaveletFederationProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_73658105 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveMap<br align="left"/></font></td></tr><tr><td align="left" port="m_a29919e6"><init></td></tr></table>>, shape=box]
+k_c9a11a3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NoOpFederationHost<br align="left"/></font></td></tr><tr><td align="left" port="m_dba23bb0"><init></td></tr></table>>, shape=box]
+k_dbdd067e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CertificateManagerImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_7dc25cb3"><init></td></tr></table>>, shape=box]
+k_a0ee12e3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">HashSessionManager<br align="left"/></font></td></tr><tr><td align="left" port="m_54776227"><init></td></tr></table>>, shape=box]
+k_5293dba6 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">MemorySearchProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_5b65d1b7"><init></td></tr></table>>, shape=box]
+k_529b935b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">Markup<br align="left"/></font></td></tr><tr><td align="left" port="m_6e9c9f8f"><init></td></tr></table>>, shape=box]
+k_7b520ec6 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">GadgetRenderer<br align="left"/></font></td></tr><tr><td align="left" port="m_4e215f96"><init></td></tr></table>>, shape=box]
+k_c3234f04 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SecureRandom<br align="left"/></font></td></tr></table>>, shape=box]
+i_c3234f04 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:112<br align="left"/></font><font color="#ffffff">#provideSecureRandom()<br align="left"/></font></td></tr></table>>, shape=box]
+k_c5aa0274 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NoOpFederationRemote<br align="left"/></font></td></tr><tr><td align="left" port="m_8c82dc4e"><init></td></tr></table>>, shape=box]
+k_218c2334 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RemoteWaveletContainer$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+i_218c2334 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:56<br align="left"/></font><font color="#ffffff">#provideRemoteWaveletContainerFactory(DeltaStore)<br align="left"/></font></td></tr></table>>, shape=box]
+k_7b747c12 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">LocalWaveletContainer$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+i_7b747c12 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:56<br align="left"/></font><font color="#ffffff">#provideLocalWaveletContainerFactory(DeltaStore)<br align="left"/></font></td></tr></table>>, shape=box]
+k_ab27ace4 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveletNotificationSubscriber<br align="left"/></font></td></tr></table>>, shape=box]
+k_6d08d305 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveDigester<br align="left"/></font></td></tr><tr><td align="left" port="m_3d5a1b27"><init></td></tr></table>>, shape=box]
+k_2050c643 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">DeltaAndSnapshotStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_52a8a871 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">CertPathStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_7c3a84a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SignatureHandler<br align="left"/></font></td></tr></table>>, shape=box]
+k_28873eb1 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveSignatureVerifier<br align="left"/></font></td></tr><tr><td align="left" port="m_a87b4d2a"><init></td></tr></table>>, shape=box]
+k_c3c30021 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=waveserver_disable_verification)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_c3c30021 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">true<br align="left"/></font></td></tr></table>>, shape=box]
+k_4ff24fca [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">PerUserWaveViewSubscriber<br align="left"/></font></td></tr><tr><td align="left" port="m_bf9bd871"><init></td></tr></table>>, shape=box]
+k_556cc59f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">DeltaStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_a7dbb996 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DeltaStoreBasedSnapshotStore<br align="left"/></font></td></tr><tr><td align="left" port="m_f7ad7a10"><init></td></tr></table>>, shape=box]
+k_928bb0fd [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileSignerInfoStore<br align="left"/></font></td></tr><tr><td align="left" port="m_d805501f"><init></td></tr></table>>, shape=box]
+k_70d75d3e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NonSigningSignatureHandler$NonSigningSignatureHandlerProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_6c0a518"><init></td></tr></table>>, shape=box]
+k_e19e23b5 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveCertPathValidator<br align="left"/></font></td></tr></table>>, shape=box]
+i_e19e23b5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:56<br align="left"/></font><font color="#ffffff">#provideWaveCertPathValidator(boolean, TimeSource, VerifiedCertChainCache, TrustRootsProvider)<br align="left"/></font></td></tr></table>>, shape=box]
+k_8823a3e5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileDeltaStore<br align="left"/></font></td></tr><tr><td align="left" port="m_408652f3"><init></td></tr></table>>, shape=box]
+k_4481b49f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=signer_info_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_4481b49f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_certificates"<br align="left"/></font></td></tr></table>>, shape=box]
+k_6bad9e01 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TrustRootsProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_2845e07 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">VerifiedCertChainCache<br align="left"/></font></td></tr></table>>, shape=box]
+k_4e3cfd49 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TimeSource<br align="left"/></font></td></tr></table>>, shape=box]
+k_ae676420 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=waveserver_disable_signer_verification)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_ae676420 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">true<br align="left"/></font></td></tr></table>>, shape=box]
+k_f7c49aa [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=delta_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_f7c49aa [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_deltas"<br align="left"/></font></td></tr></table>>, shape=box]
+k_2288b0a9 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultTrustRootsProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_518d5280"><init></td></tr></table>>, shape=box]
+k_d073cdd5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultCacheImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_5a8716ec"><init></td></tr></table>>, shape=box]
+k_fbd16a34 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultTimeSource<br align="left"/></font></td></tr><tr><td align="left" port="m_24dcbc5e"><init></td></tr></table>>, shape=box]
+k_c92e8c4d -> k_3208fff2 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2ca5daf6 -> k_ef0fca5f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_57676221 -> k_3e59236a [style=dashed, arrowtail=none, arrowhead=onormal]
+k_c2892102 -> k_9aa7b1a3 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_3208fff2 -> i_3208fff2 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_ef0fca5f -> i_ef0fca5f [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_e44414fe -> i_e44414fe [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_77c04a82 -> i_77c04a82 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_d7819d58 -> i_d7819d58 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_ec0eec1 -> i_ec0eec1 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_3025761f -> i_3025761f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4af18928 -> k_ae1a7ede [style=dashed, arrowtail=none, arrowhead=onormal]
+k_34d8ea68 -> k_ae1a7ede [style=dashed, arrowtail=none, arrowhead=onormal]
+k_bd577e32 -> k_ae1a7ede [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_efaafb9a -> k_4c3181a3 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_ed3850fe -> i_ed3850fe [style=dashed, arrowtail=none, arrowhead=onormal]
+k_50c5378e -> i_50c5378e [style=dashed, arrowtail=none, arrowhead=onormal]
+k_e32fd65a -> i_e32fd65a [style=dashed, arrowtail=none, arrowhead=onormal]
+k_c52e8b1f -> i_c52e8b1f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f190cf1a -> i_f190cf1a [style=dashed, arrowtail=none, arrowhead=onormal]
+k_9e4d04a6 -> i_9e4d04a6 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_e0cca2c0 -> i_e0cca2c0 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_571c5d0 -> i_571c5d0 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d05d4d -> i_d05d4d [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a599624d -> i_a599624d [style=dashed, arrowtail=none, arrowhead=onormal]
+k_23d1709 -> i_23d1709 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_975262ab -> i_975262ab [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f7b6406d -> k_76fbe1f5 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_779877f7 -> i_779877f7 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_91a74692 -> k_d7664ccd [style=dashed, arrowtail=none, arrowhead=onormal]
+k_23eb5148 -> i_23eb5148 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_713ad964 -> k_34146061 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_38aee1f8 -> k_23e4713d [style=dashed, arrowtail=none, arrowhead=onormal]
+k_157473fe -> k_a95a0142 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_1acc6318 -> k_6e7a86e2 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a4692fd8 -> k_211a147a [style=dashed, arrowtail=none, arrowhead=onormal]
+k_74d7c200 -> k_bcc05686 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_90277b38 -> k_4d9521fe [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4984b5f -> k_6d7939e2 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f4865409 -> k_74d84ba7 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a164c085 -> k_aa995474 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_313e6bb7 -> k_a1ef436f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_1e55cee9 -> k_d9cc655c [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2b3b226a -> k_be0df4f2 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d1eae4dc -> k_8d8763fc [style=dashed, arrowtail=none, arrowhead=onormal]
+k_19107f5b -> k_ce20d85e [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a0509078 -> k_33ad704e [style=dashed, arrowtail=none, arrowhead=onormal]
+k_45bff81a -> k_648b0d65 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f2e2f2a7 -> k_13cb7cfc [style=dashed, arrowtail=none, arrowhead=onormal]
+k_11ed20eb -> k_710db6c7 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_b8cb81fe -> k_9954bf2a [style=dashed, arrowtail=none, arrowhead=onormal]
+k_8453f77 -> k_ba1ed833 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_3c71cd07 -> k_9e1c3bcd [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4d085577 -> k_3e2c542c [style=dashed, arrowtail=none, arrowhead=onormal]
+k_cdb92fce -> k_27aebc9 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d1806ccf -> k_1522a94f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_94078109 -> k_94a0c3b7 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f4da46d1 -> k_78c34902 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_ab46457f -> k_994472f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f99f2b86 -> k_acd8cfab [style=dashed, arrowtail=none, arrowhead=onormal]
+k_8636f4ac -> k_6f494958 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_7ecc0a55 -> k_d357d6a [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a66e0dc0 -> k_cabb1647 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_24961ca8 -> k_2da29983 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_b81a1c1 -> k_2da29983 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_aa3c53ae -> k_26f8fb23 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2eb97c23 -> k_1e755bca [style=dashed, arrowtail=none, arrowhead=onormal]
+k_5fe7fac5 -> k_75cf6687 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_9f28c448 -> k_1ea1ab37 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_48c0beec -> k_c6d9dbe4 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_5676f2ec -> k_92a2ff20 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_3edb753c -> i_3edb753c [style=dashed, arrowtail=none, arrowhead=onormal]
+i_3edb753c:m_ea7d63:e -> k_5d423cd2 [style=solid, arrowtail=none, arrowhead=normal]
+k_e518eb99 -> k_8b7d57ca [style=dashed, arrowtail=none, arrowhead=onormal]
+k_79cc66c6 -> k_ebdd5943 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_3e59236a:m_84fd56bb:e -> k_5d423cd2 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e59236a:m_84fd56bb:e -> k_e20aa4f9 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e59236a:m_84fd56bb:e -> k_c2892102 [style=solid, arrowtail=none, arrowhead=normal]
+k_e20aa4f9:m_c910e7a6:e -> k_5d423cd2 [style=solid, arrowtail=none, arrowhead=normal]
+k_ae1a7ede:m_39b7e4fa:e -> k_ec0eec1 [style=solid, arrowtail=none, arrowhead=normal]
+k_ae1a7ede:m_39b7e4fa:e -> k_3025761f [style=solid, arrowtail=none, arrowhead=normal]
+k_33bd1bc8:m_724ea93f:e -> k_4af18928 [style=solid, arrowtail=none, arrowhead=normal]
+k_9b3b57fa:m_b7f26df5:e -> k_58b25e68 [style=solid, arrowtail=none, arrowhead=normal]
+k_b8b1fb55:m_b4a6ea93:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_fbf8f608:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_75d06daa:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_9a2f00cb:e -> k_8636f4ac [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_3f42d6ac:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_55fe5eeb:e -> k_a0509078 [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_f73bea64:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_aa5efde3:m_9359f431:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_3fdfa1f3:m_e765dc67:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_3fdfa1f3:m_1457c827:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_3fdfa1f3:m_116dcc06:e -> k_a51f5dd5 [style=solid, arrowtail=none, arrowhead=normal]
+k_f073050a:m_1d803b88:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_f073050a:m_1d803b88:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_f073050a:m_1d803b88:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_cc3648a:m_e17f200f:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_e01da407:m_ffdcacd3:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_e01da407:m_ffdcacd3:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_96a0f6e3:m_dadc2f23:e -> k_a32471fe [style=solid, arrowtail=none, arrowhead=normal]
+k_96a0f6e3:m_dadc2f23:e -> k_4eb32c88 [style=solid, arrowtail=none, arrowhead=normal]
+k_96a0f6e3:m_dadc2f23:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_96a0f6e3:m_dadc2f23:e -> k_e01da407 [style=solid, arrowtail=none, arrowhead=normal]
+k_96a0f6e3:m_dadc2f23:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_96a0f6e3:m_dadc2f23:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_4eb32c88:m_6683cfea:e -> k_5676f2ec [style=solid, arrowtail=none, arrowhead=normal]
+k_888ff559:m_6e568d1e:e -> k_d1a9c6cf [style=solid, arrowtail=none, arrowhead=normal]
+k_888ff559:m_6e568d1e:e -> k_deac30bd [style=solid, arrowtail=none, arrowhead=normal]
+k_a385bbee:m_7d837e0d:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_a385bbee:m_7d837e0d:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_a385bbee:m_7d837e0d:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_a385bbee:m_7d837e0d:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_a385bbee:m_7d837e0d:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_a385bbee:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_c39634b7:m_15dbf5cc:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_c39634b7:m_15dbf5cc:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_c39634b7:m_15dbf5cc:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_c39634b7:m_15dbf5cc:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_c39634b7:m_15dbf5cc:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_c39634b7:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_d29d0090:m_760be197:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_d29d0090:m_760be197:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_d29d0090:m_760be197:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_d29d0090:m_760be197:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_d29d0090:m_760be197:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_d29d0090:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_a9ff88e7:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_a9ff88e7:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_a9ff88e7:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_a9ff88e7:e -> k_74d84ba7 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_a9ff88e7:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_a9ff88e7:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_3e11d995:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_d7ead9b2:m_f138584c:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_d7ead9b2:m_f138584c:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_d7ead9b2:m_f138584c:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_d7ead9b2:m_f138584c:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_d7ead9b2:m_f138584c:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_d7ead9b2:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_bf14fe3a:m_3b84fb69:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_bf14fe3a:m_3b84fb69:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_bf14fe3a:m_3b84fb69:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_bf14fe3a:m_3b84fb69:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_bf14fe3a:m_3b84fb69:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_bf14fe3a:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_928ab46b:m_1e5046ac:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_928ab46b:m_1e5046ac:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_928ab46b:m_1e5046ac:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_928ab46b:m_1e5046ac:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_928ab46b:m_1e5046ac:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_928ab46b:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_1acc6318 [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_d1e0d2bd:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_a489c883:m_fce6b61b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_4c3181a3:m_535448fb:e -> k_ae1a7ede [style=solid, arrowtail=none, arrowhead=normal]
+k_76fbe1f5:m_4835dd36:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_d7664ccd:m_762b5a60:e -> k_34d8ea68 [style=solid, arrowtail=none, arrowhead=normal]
+k_d7664ccd:m_762b5a60:e -> k_4af18928 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_1e55cee9 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_313e6bb7 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_4984b5f [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_d09b5324 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_b81a1c1 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_2dec6c9 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_107a33fb [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_e01da407 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_34146061:m_a1db3271:e -> k_ed3bb2d4 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_c52e8b1f [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_74d7c200 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_571c5d0 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_a0509078 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_23e4713d:m_7182081:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_50c5378e [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_ed3850fe [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_7ecc0a55 [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_9e4d04a6 [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_19107f5b [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_e01da407 [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_a95a0142:m_540a509d:e -> k_8c7fc3dd [style=solid, arrowtail=none, arrowhead=normal]
+k_6e7a86e2:m_80d9bd00:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_211a147a:m_4eabfea5:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_211a147a:m_4eabfea5:e -> k_50c5378e [style=solid, arrowtail=none, arrowhead=normal]
+k_211a147a:m_4eabfea5:e -> k_ed3850fe [style=solid, arrowtail=none, arrowhead=normal]
+k_bcc05686:m_b8b71743:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_bcc05686:m_b8b71743:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_bcc05686:m_b8b71743:e -> k_571c5d0 [style=solid, arrowtail=none, arrowhead=normal]
+k_bcc05686:m_702001c6:e -> k_571c5d0 [style=solid, arrowtail=none, arrowhead=normal]
+k_4d9521fe:m_155ec683:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_4d9521fe:m_155ec683:e -> k_c52e8b1f [style=solid, arrowtail=none, arrowhead=normal]
+k_4d9521fe:m_155ec683:e -> k_f99f2b86 [style=solid, arrowtail=none, arrowhead=normal]
+k_4d9521fe:m_155ec683:e -> k_713ad964 [style=solid, arrowtail=none, arrowhead=normal]
+k_6d7939e2:m_101e3d67:e -> k_d09b5324 [style=solid, arrowtail=none, arrowhead=normal]
+k_74d84ba7:m_5a841140:e -> k_4984b5f [style=solid, arrowtail=none, arrowhead=normal]
+k_74d84ba7:m_5a841140:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_74d84ba7:m_5a841140:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_aa995474:m_4f9b8ac6:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_aa995474:m_4f9b8ac6:e -> k_d05d4d [style=solid, arrowtail=none, arrowhead=normal]
+k_a1ef436f:m_eb61cf5a:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_a1ef436f:m_eb61cf5a:e -> k_f190cf1a [style=solid, arrowtail=none, arrowhead=normal]
+k_d9cc655c:m_eccba8fc:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_d9cc655c:m_eccba8fc:e -> k_9e4d04a6 [style=solid, arrowtail=none, arrowhead=normal]
+k_be0df4f2:m_f548b735:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_be0df4f2:m_f548b735:e -> k_e0cca2c0 [style=solid, arrowtail=none, arrowhead=normal]
+k_be0df4f2:m_f548b735:e -> k_1e55cee9 [style=solid, arrowtail=none, arrowhead=normal]
+k_8d8763fc:m_aa2699dc:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_8d8763fc:m_aa2699dc:e -> k_a599624d [style=solid, arrowtail=none, arrowhead=normal]
+k_ce20d85e:m_b707ae9a:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_ce20d85e:m_b707ae9a:e -> k_d1eae4dc [style=solid, arrowtail=none, arrowhead=normal]
+k_ce20d85e:m_b707ae9a:e -> k_23d1709 [style=solid, arrowtail=none, arrowhead=normal]
+k_648b0d65:m_caed5f27:e -> k_779877f7 [style=solid, arrowtail=none, arrowhead=normal]
+k_648b0d65:m_caed5f27:e -> k_e32fd65a [style=solid, arrowtail=none, arrowhead=normal]
+k_13cb7cfc:m_d21306a0:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_13cb7cfc:m_d21306a0:e -> k_e01da407 [style=solid, arrowtail=none, arrowhead=normal]
+k_13cb7cfc:m_d21306a0:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_13cb7cfc:m_d21306a0:e -> k_c52e8b1f [style=solid, arrowtail=none, arrowhead=normal]
+k_13cb7cfc:m_d21306a0:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_13cb7cfc:m_d21306a0:e -> k_713ad964 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_713ad964 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_f4da46d1 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_74d7c200 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_d09b5324 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_1e55cee9 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_313e6bb7 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_710db6c7:m_94bc12fa:e -> k_45bff81a [style=solid, arrowtail=none, arrowhead=normal]
+k_9954bf2a:m_f8b7308a:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_9954bf2a:m_f8b7308a:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_9954bf2a:m_f8b7308a:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_9954bf2a:m_f8b7308a:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_9954bf2a:m_f8b7308a:e -> k_2501bc07 [style=solid, arrowtail=none, arrowhead=normal]
+k_9954bf2a:m_f8b7308a:e -> k_ba1ed833 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_7ecc0a55 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_8636f4ac [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_f99f2b86 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_a66e0dc0 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_ab46457f [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_19107f5b [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_f4865409 [style=solid, arrowtail=none, arrowhead=normal]
+k_ba1ed833:m_6bc89f50:e -> k_f2e2f2a7 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_c1b15a81 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_713ad964 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_4bf632c5 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_f4da46d1 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_f1928bf8 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_7ec03d78 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_2501bc07 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_ba1ed833 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_9e1c3bcd:m_ecb87f6:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_3e2c542c:m_b56ae5c8:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e2c542c:m_b56ae5c8:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e2c542c:m_b56ae5c8:e -> k_90277b38 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e2c542c:m_b56ae5c8:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e2c542c:m_b56ae5c8:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_3e2c542c:m_b56ae5c8:e -> k_ed3bb2d4 [style=solid, arrowtail=none, arrowhead=normal]
+k_27aebc9:m_20e4f4c3:e -> k_3208fff2 [style=solid, arrowtail=none, arrowhead=normal]
+k_27aebc9:m_20e4f4c3:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_27aebc9:m_20e4f4c3:e -> k_2b3b226a [style=solid, arrowtail=none, arrowhead=normal]
+k_27aebc9:m_20e4f4c3:e -> k_1e55cee9 [style=solid, arrowtail=none, arrowhead=normal]
+k_27aebc9:m_20e4f4c3:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_1522a94f:m_19f5554c:e -> k_ba1ed833 [style=solid, arrowtail=none, arrowhead=normal]
+k_1522a94f:m_19f5554c:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_1522a94f:m_19f5554c:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_94a0c3b7:m_29212e6a:e -> k_5fe7fac5 [style=solid, arrowtail=none, arrowhead=normal]
+k_94a0c3b7:m_29212e6a:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_94a0c3b7:m_29212e6a:e -> k_9f28c448 [style=solid, arrowtail=none, arrowhead=normal]
+k_78c34902:m_e2253da6:e -> k_90277b38 [style=solid, arrowtail=none, arrowhead=normal]
+k_78c34902:m_e2253da6:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_994472f:m_3ada629b:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_994472f:m_3ada629b:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_994472f:m_3ada629b:e -> k_b8b1fb55 [style=solid, arrowtail=none, arrowhead=normal]
+k_6f494958:m_63a0fdbf:e -> k_7ecc0a55 [style=solid, arrowtail=none, arrowhead=normal]
+k_6f494958:m_63a0fdbf:e -> k_f99f2b86 [style=solid, arrowtail=none, arrowhead=normal]
+k_d357d6a:m_2d8dc501:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_d357d6a:m_2d8dc501:e -> k_a4692fd8 [style=solid, arrowtail=none, arrowhead=normal]
+k_d357d6a:m_2d8dc501:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_d357d6a:m_2d8dc501:e -> k_a164c085 [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_90277b38 [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_19107f5b [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_f99f2b86 [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_24961ca8 [style=solid, arrowtail=none, arrowhead=normal]
+k_cabb1647:m_fc5df405:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_2da29983:m_1b1ed846:e -> k_2b3b226a [style=solid, arrowtail=none, arrowhead=normal]
+k_2da29983:m_1b1ed846:e -> k_c6d9dbe4 [style=solid, arrowtail=none, arrowhead=normal]
+k_2da29983:m_1b1ed846:e -> k_1e55cee9 [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_7034c7d2 [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_5ecb29e3 [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_66a99b94 [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_c5f43fe [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_e01da407 [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_ef3f9bf1 [style=solid, arrowtail=none, arrowhead=normal]
+k_26f8fb23:m_f42f63ac:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_1e755bca:m_a2bece9f:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_75cf6687:m_96bb30a1:e -> k_975262ab [style=solid, arrowtail=none, arrowhead=normal]
+k_75cf6687:m_96bb30a1:e -> k_c52e8b1f [style=solid, arrowtail=none, arrowhead=normal]
+k_75cf6687:m_96bb30a1:e -> k_50c5378e [style=solid, arrowtail=none, arrowhead=normal]
+k_c6d9dbe4:m_c72f445d:e -> k_713ad964 [style=solid, arrowtail=none, arrowhead=normal]
+k_c6d9dbe4:m_c72f445d:e -> k_c1b15a81 [style=solid, arrowtail=none, arrowhead=normal]
+k_92a2ff20:m_87014a14:e -> k_2eb97c23 [style=solid, arrowtail=none, arrowhead=normal]
+k_92a2ff20:m_87014a14:e -> k_aa3c53ae [style=solid, arrowtail=none, arrowhead=normal]
+k_92a2ff20:m_87014a14:e -> k_4984b5f [style=solid, arrowtail=none, arrowhead=normal]
+k_92a2ff20:m_87014a14:e -> k_b81a1c1 [style=solid, arrowtail=none, arrowhead=normal]
+k_92a2ff20:m_87014a14:e -> k_48c0beec [style=solid, arrowtail=none, arrowhead=normal]
+k_92a2ff20:m_87014a14:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_5d423cd2 -> i_5d423cd2 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_58b25e68:m_1b090b84:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_713ad964 [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_38aee1f8 [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_74d7c200 [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_1e55cee9 [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_313e6bb7 [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_2b3b226a [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_157473fe [style=solid, arrowtail=none, arrowhead=normal]
+k_58b25e68:m_1b090b84:e -> k_2da29983 [style=solid, arrowtail=none, arrowhead=normal]
+k_63626340:m_94b0e6a0:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_bbcefa18 -> i_bbcefa18 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a32471fe -> k_2721f26b [style=dashed, arrowtail=none, arrowhead=onormal]
+k_107a33fb -> k_6b87e61f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d09b5324:m_14070d2b:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_2dec6c9:m_145a2d5b:e -> k_107a33fb [style=solid, arrowtail=none, arrowhead=normal]
+k_2dec6c9:m_145a2d5b:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_2dec6c9:m_145a2d5b:e -> k_fcb759e6 [style=solid, arrowtail=none, arrowhead=normal]
+k_ed3bb2d4:m_f7fa287d:e -> k_4eb32c88 [style=solid, arrowtail=none, arrowhead=normal]
+k_ed3bb2d4:m_f7fa287d:e -> k_f3f49125 [style=solid, arrowtail=none, arrowhead=normal]
+k_2501bc07:m_de674d3e:e -> k_d7819d58 [style=solid, arrowtail=none, arrowhead=normal]
+k_7ec03d78:m_ab1e54db:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_7ec03d78:m_ab1e54db:e -> k_4bf632c5 [style=solid, arrowtail=none, arrowhead=normal]
+k_7ec03d78:m_ab1e54db:e -> k_f1928bf8 [style=solid, arrowtail=none, arrowhead=normal]
+k_4bf632c5 -> i_4bf632c5 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f1928bf8 -> k_81bf39cf [style=dashed, arrowtail=none, arrowhead=onormal]
+k_7034c7d2 -> i_7034c7d2 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_5ecb29e3 -> i_5ecb29e3 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_5ecb29e3:header:e -> k_f801e1f1 [style=solid, arrowtail=none, arrowhead=normal]
+k_ef3f9bf1 -> k_ea6f93fe [style=dashed, arrowtail=none, arrowhead=onormal]
+k_c5f43fe:m_cb039b61:e -> k_140c93ab [style=solid, arrowtail=none, arrowhead=normal]
+k_66a99b94 -> k_744f2334 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2721f26b:m_72bb3f17:e -> k_f7d047b9 [style=solid, arrowtail=none, arrowhead=normal]
+k_2721f26b:m_72bb3f17:e -> k_91161f83 [style=solid, arrowtail=none, arrowhead=normal]
+k_6b87e61f:m_2bca331e:e -> k_50cd9615 [style=solid, arrowtail=none, arrowhead=normal]
+k_fcb759e6 -> i_fcb759e6 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f3f49125:m_40754071:e -> k_ee7215a0 [style=solid, arrowtail=none, arrowhead=normal]
+k_81bf39cf:m_bc6356d8:e -> k_107a33fb [style=solid, arrowtail=none, arrowhead=normal]
+k_81bf39cf:m_bc6356d8:e -> k_3e09faf2 [style=solid, arrowtail=none, arrowhead=normal]
+k_f801e1f1:m_22b30b9b:e -> k_74c3c0d2 [style=solid, arrowtail=none, arrowhead=normal]
+k_ea6f93fe:m_b9a42285:e -> k_d63563c2 [style=solid, arrowtail=none, arrowhead=normal]
+k_ea6f93fe:m_b9a42285:e -> k_c898c54b [style=solid, arrowtail=none, arrowhead=normal]
+k_ea6f93fe:m_b9a42285:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_140c93ab -> i_140c93ab [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_140c93ab:header:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+i_140c93ab:header:e -> k_33570740 [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_ca34da5f [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_f7d047b9 [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_9831ace4 [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_73658105 [style=solid, arrowtail=none, arrowhead=normal]
+k_91161f83 -> k_c9a11a3 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f7d047b9 -> k_dbdd067e [style=dashed, arrowtail=none, arrowhead=onormal]
+k_50cd9615 -> i_50cd9615 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_ee7215a0:m_30d2c19e:e -> k_63626340 [style=solid, arrowtail=none, arrowhead=normal]
+k_3e09faf2 -> k_a0ee12e3 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_74c3c0d2 -> k_5293dba6 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d63563c2:m_c73d3a59:e -> k_529b935b [style=solid, arrowtail=none, arrowhead=normal]
+k_c898c54b:m_946dead5:e -> k_7b520ec6 [style=solid, arrowtail=none, arrowhead=normal]
+k_c898c54b:m_946dead5:e -> k_ef3f9bf1 [style=solid, arrowtail=none, arrowhead=normal]
+k_33570740 -> i_33570740 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_33570740:header:e -> k_c3234f04 [style=solid, arrowtail=none, arrowhead=normal]
+k_ca34da5f -> i_ca34da5f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_9831ace4 -> k_c5aa0274 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_73658105:m_a29919e6:e -> k_2050c643 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_ab27ace4 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_a32471fe [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_7b747c12 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_218c2334 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_6d08d305 [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_c3c30021 [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_7c3a84a [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_28873eb1 [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_52a8a871 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_a32471fe [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_6d08d305 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_73658105 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_4ff24fca [style=solid, arrowtail=none, arrowhead=normal]
+k_7b520ec6:m_4e215f96:e -> k_3208fff2 [style=solid, arrowtail=none, arrowhead=normal]
+k_c3234f04 -> i_c3234f04 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_218c2334 -> i_218c2334 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_218c2334:header:e -> k_556cc59f [style=solid, arrowtail=none, arrowhead=normal]
+k_7b747c12 -> i_7b747c12 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_7b747c12:header:e -> k_556cc59f [style=solid, arrowtail=none, arrowhead=normal]
+k_ab27ace4 -> k_2721f26b [style=dashed, arrowtail=none, arrowhead=onormal]
+k_6d08d305:m_3d5a1b27:e -> k_c5f43fe [style=solid, arrowtail=none, arrowhead=normal]
+k_2050c643 -> k_a7dbb996 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_52a8a871 -> k_928bb0fd [style=dashed, arrowtail=none, arrowhead=onormal]
+k_7c3a84a -> k_70d75d3e [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_28873eb1:m_a87b4d2a:e -> k_e19e23b5 [style=solid, arrowtail=none, arrowhead=normal]
+k_28873eb1:m_a87b4d2a:e -> k_52a8a871 [style=solid, arrowtail=none, arrowhead=normal]
+k_c3c30021 -> i_c3c30021 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4ff24fca:m_bf9bd871:e -> k_73658105 [style=solid, arrowtail=none, arrowhead=normal]
+k_556cc59f -> k_8823a3e5 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_a7dbb996:m_f7ad7a10:e -> k_556cc59f [style=solid, arrowtail=none, arrowhead=normal]
+k_928bb0fd:m_d805501f:e -> k_4481b49f [style=solid, arrowtail=none, arrowhead=normal]
+k_70d75d3e:m_6c0a518:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_e19e23b5 -> i_e19e23b5 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_e19e23b5:header:e -> k_ae676420 [style=solid, arrowtail=none, arrowhead=normal]
+i_e19e23b5:header:e -> k_4e3cfd49 [style=solid, arrowtail=none, arrowhead=normal]
+i_e19e23b5:header:e -> k_2845e07 [style=solid, arrowtail=none, arrowhead=normal]
+i_e19e23b5:header:e -> k_6bad9e01 [style=solid, arrowtail=none, arrowhead=normal]
+k_8823a3e5:m_408652f3:e -> k_f7c49aa [style=solid, arrowtail=none, arrowhead=normal]
+k_4481b49f -> i_4481b49f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_6bad9e01 -> k_2288b0a9 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2845e07 -> k_d073cdd5 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4e3cfd49 -> k_fbd16a34 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_ae676420 -> i_ae676420 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f7c49aa -> i_f7c49aa [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d073cdd5:m_5a8716ec:e -> k_4e3cfd49 [style=solid, arrowtail=none, arrowhead=normal]
+}
Added: trunk/docs/kune-guice-graph.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/kune-guice-graph.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/kune-guice-graph.svg
===================================================================
--- trunk/docs/kune-guice-graph.svg (rev 0)
+++ trunk/docs/kune-guice-graph.svg 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,3040 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: injector Pages: 1 -->
+<svg width="8571pt" height="3366pt"
+ viewBox="0.00 0.00 8571.13 3366.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 3362)">
+<title>injector</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-3362 8568.13,-3362 8568.13,5 -4,5"/>
+<!-- k_95598cb0 -->
+<g id="node1" class="node"><title>k_95598cb0</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6083.13,-1288 5965.13,-1288 5965.13,-1252 6083.13,-1252 6083.13,-1288"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5966.13,-1257 5966.13,-1282 6083.13,-1282 6083.13,-1257 5966.13,-1257"/>
+<text text-anchor="start" x="5971.13" y="-1266.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ServletRequest</text>
+</g>
+<!-- k_fd02c51c -->
+<g id="node5" class="node"><title>k_fd02c51c</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6011.13,-1196 5863.13,-1196 5863.13,-1160 6011.13,-1160 6011.13,-1196"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5864.13,-1165 5864.13,-1190 6011.13,-1190 6011.13,-1165 5864.13,-1165"/>
+<text text-anchor="start" x="5869.13" y="-1174.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">HttpServletRequest</text>
+</g>
+<!-- k_95598cb0->k_fd02c51c -->
+<g id="edge2" class="edge"><title>k_95598cb0->k_fd02c51c</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6006.94,-1251.82C5993.95,-1238.09 5975.95,-1219.05 5961.48,-1203.75"/>
+<polygon fill="none" stroke="black" points="5963.7,-1201 5954.28,-1196.14 5958.61,-1205.81 5963.7,-1201"/>
+</g>
+<!-- k_13ba34b9 -->
+<g id="node2" class="node"><title>k_13ba34b9</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6411.13,-3348 6283.13,-3348 6283.13,-3312 6411.13,-3312 6411.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6284.13,-3317 6284.13,-3342 6410.13,-3342 6410.13,-3317 6284.13,-3317"/>
+<text text-anchor="start" x="6289.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ServletResponse</text>
+</g>
+<!-- k_78bb7008 -->
+<g id="node7" class="node"><title>k_78bb7008</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6426.13,-3256 6268.13,-3256 6268.13,-3220 6426.13,-3220 6426.13,-3256"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6269.13,-3225 6269.13,-3250 6425.13,-3250 6425.13,-3225 6269.13,-3225"/>
+<text text-anchor="start" x="6274.13" y="-3234.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">HttpServletResponse</text>
+</g>
+<!-- k_13ba34b9->k_78bb7008 -->
+<g id="edge4" class="edge"><title>k_13ba34b9->k_78bb7008</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6347.13,-3311.82C6347.13,-3298.85 6347.13,-3281.13 6347.13,-3266.31"/>
+<polygon fill="none" stroke="black" points="6350.63,-3266.14 6347.13,-3256.14 6343.63,-3266.14 6350.63,-3266.14"/>
+</g>
+<!-- k_967da645 -->
+<g id="node3" class="node"><title>k_967da645</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6719.13,-3348 6617.13,-3348 6617.13,-3312 6719.13,-3312 6719.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6618.13,-3317 6618.13,-3342 6719.13,-3342 6719.13,-3317 6618.13,-3317"/>
+<text text-anchor="start" x="6623.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">FilterPipeline</text>
+</g>
+<!-- k_f8162078 -->
+<!-- k_967da645->k_f8162078 -->
+<g id="edge6" class="edge"><title>k_967da645->k_f8162078</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6668.13,-3311.82C6668.13,-3301.51 6668.13,-3288.22 6668.13,-3275.76"/>
+<polygon fill="none" stroke="black" points="6671.63,-3275.57 6668.13,-3265.57 6664.63,-3275.57 6671.63,-3275.57"/>
+</g>
+<!-- k_6611e204 -->
+<g id="node4" class="node"><title>k_6611e204</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6637.13,-3157 6519.13,-3157 6519.13,-3121 6637.13,-3121 6637.13,-3157"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6520.13,-3126 6520.13,-3151 6637.13,-3151 6637.13,-3126 6520.13,-3126"/>
+<text text-anchor="start" x="6525.13" y="-3135.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ServletContext</text>
+</g>
+<!-- k_a5f0659e -->
+<!-- k_6611e204->k_a5f0659e -->
+<g id="edge8" class="edge"><title>k_6611e204->k_a5f0659e</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6577.63,-3120.51C6577.3,-3108.06 6576.85,-3091.05 6576.41,-3074.95"/>
+<polygon fill="none" stroke="black" points="6579.64,-3064.66 6575.87,-3054.76 6572.64,-3064.85 6579.64,-3064.66"/>
+<polygon fill="none" stroke="black" points="6579.91,-3074.66 6576.14,-3064.75 6572.91,-3074.84 6579.91,-3074.66"/>
+</g>
+<!-- i_fd02c51c -->
+<!-- k_fd02c51c->i_fd02c51c -->
+<g id="edge10" class="edge"><title>k_fd02c51c->i_fd02c51c</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5937.13,-1159.82C5937.13,-1150.7 5937.13,-1139.23 5937.13,-1128.07"/>
+<polygon fill="none" stroke="black" points="5940.63,-1117.7 5937.13,-1107.7 5933.63,-1117.7 5940.63,-1117.7"/>
+<polygon fill="none" stroke="black" points="5940.63,-1127.7 5937.13,-1117.7 5933.63,-1127.7 5940.63,-1127.7"/>
+</g>
+<!-- i_78bb7008 -->
+<!-- k_78bb7008->i_78bb7008 -->
+<g id="edge12" class="edge"><title>k_78bb7008->i_78bb7008</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6347.13,-3219.84C6347.13,-3208.93 6347.13,-3194.55 6347.13,-3180.96"/>
+<polygon fill="none" stroke="black" points="6350.63,-3170.84 6347.13,-3160.84 6343.63,-3170.84 6350.63,-3170.84"/>
+<polygon fill="none" stroke="black" points="6350.63,-3180.84 6347.13,-3170.84 6343.63,-3180.84 6350.63,-3180.84"/>
+</g>
+<!-- k_967b87ca -->
+<g id="node9" class="node"><title>k_967b87ca</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="7249.13,-3348 7153.13,-3348 7153.13,-3312 7249.13,-3312 7249.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="7154.13,-3317 7154.13,-3342 7248.13,-3342 7248.13,-3317 7154.13,-3317"/>
+<text text-anchor="start" x="7159.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">HttpSession</text>
+</g>
+<!-- i_967b87ca -->
+<!-- k_967b87ca->i_967b87ca -->
+<g id="edge14" class="edge"><title>k_967b87ca->i_967b87ca</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M7201.13,-3311.82C7201.13,-3302.7 7201.13,-3291.23 7201.13,-3280.07"/>
+<polygon fill="none" stroke="black" points="7204.63,-3269.7 7201.13,-3259.7 7197.63,-3269.7 7204.63,-3269.7"/>
+<polygon fill="none" stroke="black" points="7204.63,-3279.7 7201.13,-3269.7 7197.63,-3279.7 7204.63,-3279.7"/>
+</g>
+<!-- k_42e7d7b3 -->
+<g id="node11" class="node"><title>k_42e7d7b3</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="7501.13,-3350.5 7331.13,-3350.5 7331.13,-3309.5 7501.13,-3309.5 7501.13,-3350.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="7332.13,-3310 7332.13,-3349 7500.13,-3349 7500.13,-3310 7332.13,-3310"/>
+<text text-anchor="start" x="7337.13" y="-3336.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@RequestParameters</text>
+<text text-anchor="start" x="7337.13" y="-3321.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Map<String, String[]></text>
+</g>
+<!-- i_42e7d7b3 -->
+<!-- k_42e7d7b3->i_42e7d7b3 -->
+<g id="edge16" class="edge"><title>k_42e7d7b3->i_42e7d7b3</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M7416.13,-3309.12C7416.13,-3300.49 7416.13,-3290.15 7416.13,-3280.06"/>
+<polygon fill="none" stroke="black" points="7419.63,-3269.75 7416.13,-3259.75 7412.63,-3269.75 7419.63,-3269.75"/>
+<polygon fill="none" stroke="black" points="7419.63,-3279.75 7416.13,-3269.75 7412.63,-3279.75 7419.63,-3279.75"/>
+</g>
+<!-- k_5fde4291 -->
+<g id="node13" class="node"><title>k_5fde4291</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="7677.13,-3350.5 7561.13,-3350.5 7561.13,-3309.5 7677.13,-3309.5 7677.13,-3350.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="7562.13,-3310 7562.13,-3349 7676.13,-3349 7676.13,-3310 7562.13,-3310"/>
+<text text-anchor="start" x="7567.13" y="-3336.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Internal(value=1)</text>
+<text text-anchor="start" x="7567.13" y="-3321.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">FilterDefinition</text>
+</g>
+<!-- i_5fde4291 -->
+<!-- k_5fde4291->i_5fde4291 -->
+<g id="edge18" class="edge"><title>k_5fde4291->i_5fde4291</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M7619.13,-3309.12C7619.13,-3300.49 7619.13,-3290.15 7619.13,-3280.06"/>
+<polygon fill="none" stroke="black" points="7622.63,-3269.75 7619.13,-3259.75 7615.63,-3269.75 7622.63,-3269.75"/>
+<polygon fill="none" stroke="black" points="7622.63,-3279.75 7619.13,-3269.75 7615.63,-3279.75 7622.63,-3279.75"/>
+</g>
+<!-- k_9d43c1d5 -->
+<g id="node15" class="node"><title>k_9d43c1d5</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4441.13,-2352 4337.13,-2352 4337.13,-2316 4441.13,-2316 4441.13,-2352"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4338.13,-2321 4338.13,-2346 4441.13,-2346 4441.13,-2321 4338.13,-2321"/>
+<text text-anchor="start" x="4343.13" y="-2330.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">UserManager</text>
+</g>
+<!-- k_bd2e368b -->
+<!-- k_9d43c1d5->k_bd2e368b -->
+<g id="edge20" class="edge"><title>k_9d43c1d5->k_bd2e368b</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4441.31,-2316.15C4477.68,-2303.72 4527.08,-2286.82 4569.55,-2272.29"/>
+<polygon fill="none" stroke="black" points="4570.73,-2275.59 4579.06,-2269.04 4568.46,-2268.97 4570.73,-2275.59"/>
+</g>
+<!-- k_cd819caf -->
+<g id="node16" class="node"><title>k_cd819caf</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2841.13,-1958 2725.13,-1958 2725.13,-1922 2841.13,-1922 2841.13,-1958"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2726.13,-1927 2726.13,-1952 2840.13,-1952 2840.13,-1927 2726.13,-1927"/>
+<text text-anchor="start" x="2731.13" y="-1936.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">GroupManager</text>
+</g>
+<!-- k_ce071950 -->
+<!-- k_cd819caf->k_ce071950 -->
+<g id="edge22" class="edge"><title>k_cd819caf->k_ce071950</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2725,-1929.09C2641.67,-1913.44 2487.33,-1884.46 2387.5,-1865.72"/>
+<polygon fill="none" stroke="black" points="2387.89,-1862.23 2377.42,-1863.83 2386.6,-1869.11 2387.89,-1862.23"/>
+</g>
+<!-- k_fe8ab28b -->
+<g id="node17" class="node"><title>k_fe8ab28b</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1311.13,-2352 1181.13,-2352 1181.13,-2316 1311.13,-2316 1311.13,-2352"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1182.13,-2321 1182.13,-2346 1310.13,-2346 1310.13,-2321 1182.13,-2321"/>
+<text text-anchor="start" x="1187.13" y="-2330.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ContentManager</text>
+</g>
+<!-- k_2dde583f -->
+<!-- k_fe8ab28b->k_2dde583f -->
+<g id="edge24" class="edge"><title>k_fe8ab28b->k_2dde583f</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1271.42,-2315.82C1287.41,-2304.33 1308.57,-2289.12 1327.53,-2275.5"/>
+<polygon fill="none" stroke="black" points="1329.7,-2278.25 1335.77,-2269.57 1325.61,-2272.56 1329.7,-2278.25"/>
+</g>
+<!-- k_79d9c91b -->
+<g id="node18" class="node"><title>k_79d9c91b</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="895.13,-2640 701.13,-2640 701.13,-2604 895.13,-2604 895.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="702.13,-2609 702.13,-2634 894.13,-2634 894.13,-2609 702.13,-2609"/>
+<text text-anchor="start" x="707.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ToolConfigurationManager</text>
+</g>
+<!-- k_af50407e -->
+<!-- k_79d9c91b->k_af50407e -->
+<g id="edge26" class="edge"><title>k_79d9c91b->k_af50407e</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M794.251,-2603.98C784.307,-2557.79 757.736,-2434.36 744.239,-2371.67"/>
+<polygon fill="none" stroke="black" points="747.638,-2370.83 742.111,-2361.79 740.794,-2372.3 747.638,-2370.83"/>
+</g>
+<!-- k_8059d21c -->
+<g id="node19" class="node"><title>k_8059d21c</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="565.13,-1958 423.13,-1958 423.13,-1922 565.13,-1922 565.13,-1958"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="424.13,-1927 424.13,-1952 564.13,-1952 564.13,-1927 424.13,-1927"/>
+<text text-anchor="start" x="429.13" y="-1936.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ContainerManager</text>
+</g>
+<!-- k_b8507171 -->
+<!-- k_8059d21c->k_b8507171 -->
+<g id="edge28" class="edge"><title>k_8059d21c->k_b8507171</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M482.868,-1921.82C476.225,-1911.1 467.581,-1897.15 459.598,-1884.26"/>
+<polygon fill="none" stroke="black" points="462.452,-1882.23 454.21,-1875.57 456.501,-1885.91 462.452,-1882.23"/>
+</g>
+<!-- k_429c8161 -->
+<g id="node20" class="node"><title>k_429c8161</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2878.13,-1774 2754.13,-1774 2754.13,-1738 2878.13,-1738 2878.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2755.13,-1743 2755.13,-1768 2878.13,-1768 2878.13,-1743 2755.13,-1743"/>
+<text text-anchor="start" x="2760.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">LicenseManager</text>
+</g>
+<!-- k_d7fdc6fa -->
+<!-- k_429c8161->k_d7fdc6fa -->
+<g id="edge30" class="edge"><title>k_429c8161->k_d7fdc6fa</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2805.85,-1737.71C2800.06,-1727.4 2792.51,-1713.97 2785.09,-1700.77"/>
+<polygon fill="none" stroke="black" points="2787.95,-1698.71 2780,-1691.71 2781.85,-1702.14 2787.95,-1698.71"/>
+</g>
+<!-- k_e829e8e2 -->
+<g id="node21" class="node"><title>k_e829e8e2</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3763.13,-2640 3591.13,-2640 3591.13,-2604 3763.13,-2604 3763.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3592.13,-2609 3592.13,-2634 3763.13,-2634 3763.13,-2609 3592.13,-2609"/>
+<text text-anchor="start" x="3597.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SocialNetworkManager</text>
+</g>
+<!-- k_672c32f9 -->
+<!-- k_e829e8e2->k_672c32f9 -->
+<g id="edge32" class="edge"><title>k_e829e8e2->k_672c32f9</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3675.06,-2603.99C3672.25,-2579.46 3667.15,-2534.93 3663.47,-2502.88"/>
+<polygon fill="none" stroke="black" points="3666.9,-2502.07 3662.29,-2492.53 3659.95,-2502.86 3666.9,-2502.07"/>
+</g>
+<!-- k_e65a2cb5 -->
+<g id="node22" class="node"><title>k_e65a2cb5</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4946.13,-1774 4834.13,-1774 4834.13,-1738 4946.13,-1738 4946.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4835.13,-1743 4835.13,-1768 4946.13,-1768 4946.13,-1743 4835.13,-1743"/>
+<text text-anchor="start" x="4840.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">XmppManager</text>
+</g>
+<!-- k_550eb5f6 -->
+<!-- k_e65a2cb5->k_550eb5f6 -->
+<g id="edge34" class="edge"><title>k_e65a2cb5->k_550eb5f6</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4890.48,-1737.71C4890.74,-1724.18 4891.1,-1705.29 4891.41,-1688.59"/>
+<polygon fill="none" stroke="black" points="4894.91,-1688.61 4891.6,-1678.54 4887.92,-1688.48 4894.91,-1688.61"/>
+</g>
+<!-- k_fe12a512 -->
+<g id="node23" class="node"><title>k_fe12a512</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2051.13,-3045 1945.13,-3045 1945.13,-3009 2051.13,-3009 2051.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1946.13,-3014 1946.13,-3039 2051.13,-3039 2051.13,-3014 1946.13,-3014"/>
+<text text-anchor="start" x="1951.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ChatManager</text>
+</g>
+<!-- k_b69674be -->
+<!-- k_fe12a512->k_b69674be -->
+<g id="edge36" class="edge"><title>k_fe12a512->k_b69674be</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1991.21,-3008.91C1979,-2977 1953.4,-2910.1 1937.3,-2868.04"/>
+<polygon fill="none" stroke="black" points="1940.57,-2866.78 1933.73,-2858.69 1934.03,-2869.28 1940.57,-2866.78"/>
+</g>
+<!-- k_54c1d756 -->
+<g id="node24" class="node"><title>k_54c1d756</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1020.13,-1958 914.13,-1958 914.13,-1922 1020.13,-1922 1020.13,-1958"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="915.13,-1927 915.13,-1952 1019.13,-1952 1019.13,-1927 915.13,-1927"/>
+<text text-anchor="start" x="920.13" y="-1936.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">RateManager</text>
+</g>
+<!-- k_891c668a -->
+<!-- k_54c1d756->k_891c668a -->
+<g id="edge38" class="edge"><title>k_54c1d756->k_891c668a</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M933.346,-1921.82C911.405,-1910.02 882.185,-1894.3 856.35,-1880.4"/>
+<polygon fill="none" stroke="black" points="857.835,-1877.22 847.37,-1875.57 854.518,-1883.39 857.835,-1877.22"/>
+</g>
+<!-- k_9d34b335 -->
+<g id="node25" class="node"><title>k_9d34b335</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4121.13,-2168 3961.13,-2168 3961.13,-2132 4121.13,-2132 4121.13,-2168"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3962.13,-2137 3962.13,-2162 4121.13,-2162 4121.13,-2137 3962.13,-2137"/>
+<text text-anchor="start" x="3967.13" y="-2146.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nCountryManager</text>
+</g>
+<!-- k_d30a49b4 -->
+<!-- k_9d34b335->k_d30a49b4 -->
+<g id="edge40" class="edge"><title>k_9d34b335->k_d30a49b4</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4081.01,-2131.95C4114.43,-2116.83 4162.93,-2094.88 4202.83,-2076.82"/>
+<polygon fill="none" stroke="black" points="4204.32,-2079.98 4211.99,-2072.67 4201.44,-2073.6 4204.32,-2079.98"/>
+</g>
+<!-- k_bebd50c7 -->
+<g id="node26" class="node"><title>k_bebd50c7</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3922.13,-1380 3750.13,-1380 3750.13,-1344 3922.13,-1344 3922.13,-1380"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3751.13,-1349 3751.13,-1374 3922.13,-1374 3922.13,-1349 3751.13,-1349"/>
+<text text-anchor="start" x="3756.13" y="-1358.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nLanguageManager</text>
+</g>
+<!-- k_a76b388f -->
+<!-- k_bebd50c7->k_a76b388f -->
+<g id="edge42" class="edge"><title>k_bebd50c7->k_a76b388f</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3801.75,-1343.82C3779.43,-1332.02 3749.7,-1316.3 3723.41,-1302.4"/>
+<polygon fill="none" stroke="black" points="3724.75,-1299.15 3714.27,-1297.57 3721.47,-1305.34 3724.75,-1299.15"/>
+</g>
+<!-- k_6d495d8 -->
+<g id="node27" class="node"><title>k_6d495d8</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3587.13,-1564 3407.13,-1564 3407.13,-1528 3587.13,-1528 3587.13,-1564"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3408.13,-1533 3408.13,-1558 3587.13,-1558 3587.13,-1533 3408.13,-1533"/>
+<text text-anchor="start" x="3413.13" y="-1542.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nTranslationManager</text>
+</g>
+<!-- k_a0aaa852 -->
+<!-- k_6d495d8->k_a0aaa852 -->
+<g id="edge44" class="edge"><title>k_6d495d8->k_a0aaa852</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3406.98,-1528.32C3335.66,-1514.33 3235.18,-1494.62 3155.63,-1479.01"/>
+<polygon fill="none" stroke="black" points="3156.02,-1475.52 3145.54,-1477.03 3154.68,-1482.39 3156.02,-1475.52"/>
+</g>
+<!-- k_c1f839a6 -->
+<g id="node28" class="node"><title>k_c1f839a6</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="993.13,-1380 897.13,-1380 897.13,-1344 993.13,-1344 993.13,-1380"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="898.13,-1349 898.13,-1374 993.13,-1374 993.13,-1349 898.13,-1349"/>
+<text text-anchor="start" x="903.13" y="-1358.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">TagManager</text>
+</g>
+<!-- k_cdd80b0b -->
+<!-- k_c1f839a6->k_cdd80b0b -->
+<g id="edge46" class="edge"><title>k_c1f839a6->k_cdd80b0b</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M942.364,-1343.82C940.795,-1333.51 938.771,-1320.22 936.875,-1307.76"/>
+<polygon fill="none" stroke="black" points="940.289,-1306.93 935.325,-1297.57 933.369,-1307.98 940.289,-1306.93"/>
+</g>
+<!-- k_49a1fb25 -->
+<g id="node29" class="node"><title>k_49a1fb25</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1157.13,-2168 973.13,-2168 973.13,-2132 1157.13,-2132 1157.13,-2168"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="974.13,-2137 974.13,-2162 1157.13,-2162 1157.13,-2137 974.13,-2137"/>
+<text text-anchor="start" x="979.13" y="-2146.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">TagUserContentManager</text>
+</g>
+<!-- k_c3321797 -->
+<!-- k_49a1fb25->k_c3321797 -->
+<g id="edge48" class="edge"><title>k_49a1fb25->k_c3321797</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1069.65,-2131.61C1085.94,-2062.45 1138.73,-1811.61 1100.13,-1610 1091.99,-1567.46 1072.4,-1521.73 1057.4,-1490.86"/>
+<polygon fill="none" stroke="black" points="1060.48,-1489.19 1052.91,-1481.77 1054.21,-1492.29 1060.48,-1489.19"/>
+</g>
+<!-- k_a939ddfc -->
+<g id="node30" class="node"><title>k_a939ddfc</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2528.13,-1774 2432.13,-1774 2432.13,-1738 2528.13,-1738 2528.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2433.13,-1743 2433.13,-1768 2528.13,-1768 2528.13,-1743 2433.13,-1743"/>
+<text text-anchor="start" x="2438.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">FileManager</text>
+</g>
+<!-- k_397ca544 -->
+<!-- k_a939ddfc->k_397ca544 -->
+<g id="edge50" class="edge"><title>k_a939ddfc->k_397ca544</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2480.13,-1737.71C2480.13,-1724.18 2480.13,-1705.29 2480.13,-1688.59"/>
+<polygon fill="none" stroke="black" points="2483.63,-1688.54 2480.13,-1678.54 2476.63,-1688.54 2483.63,-1688.54"/>
+</g>
+<!-- k_f516f38 -->
+<g id="node31" class="node"><title>k_f516f38</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4779.13,-3045 4591.13,-3045 4591.13,-3009 4779.13,-3009 4779.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4592.13,-3014 4592.13,-3039 4778.13,-3039 4778.13,-3014 4592.13,-3014"/>
+<text text-anchor="start" x="4597.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ExtMediaDescripManager</text>
+</g>
+<!-- k_68db9ec8 -->
+<!-- k_f516f38->k_68db9ec8 -->
+<g id="edge52" class="edge"><title>k_f516f38->k_68db9ec8</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4679.78,-3008.91C4670.35,-2977.06 4650.62,-2910.38 4638.17,-2868.31"/>
+<polygon fill="none" stroke="black" points="4641.52,-2867.29 4635.32,-2858.69 4634.81,-2869.27 4641.52,-2867.29"/>
+</g>
+<!-- k_35e58938 -->
+<g id="node32" class="node"><title>k_35e58938</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2898.13,-3045 2752.13,-3045 2752.13,-3009 2898.13,-3009 2898.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2753.13,-3014 2753.13,-3039 2898.13,-3039 2898.13,-3014 2753.13,-3014"/>
+<text text-anchor="start" x="2758.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">KuneWaveManager</text>
+</g>
+<!-- k_2aeba352 -->
+<!-- k_35e58938->k_2aeba352 -->
+<g id="edge54" class="edge"><title>k_35e58938->k_2aeba352</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2842.03,-3008.89C2889.35,-2957.89 3026.58,-2808.22 3131.13,-2676 3178.31,-2616.33 3228.95,-2543.57 3257.96,-2500.96"/>
+<polygon fill="none" stroke="black" points="3260.91,-2502.83 3263.63,-2492.59 3255.12,-2498.9 3260.91,-2502.83"/>
+</g>
+<!-- k_27120b47 -->
+<g id="node33" class="node"><title>k_27120b47</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5189.13,-3256 5099.13,-3256 5099.13,-3220 5189.13,-3220 5189.13,-3256"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5100.13,-3225 5100.13,-3250 5189.13,-3250 5189.13,-3225 5100.13,-3225"/>
+<text text-anchor="start" x="5105.13" y="-3234.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SiteService</text>
+</g>
+<!-- k_49441f7c -->
+<!-- k_27120b47->k_49441f7c -->
+<g id="edge56" class="edge"><title>k_27120b47->k_49441f7c</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5144.13,-3219.84C5144.13,-3207.89 5144.13,-3191.81 5144.13,-3177.13"/>
+<polygon fill="none" stroke="black" points="5147.63,-3176.77 5144.13,-3166.77 5140.63,-3176.77 5147.63,-3176.77"/>
+</g>
+<!-- k_ea4fb6fe -->
+<g id="node34" class="node"><title>k_ea4fb6fe</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3530.13,-3348 3424.13,-3348 3424.13,-3312 3530.13,-3312 3530.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3425.13,-3317 3425.13,-3342 3530.13,-3342 3530.13,-3317 3425.13,-3317"/>
+<text text-anchor="start" x="3430.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">GroupService</text>
+</g>
+<!-- k_8fd7bcd5 -->
+<!-- k_ea4fb6fe->k_8fd7bcd5 -->
+<g id="edge58" class="edge"><title>k_ea4fb6fe->k_8fd7bcd5</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3477.13,-3311.82C3477.13,-3301.51 3477.13,-3288.22 3477.13,-3275.76"/>
+<polygon fill="none" stroke="black" points="3480.63,-3275.57 3477.13,-3265.57 3473.63,-3275.57 3480.63,-3275.57"/>
+</g>
+<!-- k_ef8f1942 -->
+<g id="node35" class="node"><title>k_ef8f1942</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2128.13,-3256 2008.13,-3256 2008.13,-3220 2128.13,-3220 2128.13,-3256"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2009.13,-3225 2009.13,-3250 2127.13,-3250 2127.13,-3225 2009.13,-3225"/>
+<text text-anchor="start" x="2014.13" y="-3234.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ContentService</text>
+</g>
+<!-- k_20a2e5ab -->
+<!-- k_ef8f1942->k_20a2e5ab -->
+<g id="edge60" class="edge"><title>k_ef8f1942->k_20a2e5ab</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2082.07,-3219.84C2091.69,-3207.31 2104.8,-3190.23 2116.49,-3175"/>
+<polygon fill="none" stroke="black" points="2119.5,-3176.83 2122.81,-3166.77 2113.95,-3172.57 2119.5,-3176.83"/>
+</g>
+<!-- k_f972cca4 -->
+<g id="node36" class="node"><title>k_f972cca4</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5557.13,-3348 5463.13,-3348 5463.13,-3312 5557.13,-3312 5557.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5464.13,-3317 5464.13,-3342 5557.13,-3342 5557.13,-3317 5464.13,-3317"/>
+<text text-anchor="start" x="5469.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">UserService</text>
+</g>
+<!-- k_f37daf18 -->
+<!-- k_f972cca4->k_f37daf18 -->
+<g id="edge62" class="edge"><title>k_f972cca4->k_f37daf18</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5510.13,-3311.82C5510.13,-3301.51 5510.13,-3288.22 5510.13,-3275.76"/>
+<polygon fill="none" stroke="black" points="5513.63,-3275.57 5510.13,-3265.57 5506.63,-3275.57 5513.63,-3275.57"/>
+</g>
+<!-- k_1355e9a3 -->
+<g id="node37" class="node"><title>k_1355e9a3</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3833.13,-3045 3705.13,-3045 3705.13,-3009 3833.13,-3009 3833.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3706.13,-3014 3706.13,-3039 3832.13,-3039 3832.13,-3014 3706.13,-3014"/>
+<text text-anchor="start" x="3711.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SocialNetService</text>
+</g>
+<!-- k_f76f7877 -->
+<!-- k_1355e9a3->k_f76f7877 -->
+<g id="edge64" class="edge"><title>k_1355e9a3->k_f76f7877</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3769.13,-3008.91C3769.13,-2977.2 3769.13,-2910.94 3769.13,-2868.84"/>
+<polygon fill="none" stroke="black" points="3772.63,-2868.69 3769.13,-2858.69 3765.63,-2868.69 3772.63,-2868.69"/>
+</g>
+<!-- k_a2d4d2e -->
+<g id="node38" class="node"><title>k_a2d4d2e</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5835.13,-3045 5741.13,-3045 5741.13,-3009 5835.13,-3009 5835.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5742.13,-3014 5742.13,-3039 5835.13,-3039 5835.13,-3014 5742.13,-3014"/>
+<text text-anchor="start" x="5747.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nService</text>
+</g>
+<!-- k_cd183063 -->
+<!-- k_a2d4d2e->k_cd183063 -->
+<g id="edge66" class="edge"><title>k_a2d4d2e->k_cd183063</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5787.3,-3008.91C5785.84,-2977.2 5782.8,-2910.94 5780.87,-2868.84"/>
+<polygon fill="none" stroke="black" points="5784.36,-2868.52 5780.4,-2858.69 5777.36,-2868.84 5784.36,-2868.52"/>
+</g>
+<!-- k_41f22ba4 -->
+<g id="node39" class="node"><title>k_41f22ba4</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2231.13,-3348 2137.13,-3348 2137.13,-3312 2231.13,-3312 2231.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2138.13,-3317 2138.13,-3342 2231.13,-3342 2231.13,-3317 2138.13,-3317"/>
+<text text-anchor="start" x="2143.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ListsService</text>
+</g>
+<!-- k_a421d634 -->
+<!-- k_41f22ba4->k_a421d634 -->
+<g id="edge68" class="edge"><title>k_41f22ba4->k_a421d634</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2184.13,-3311.82C2184.13,-3301.51 2184.13,-3288.22 2184.13,-3275.76"/>
+<polygon fill="none" stroke="black" points="2187.63,-3275.57 2184.13,-3265.57 2180.63,-3275.57 2187.63,-3275.57"/>
+</g>
+<!-- k_7c585990 -->
+<g id="node40" class="node"><title>k_7c585990</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4999.13,-3045 4859.13,-3045 4859.13,-3009 4999.13,-3009 4999.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4860.13,-3014 4860.13,-3039 4998.13,-3039 4998.13,-3014 4860.13,-3014"/>
+<text text-anchor="start" x="4865.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ClientStatsService</text>
+</g>
+<!-- k_3309f8a4 -->
+<!-- k_7c585990->k_3309f8a4 -->
+<g id="edge70" class="edge"><title>k_7c585990->k_3309f8a4</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4930.05,-3008.91C4931.67,-2977.2 4935.05,-2910.94 4937.2,-2868.84"/>
+<polygon fill="none" stroke="black" points="4940.7,-2868.86 4937.72,-2858.69 4933.71,-2868.5 4940.7,-2868.86"/>
+</g>
+<!-- k_b3a78c62 -->
+<g id="node41" class="node"><title>k_b3a78c62</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5405.13,-3045 5283.13,-3045 5283.13,-3009 5405.13,-3009 5405.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5284.13,-3014 5284.13,-3039 5404.13,-3039 5404.13,-3014 5284.13,-3014"/>
+<text text-anchor="start" x="5289.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">UserInfoService</text>
+</g>
+<!-- k_a9deb790 -->
+<!-- k_b3a78c62->k_a9deb790 -->
+<g id="edge72" class="edge"><title>k_b3a78c62->k_a9deb790</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5339.52,-3008.91C5331.41,-2977.13 5314.45,-2910.66 5303.71,-2868.57"/>
+<polygon fill="none" stroke="black" points="5307.06,-2867.52 5301.19,-2858.69 5300.27,-2869.25 5307.06,-2867.52"/>
+</g>
+<!-- k_7824fe0f -->
+<g id="node42" class="node"><title>k_7824fe0f</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1481.13,-2640 1359.13,-2640 1359.13,-2604 1481.13,-2604 1481.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1360.13,-2609 1360.13,-2634 1481.13,-2634 1481.13,-2609 1360.13,-2609"/>
+<text text-anchor="start" x="1365.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">CreationService</text>
+</g>
+<!-- k_8d9226ee -->
+<!-- k_7824fe0f->k_8d9226ee -->
+<g id="edge74" class="edge"><title>k_7824fe0f->k_8d9226ee</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1424.37,-2603.99C1430.18,-2579.35 1440.74,-2534.54 1448.3,-2502.46"/>
+<polygon fill="none" stroke="black" points="1451.75,-2503.07 1450.64,-2492.53 1444.94,-2501.46 1451.75,-2503.07"/>
+</g>
+<!-- k_acce46b4 -->
+<g id="node43" class="node"><title>k_acce46b4</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2443.13,-2352 2291.13,-2352 2291.13,-2316 2443.13,-2316 2443.13,-2352"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2292.13,-2321 2292.13,-2346 2442.13,-2346 2442.13,-2321 2292.13,-2321"/>
+<text text-anchor="start" x="2297.13" y="-2330.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">AccessRightsService</text>
+</g>
+<!-- k_63e1eb38 -->
+<!-- k_acce46b4->k_63e1eb38 -->
+<g id="edge76" class="edge"><title>k_acce46b4->k_63e1eb38</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2361.99,-2315.82C2359.05,-2305.41 2355.25,-2291.95 2351.69,-2279.38"/>
+<polygon fill="none" stroke="black" points="2355.01,-2278.24 2348.92,-2269.57 2348.27,-2280.14 2355.01,-2278.24"/>
+</g>
+<!-- k_4bb9a563 -->
+<g id="node44" class="node"><title>k_4bb9a563</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2253.13,-2640 2145.13,-2640 2145.13,-2604 2253.13,-2604 2253.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2146.13,-2609 2146.13,-2634 2253.13,-2634 2253.13,-2609 2146.13,-2609"/>
+<text text-anchor="start" x="2151.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">AccessService</text>
+</g>
+<!-- k_63207c2c -->
+<!-- k_4bb9a563->k_63207c2c -->
+<g id="edge78" class="edge"><title>k_4bb9a563->k_63207c2c</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2196.03,-2603.99C2191.8,-2579.35 2184.09,-2534.54 2178.57,-2502.46"/>
+<polygon fill="none" stroke="black" points="2182.01,-2501.79 2176.86,-2492.53 2175.11,-2502.98 2182.01,-2501.79"/>
+</g>
+<!-- k_a7a419fb -->
+<g id="node45" class="node"><title>k_a7a419fb</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="955.13,-2168 849.13,-2168 849.13,-2132 955.13,-2132 955.13,-2168"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="850.13,-2137 850.13,-2162 955.13,-2162 955.13,-2137 850.13,-2137"/>
+<text text-anchor="start" x="855.13" y="-2146.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">FinderService</text>
+</g>
+<!-- k_a0b29af9 -->
+<!-- k_a7a419fb->k_a0b29af9 -->
+<g id="edge80" class="edge"><title>k_a7a419fb->k_a0b29af9</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M912.755,-2131.71C920.762,-2117.93 932.005,-2098.58 941.839,-2081.65"/>
+<polygon fill="none" stroke="black" points="945.131,-2082.95 947.128,-2072.54 939.078,-2079.43 945.131,-2082.95"/>
+</g>
+<!-- k_8d4befab -->
+<g id="node46" class="node"><title>k_8d4befab</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2334.13,-3045 2234.13,-3045 2234.13,-3009 2334.13,-3009 2334.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2235.13,-3014 2235.13,-3039 2334.13,-3039 2334.13,-3014 2235.13,-3014"/>
+<text text-anchor="start" x="2240.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">StateService</text>
+</g>
+<!-- k_7e776058 -->
+<!-- k_8d4befab->k_7e776058 -->
+<g id="edge82" class="edge"><title>k_8d4befab->k_7e776058</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2285.42,-3008.91C2287.69,-2977.2 2292.42,-2910.94 2295.43,-2868.84"/>
+<polygon fill="none" stroke="black" points="2298.93,-2868.92 2296.15,-2858.69 2291.95,-2868.42 2298.93,-2868.92"/>
+</g>
+<!-- k_9a759b9f -->
+<g id="node47" class="node"><title>k_9a759b9f</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1995.13,-1774 1825.13,-1774 1825.13,-1738 1995.13,-1738 1995.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1826.13,-1743 1826.13,-1768 1995.13,-1768 1995.13,-1743 1826.13,-1743"/>
+<text text-anchor="start" x="1831.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nTranslationService</text>
+</g>
+<!-- k_869b8de5 -->
+<!-- k_9a759b9f->k_869b8de5 -->
+<g id="edge84" class="edge"><title>k_9a759b9f->k_869b8de5</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1995.42,-1750.75C2097.2,-1744.62 2272.53,-1734.5 2423.13,-1728 2927.36,-1706.25 3056.97,-1751.64 3558.13,-1692 3582.44,-1689.11 3608.21,-1684.72 3632.82,-1679.88"/>
+<polygon fill="none" stroke="black" points="3633.8,-1683.26 3642.91,-1677.86 3632.42,-1676.39 3633.8,-1683.26"/>
+</g>
+<!-- k_a162095c -->
+<g id="node48" class="node"><title>k_a162095c</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4255.13,-1774 4017.13,-1774 4017.13,-1738 4255.13,-1738 4255.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4018.13,-1743 4018.13,-1768 4255.13,-1768 4255.13,-1743 4018.13,-1743"/>
+<text text-anchor="start" x="4023.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nTranslationServiceMultiLang</text>
+</g>
+<!-- k_a162095c->k_869b8de5 -->
+<g id="edge86" class="edge"><title>k_a162095c->k_869b8de5</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4070.63,-1737.95C4014.16,-1722.39 3931.44,-1699.59 3864.87,-1681.24"/>
+<polygon fill="none" stroke="black" points="3865.74,-1677.85 3855.17,-1678.57 3863.88,-1684.6 3865.74,-1677.85"/>
+</g>
+<!-- k_9fad21d -->
+<g id="node49" class="node"><title>k_9fad21d</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3817.13,-1774 3681.13,-1774 3681.13,-1738 3817.13,-1738 3817.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3682.13,-1743 3682.13,-1768 3817.13,-1768 3817.13,-1743 3682.13,-1743"/>
+<text text-anchor="start" x="3687.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">KuneWaveService</text>
+</g>
+<!-- k_4425af11 -->
+<!-- k_9fad21d->k_4425af11 -->
+<g id="edge88" class="edge"><title>k_9fad21d->k_4425af11</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3795.37,-1737.95C3834.51,-1722.67 3891.5,-1700.43 3938.04,-1682.26"/>
+<polygon fill="none" stroke="black" points="3939.46,-1685.47 3947.5,-1678.57 3936.91,-1678.94 3939.46,-1685.47"/>
+</g>
+<!-- k_e77113ec -->
+<g id="node50" class="node"><title>k_e77113ec</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4816.13,-1774 4724.13,-1774 4724.13,-1738 4816.13,-1738 4816.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4725.13,-1743 4725.13,-1768 4815.13,-1768 4815.13,-1743 4725.13,-1743"/>
+<text text-anchor="start" x="4730.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">MailService</text>
+</g>
+<!-- k_79e18302 -->
+<!-- k_e77113ec->k_79e18302 -->
+<g id="edge90" class="edge"><title>k_e77113ec->k_79e18302</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4772.53,-1737.75C4777.31,-1692.82 4782.63,-1576.3 4719.13,-1518 4674.22,-1476.77 4511.83,-1494.69 4435.51,-1481.82"/>
+<polygon fill="none" stroke="black" points="4435.83,-1478.31 4425.34,-1479.79 4434.46,-1485.18 4435.83,-1478.31"/>
+</g>
+<!-- k_d999378f -->
+<g id="node51" class="node"><title>k_d999378f</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5041.13,-2260 4941.13,-2260 4941.13,-2224 5041.13,-2224 5041.13,-2260"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4942.13,-2229 4942.13,-2254 5040.13,-2254 5040.13,-2229 4942.13,-2229"/>
+<text text-anchor="start" x="4947.13" y="-2238.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">StatsService</text>
+</g>
+<!-- k_59cf8930 -->
+<!-- k_d999378f->k_59cf8930 -->
+<g id="edge92" class="edge"><title>k_d999378f->k_59cf8930</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4980.68,-2223.79C4945.87,-2163.09 4833.34,-1966.92 4786.21,-1884.74"/>
+<polygon fill="none" stroke="black" points="4789.07,-1882.7 4781.06,-1875.77 4783,-1886.18 4789.07,-1882.7"/>
+</g>
+<!-- k_9085ee50 -->
+<g id="node52" class="node"><title>k_9085ee50</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5111.13,-2640 5047.13,-2640 5047.13,-2604 5111.13,-2604 5111.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5048.13,-2609 5048.13,-2634 5111.13,-2634 5111.13,-2609 5048.13,-2609"/>
+<text text-anchor="start" x="5053.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Mapper</text>
+</g>
+<!-- k_45d35b16 -->
+<!-- k_9085ee50->k_45d35b16 -->
+<g id="edge94" class="edge"><title>k_9085ee50->k_45d35b16</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5091.75,-2603.99C5109.31,-2578.93 5141.5,-2532.98 5164.04,-2500.8"/>
+<polygon fill="none" stroke="black" points="5166.97,-2502.73 5169.84,-2492.53 5161.24,-2498.71 5166.97,-2502.73"/>
+</g>
+<!-- k_35322ade -->
+<g id="node53" class="node"><title>k_35322ade</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5098.13,-1774 5002.13,-1774 5002.13,-1738 5098.13,-1738 5098.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5003.13,-1743 5003.13,-1768 5098.13,-1768 5098.13,-1743 5003.13,-1743"/>
+<text text-anchor="start" x="5008.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">UsersOnline</text>
+</g>
+<!-- k_8e9f39bf -->
+<!-- k_35322ade->k_8e9f39bf -->
+<g id="edge96" class="edge"><title>k_35322ade->k_8e9f39bf</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5053.03,-1774.17C5065.74,-1856.29 5113.05,-2192.21 5050.13,-2270 4878.92,-2481.66 4673.04,-2240.3 4451.13,-2398 4385.42,-2444.7 4345.52,-2534.06 4327.18,-2584.66"/>
+<polygon fill="none" stroke="black" points="4323.83,-2583.64 4323.8,-2594.24 4330.43,-2585.97 4323.83,-2583.64"/>
+</g>
+<!-- k_7d32a85c -->
+<g id="node54" class="node"><title>k_7d32a85c</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4130.13,-1958 3990.13,-1958 3990.13,-1922 4130.13,-1922 4130.13,-1958"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3991.13,-1927 3991.13,-1952 4130.13,-1952 4130.13,-1927 3991.13,-1927"/>
+<text text-anchor="start" x="3996.13" y="-1936.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">NotificationSender</text>
+</g>
+<!-- k_cb025297 -->
+<!-- k_7d32a85c->k_cb025297 -->
+<g id="edge98" class="edge"><title>k_7d32a85c->k_cb025297</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4050.25,-1921.82C4044.48,-1911.2 4036.99,-1897.42 4030.04,-1884.64"/>
+<polygon fill="none" stroke="black" points="4032.96,-1882.68 4025.11,-1875.57 4026.81,-1886.03 4032.96,-1882.68"/>
+</g>
+<!-- k_d2c57cc8 -->
+<g id="node55" class="node"><title>k_d2c57cc8</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="7097.13,-3258.5 6909.13,-3258.5 6909.13,-3217.5 7097.13,-3217.5 7097.13,-3258.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6910.13,-3218 6910.13,-3257 7097.13,-3257 7097.13,-3218 6910.13,-3218"/>
+<text text-anchor="start" x="6915.13" y="-3244.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=ExtendedModule-1)</text>
+<text text-anchor="start" x="6915.13" y="-3229.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">AbstractExtendedModule</text>
+</g>
+<!-- i_d2c57cc8 -->
+<!-- k_d2c57cc8->i_d2c57cc8 -->
+<g id="edge100" class="edge"><title>k_d2c57cc8->i_d2c57cc8</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M7003.13,-3217.49C7003.13,-3207.67 7003.13,-3195.52 7003.13,-3183.72"/>
+<polygon fill="none" stroke="black" points="7006.63,-3183.52 7003.13,-3173.52 6999.63,-3183.52 7006.63,-3183.52"/>
+</g>
+<!-- k_bf7a7634 -->
+<g id="node156" class="node"><title>k_bf7a7634</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6905.13,-3045 6839.13,-3045 6839.13,-3009 6905.13,-3009 6905.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6840.13,-3014 6840.13,-3039 6904.13,-3039 6904.13,-3014 6840.13,-3014"/>
+<text text-anchor="start" x="6845.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Injector</text>
+</g>
+<!-- i_d2c57cc8->k_bf7a7634 -->
+<g id="edge102" class="edge"><title>i_d2c57cc8:m_ea7d63:e->k_bf7a7634</title>
+<path fill="none" stroke="black" d="M7110.13,-3118C7198.28,-3118 7004.97,-3062.86 6914.99,-3038.42"/>
+<polygon fill="black" stroke="black" points="6915.89,-3035.04 6905.32,-3035.81 6914.06,-3041.8 6915.89,-3035.04"/>
+</g>
+<!-- k_b620db99 -->
+<g id="node57" class="node"><title>k_b620db99</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="7882.13,-3348 7738.13,-3348 7738.13,-3312 7882.13,-3312 7882.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="7739.13,-3317 7739.13,-3342 7882.13,-3342 7882.13,-3317 7739.13,-3317"/>
+<text text-anchor="start" x="7744.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">RESTMethodFinder</text>
+</g>
+<!-- k_a2520e48 -->
+<!-- k_b620db99->k_a2520e48 -->
+<g id="edge104" class="edge"><title>k_b620db99->k_a2520e48</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M7810.13,-3311.82C7810.13,-3301.51 7810.13,-3288.22 7810.13,-3275.76"/>
+<polygon fill="none" stroke="black" points="7813.63,-3275.57 7810.13,-3265.57 7806.63,-3275.57 7813.63,-3275.57"/>
+</g>
+<!-- k_88c808c2 -->
+<g id="node58" class="node"><title>k_88c808c2</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="8071.13,-3348 7955.13,-3348 7955.13,-3312 8071.13,-3312 8071.13,-3348"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="7956.13,-3317 7956.13,-3342 8070.13,-3342 8070.13,-3317 7956.13,-3317"/>
+<text text-anchor="start" x="7961.13" y="-3326.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">RESTSerializer</text>
+</g>
+<!-- k_29a18b23 -->
+<!-- k_88c808c2->k_29a18b23 -->
+<g id="edge106" class="edge"><title>k_88c808c2->k_29a18b23</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M8013.13,-3311.82C8013.13,-3301.51 8013.13,-3288.22 8013.13,-3275.76"/>
+<polygon fill="none" stroke="black" points="8016.63,-3275.57 8013.13,-3265.57 8009.63,-3275.57 8016.63,-3275.57"/>
+</g>
+<!-- k_1a7eca26 -->
+<g id="node59" class="node"><title>k_1a7eca26</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3466.13,-1380 3348.13,-1380 3348.13,-1344 3466.13,-1344 3466.13,-1380"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3349.13,-1349 3349.13,-1374 3466.13,-1374 3466.13,-1349 3349.13,-1349"/>
+<text text-anchor="start" x="3354.13" y="-1358.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">KuneProperties</text>
+</g>
+<!-- i_1a7eca26 -->
+<!-- k_1a7eca26->i_1a7eca26 -->
+<g id="edge108" class="edge"><title>k_1a7eca26->i_1a7eca26</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3407.13,-1343.82C3407.13,-1331.89 3407.13,-1315.95 3407.13,-1301.94"/>
+<polygon fill="none" stroke="black" points="3410.63,-1301.7 3407.13,-1291.7 3403.63,-1301.7 3410.63,-1301.7"/>
+</g>
+<!-- k_c3b7abd7 -->
+<g id="node61" class="node"><title>k_c3b7abd7</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2199.13,-1014.5 2143.13,-1014.5 2143.13,-973.5 2199.13,-973.5 2199.13,-1014.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2144.13,-974 2144.13,-1013 2198.13,-1013 2198.13,-974 2144.13,-974"/>
+<text text-anchor="start" x="2149.13" y="-1000.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Jpa</text>
+<text text-anchor="start" x="2149.13" y="-985.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">String</text>
+</g>
+<!-- i_c3b7abd7 -->
+<!-- k_c3b7abd7->i_c3b7abd7 -->
+<g id="edge110" class="edge"><title>k_c3b7abd7->i_c3b7abd7</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2199.22,-981.208C2229.4,-967.462 2278.18,-945.245 2316.41,-927.834"/>
+<polygon fill="none" stroke="black" points="2318.23,-930.849 2325.88,-923.519 2315.33,-924.479 2318.23,-930.849"/>
+</g>
+<!-- k_dc31a474 -->
+<g id="node63" class="node"><title>k_dc31a474</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1924.13,-1014.5 1840.13,-1014.5 1840.13,-973.5 1924.13,-973.5 1924.13,-1014.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1841.13,-974 1841.13,-1013 1923.13,-1013 1923.13,-974 1841.13,-974"/>
+<text text-anchor="start" x="1846.13" y="-1000.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Jpa</text>
+<text text-anchor="start" x="1846.13" y="-985.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Properties</text>
+</g>
+<!-- i_dc31a474 -->
+<!-- k_dc31a474->i_dc31a474 -->
+<g id="edge112" class="edge"><title>k_dc31a474->i_dc31a474</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1839.87,-984.328C1779.72,-970.563 1667.51,-944.882 1584.34,-925.849"/>
+<polygon fill="none" stroke="black" points="1584.87,-922.381 1574.34,-923.562 1583.31,-929.204 1584.87,-922.381"/>
+</g>
+<!-- k_34559978 -->
+<g id="node65" class="node"><title>k_34559978</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3021.13,-2260 2911.13,-2260 2911.13,-2224 3021.13,-2224 3021.13,-2260"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2912.13,-2229 2912.13,-2254 3020.13,-2254 3020.13,-2229 2912.13,-2229"/>
+<text text-anchor="start" x="2917.13" y="-2238.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">PersistService</text>
+</g>
+<!-- k_658873e3 -->
+<!-- k_34559978->k_658873e3 -->
+<g id="edge114" class="edge"><title>k_34559978->k_658873e3</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2964.8,-2223.87C2960.31,-2171.84 2942.2,-2018.91 2879.13,-1912 2837.28,-1841.07 2804.59,-1840.98 2745.13,-1784 2664.56,-1706.79 2654.44,-1675.54 2564.13,-1610 2374.57,-1472.42 2099.13,-1596.22 2099.13,-1362 2099.13,-1362 2099.13,-1362 2099.13,-1270 2099.13,-1218.42 2084.63,-1160.35 2073.54,-1123.5"/>
+<polygon fill="none" stroke="black" points="2076.81,-1122.21 2070.52,-1113.69 2070.12,-1124.27 2076.81,-1122.21"/>
+</g>
+<!-- k_32b0c5a5 -->
+<g id="node66" class="node"><title>k_32b0c5a5</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2071.13,-1196 1977.13,-1196 1977.13,-1160 2071.13,-1160 2071.13,-1196"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1978.13,-1165 1978.13,-1190 2071.13,-1190 2071.13,-1165 1978.13,-1165"/>
+<text text-anchor="start" x="1983.13" y="-1174.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">UnitOfWork</text>
+</g>
+<!-- k_32b0c5a5->k_658873e3 -->
+<g id="edge116" class="edge"><title>k_32b0c5a5->k_658873e3</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2031.44,-1159.82C2035.67,-1149.31 2041.15,-1135.68 2046.25,-1123.01"/>
+<polygon fill="none" stroke="black" points="2049.56,-1124.15 2050.04,-1113.57 2043.06,-1121.54 2049.56,-1124.15"/>
+</g>
+<!-- k_7ff585a7 -->
+<g id="node67" class="node"><title>k_7ff585a7</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1959.13,-1196 1843.13,-1196 1843.13,-1160 1959.13,-1160 1959.13,-1196"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1844.13,-1165 1844.13,-1190 1958.13,-1190 1958.13,-1165 1844.13,-1165"/>
+<text text-anchor="start" x="1849.13" y="-1174.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">EntityManager</text>
+</g>
+<!-- k_7ff585a7->k_658873e3 -->
+<g id="edge118" class="edge"><title>k_7ff585a7->k_658873e3</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1932.74,-1159.82C1950.76,-1149.46 1974.03,-1136.08 1995.79,-1123.57"/>
+<polygon fill="none" stroke="black" points="2006.26,-1121.59 2013.19,-1113.57 2002.77,-1115.52 2006.26,-1121.59"/>
+<polygon fill="none" stroke="black" points="1997.59,-1126.57 2004.52,-1118.55 1994.1,-1120.5 1997.59,-1126.57"/>
+</g>
+<!-- k_37a69ede -->
+<g id="node68" class="node"><title>k_37a69ede</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5389.13,-1288 5223.13,-1288 5223.13,-1252 5389.13,-1252 5389.13,-1288"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5224.13,-1257 5224.13,-1282 5388.13,-1282 5388.13,-1257 5224.13,-1257"/>
+<text text-anchor="start" x="5229.13" y="-1266.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">EntityManagerFactory</text>
+</g>
+<!-- k_ccf09ec3 -->
+<!-- k_37a69ede->k_ccf09ec3 -->
+<g id="edge120" class="edge"><title>k_37a69ede->k_ccf09ec3</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5251.74,-1251.96C5237.98,-1248.05 5223.13,-1244.37 5209.13,-1242 4922.56,-1193.38 4846.28,-1223.31 4556.13,-1206 4477.76,-1201.32 4391.48,-1195.85 4316.51,-1190.99"/>
+<polygon fill="none" stroke="black" points="4306.39,-1186.83 4296.18,-1189.67 4305.94,-1193.81 4306.39,-1186.83"/>
+<polygon fill="none" stroke="black" points="4316.37,-1187.47 4306.16,-1190.32 4315.92,-1194.46 4316.37,-1187.47"/>
+</g>
+<!-- k_5ca82e04 -->
+<g id="node69" class="node"><title>k_5ca82e04</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="565.13,-1774 441.13,-1774 441.13,-1738 565.13,-1738 565.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="442.13,-1743 442.13,-1768 565.13,-1768 565.13,-1743 442.13,-1743"/>
+<text text-anchor="start" x="447.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ContainerFinder</text>
+</g>
+<!-- i_5ca82e04 -->
+<!-- k_5ca82e04->i_5ca82e04 -->
+<g id="edge122" class="edge"><title>k_5ca82e04->i_5ca82e04</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M476.656,-1737.95C452.574,-1721.53 416.687,-1697.06 389.111,-1678.26"/>
+<polygon fill="none" stroke="black" points="391.076,-1675.36 380.842,-1672.62 387.133,-1681.15 391.076,-1675.36"/>
+</g>
+<!-- k_2f704481 -->
+<g id="node71" class="node"><title>k_2f704481</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1357.13,-1774 1245.13,-1774 1245.13,-1738 1357.13,-1738 1357.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1246.13,-1743 1246.13,-1768 1357.13,-1768 1357.13,-1743 1246.13,-1743"/>
+<text text-anchor="start" x="1251.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ContentFinder</text>
+</g>
+<!-- i_2f704481 -->
+<!-- k_2f704481->i_2f704481 -->
+<g id="edge124" class="edge"><title>k_2f704481->i_2f704481</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1318.37,-1737.71C1333.3,-1721.88 1355.17,-1698.69 1372.53,-1680.27"/>
+<polygon fill="none" stroke="black" points="1375.35,-1682.39 1379.66,-1672.71 1370.26,-1677.58 1375.35,-1682.39"/>
+</g>
+<!-- k_55c22c57 -->
+<g id="node73" class="node"><title>k_55c22c57</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4832.13,-2640 4662.13,-2640 4662.13,-2604 4832.13,-2604 4832.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4663.13,-2609 4663.13,-2634 4832.13,-2634 4832.13,-2609 4663.13,-2609"/>
+<text text-anchor="start" x="4668.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">ExtMediaDescripFinder</text>
+</g>
+<!-- i_55c22c57 -->
+<!-- k_55c22c57->i_55c22c57 -->
+<g id="edge126" class="edge"><title>k_55c22c57->i_55c22c57</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4747.13,-2603.99C4747.13,-2577.87 4747.13,-2529.07 4747.13,-2496.8"/>
+<polygon fill="none" stroke="black" points="4750.63,-2496.55 4747.13,-2486.55 4743.63,-2496.55 4750.63,-2496.55"/>
+</g>
+<!-- k_1f909b4 -->
+<g id="node75" class="node"><title>k_1f909b4</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3338.13,-1774 3240.13,-1774 3240.13,-1738 3338.13,-1738 3338.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3241.13,-1743 3241.13,-1768 3338.13,-1768 3338.13,-1743 3241.13,-1743"/>
+<text text-anchor="start" x="3246.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">GroupFinder</text>
+</g>
+<!-- i_1f909b4 -->
+<!-- k_1f909b4->i_1f909b4 -->
+<g id="edge128" class="edge"><title>k_1f909b4->i_1f909b4</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3297.66,-1737.71C3304.79,-1722.44 3315.11,-1700.33 3323.54,-1682.26"/>
+<polygon fill="none" stroke="black" points="3326.94,-1683.25 3328,-1672.71 3320.6,-1680.29 3326.94,-1683.25"/>
+</g>
+<!-- k_960ad002 -->
+<g id="node77" class="node"><title>k_960ad002</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4451.13,-1958 4307.13,-1958 4307.13,-1922 4451.13,-1922 4451.13,-1958"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4308.13,-1927 4308.13,-1952 4450.13,-1952 4450.13,-1927 4308.13,-1927"/>
+<text text-anchor="start" x="4313.13" y="-1936.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nCountryFinder</text>
+</g>
+<!-- i_960ad002 -->
+<!-- k_960ad002->i_960ad002 -->
+<g id="edge130" class="edge"><title>k_960ad002->i_960ad002</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4379.13,-1921.82C4379.13,-1909.89 4379.13,-1893.95 4379.13,-1879.94"/>
+<polygon fill="none" stroke="black" points="4382.63,-1879.7 4379.13,-1869.7 4375.63,-1879.7 4382.63,-1879.7"/>
+</g>
+<!-- k_11372840 -->
+<g id="node79" class="node"><title>k_11372840</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3704.13,-1196 3550.13,-1196 3550.13,-1160 3704.13,-1160 3704.13,-1196"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3551.13,-1165 3551.13,-1190 3704.13,-1190 3704.13,-1165 3551.13,-1165"/>
+<text text-anchor="start" x="3556.13" y="-1174.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nLanguageFinder</text>
+</g>
+<!-- i_11372840 -->
+<!-- k_11372840->i_11372840 -->
+<g id="edge132" class="edge"><title>k_11372840->i_11372840</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3627.13,-1159.82C3627.13,-1147.89 3627.13,-1131.95 3627.13,-1117.94"/>
+<polygon fill="none" stroke="black" points="3630.63,-1117.7 3627.13,-1107.7 3623.63,-1117.7 3630.63,-1117.7"/>
+</g>
+<!-- k_a952f2c4 -->
+<g id="node81" class="node"><title>k_a952f2c4</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3221.13,-1380 3057.13,-1380 3057.13,-1344 3221.13,-1344 3221.13,-1380"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3058.13,-1349 3058.13,-1374 3220.13,-1374 3220.13,-1349 3058.13,-1349"/>
+<text text-anchor="start" x="3063.13" y="-1358.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">I18nTranslationFinder</text>
+</g>
+<!-- i_a952f2c4 -->
+<!-- k_a952f2c4->i_a952f2c4 -->
+<g id="edge134" class="edge"><title>k_a952f2c4->i_a952f2c4</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3129.25,-1343.82C3122.57,-1331.54 3113.59,-1315.01 3105.82,-1300.71"/>
+<polygon fill="none" stroke="black" points="3108.77,-1298.81 3100.92,-1291.7 3102.62,-1302.16 3108.77,-1298.81"/>
+</g>
+<!-- k_2584ae8 -->
+<g id="node83" class="node"><title>k_2584ae8</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2735.13,-1564 2629.13,-1564 2629.13,-1528 2735.13,-1528 2735.13,-1564"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="2630.13,-1533 2630.13,-1558 2735.13,-1558 2735.13,-1533 2630.13,-1533"/>
+<text text-anchor="start" x="2635.13" y="-1542.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">LicenseFinder</text>
+</g>
+<!-- i_2584ae8 -->
+<!-- k_2584ae8->i_2584ae8 -->
+<g id="edge136" class="edge"><title>k_2584ae8->i_2584ae8</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2665.93,-1527.82C2654.67,-1515.19 2639.4,-1498.06 2626.41,-1483.49"/>
+<polygon fill="none" stroke="black" points="2628.74,-1480.84 2619.47,-1475.7 2623.51,-1485.49 2628.74,-1480.84"/>
+</g>
+<!-- k_fab1a897 -->
+<g id="node85" class="node"><title>k_fab1a897</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="919.13,-1774 831.13,-1774 831.13,-1738 919.13,-1738 919.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="832.13,-1743 832.13,-1768 919.13,-1768 919.13,-1743 832.13,-1743"/>
+<text text-anchor="start" x="837.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">RateFinder</text>
+</g>
+<!-- i_fab1a897 -->
+<!-- k_fab1a897->i_fab1a897 -->
+<g id="edge138" class="edge"><title>k_fab1a897->i_fab1a897</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M875.13,-1737.71C875.13,-1722.58 875.13,-1700.74 875.13,-1682.77"/>
+<polygon fill="none" stroke="black" points="878.63,-1682.71 875.13,-1672.71 871.63,-1682.71 878.63,-1682.71"/>
+</g>
+<!-- k_6beca52f -->
+<g id="node87" class="node"><title>k_6beca52f</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1045.13,-1196 965.13,-1196 965.13,-1160 1045.13,-1160 1045.13,-1196"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="966.13,-1165 966.13,-1190 1044.13,-1190 1044.13,-1165 966.13,-1165"/>
+<text text-anchor="start" x="971.13" y="-1174.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">TagFinder</text>
+</g>
+<!-- i_6beca52f -->
+<!-- k_6beca52f->i_6beca52f -->
+<g id="edge140" class="edge"><title>k_6beca52f->i_6beca52f</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1005.13,-1159.82C1005.13,-1147.89 1005.13,-1131.95 1005.13,-1117.94"/>
+<polygon fill="none" stroke="black" points="1008.63,-1117.7 1005.13,-1107.7 1001.63,-1117.7 1008.63,-1117.7"/>
+</g>
+<!-- k_7d67dc61 -->
+<g id="node89" class="node"><title>k_7d67dc61</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1300.13,-1380 1134.13,-1380 1134.13,-1344 1300.13,-1344 1300.13,-1380"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="1135.13,-1349 1135.13,-1374 1300.13,-1374 1300.13,-1349 1135.13,-1349"/>
+<text text-anchor="start" x="1140.13" y="-1358.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">TagUserContentFinder</text>
+</g>
+<!-- i_7d67dc61 -->
+<!-- k_7d67dc61->i_7d67dc61 -->
+<g id="edge142" class="edge"><title>k_7d67dc61->i_7d67dc61</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1229.18,-1343.82C1237.4,-1331.42 1248.49,-1314.7 1258.04,-1300.3"/>
+<polygon fill="none" stroke="black" points="1261.13,-1301.97 1263.74,-1291.7 1255.3,-1298.1 1261.13,-1301.97"/>
+</g>
+<!-- k_5425561b -->
+<g id="node91" class="node"><title>k_5425561b</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3999.13,-1774 3911.13,-1774 3911.13,-1738 3999.13,-1738 3999.13,-1774"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3912.13,-1743 3912.13,-1768 3998.13,-1768 3998.13,-1743 3912.13,-1743"/>
+<text text-anchor="start" x="3917.13" y="-1752.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">UserFinder</text>
+</g>
+<!-- i_5425561b -->
+<!-- k_5425561b->i_5425561b -->
+<g id="edge144" class="edge"><title>k_5425561b->i_5425561b</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3985.53,-1737.94C3992.75,-1734.21 4000.56,-1730.63 4008.13,-1728 4021.76,-1723.26 4175.76,-1695.2 4292.22,-1674.31"/>
+<polygon fill="none" stroke="black" points="4293.08,-1677.71 4302.3,-1672.5 4291.84,-1670.82 4293.08,-1677.71"/>
+</g>
+<!-- k_f8162078->k_6611e204 -->
+<g id="edge150" class="edge"><title>k_f8162078:m_84fd56bb:e->k_6611e204</title>
+<path fill="none" stroke="black" d="M6752.13,-3224C6758.15,-3224 6754.75,-3215.31 6751.13,-3210.5 6722.91,-3173.05 6695.37,-3192.15 6652.13,-3174 6642.89,-3170.12 6633.13,-3165.72 6623.83,-3161.39"/>
+<polygon fill="black" stroke="black" points="6625.27,-3158.2 6614.73,-3157.1 6622.28,-3164.53 6625.27,-3158.2"/>
+</g>
+<!-- k_c2a0b067 -->
+<!-- k_f8162078->k_c2a0b067 -->
+<g id="edge148" class="edge"><title>k_f8162078:m_84fd56bb:e->k_c2a0b067</title>
+<path fill="none" stroke="black" d="M6752.13,-3224C6772.44,-3224 6770.62,-3199.43 6764.6,-3176.71"/>
+<polygon fill="black" stroke="black" points="6767.88,-3175.45 6761.71,-3166.83 6761.16,-3177.41 6767.88,-3175.45"/>
+</g>
+<!-- k_f8162078->k_bf7a7634 -->
+<g id="edge146" class="edge"><title>k_f8162078:m_84fd56bb:e->k_bf7a7634</title>
+<path fill="none" stroke="black" d="M6752.13,-3224C6801.03,-3224 6821.57,-3213.69 6850.13,-3174 6875.32,-3139 6877,-3087.05 6875.13,-3055.2"/>
+<polygon fill="black" stroke="black" points="6878.62,-3054.94 6874.38,-3045.22 6871.63,-3055.46 6878.62,-3054.94"/>
+</g>
+<!-- k_c2a0b067->k_bf7a7634 -->
+<g id="edge152" class="edge"><title>k_c2a0b067:m_c910e7a6:e->k_bf7a7634</title>
+<path fill="none" stroke="black" d="M6842.13,-3125C6849.46,-3125 6859.78,-3084.4 6866.21,-3055.47"/>
+<polygon fill="black" stroke="black" points="6869.68,-3055.95 6868.39,-3045.43 6862.84,-3054.46 6869.68,-3055.95"/>
+</g>
+<!-- k_f97969ae -->
+<!-- k_f97969ae->k_34559978 -->
+<g id="edge156" class="edge"><title>k_f97969ae:m_d0b4c484:e->k_34559978</title>
+<path fill="none" stroke="black" d="M3052.13,-2582C3058.15,-2582 3054.57,-2573.44 3051.13,-2568.5 3028.79,-2536.43 2992.55,-2564.69 2971.13,-2532 2917.47,-2450.09 2942.45,-2325.28 2957.56,-2270.01"/>
+<polygon fill="black" stroke="black" points="2960.97,-2270.8 2960.33,-2260.22 2954.24,-2268.89 2960.97,-2270.8"/>
+</g>
+<!-- k_40ce8a32 -->
+<!-- k_f97969ae->k_40ce8a32 -->
+<g id="edge154" class="edge"><title>k_f97969ae:m_b7f26df5:e->k_40ce8a32</title>
+<path fill="none" stroke="black" d="M3052.13,-2608C3094.51,-2608 3080.82,-2544.42 3066.99,-2502.05"/>
+<polygon fill="black" stroke="black" points="3070.3,-2500.92 3063.78,-2492.57 3063.67,-2503.17 3070.3,-2500.92"/>
+</g>
+<!-- k_a9b36b89 -->
+<!-- k_a5714fa9 -->
+<!-- k_3b5a6e9c -->
+<!-- k_3b5a6e9c->k_1a7eca26 -->
+<g id="edge158" class="edge"><title>k_3b5a6e9c:m_b4a6ea93:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M1525.13,-1742C1795.51,-1742 1839.08,-1613.85 2075.13,-1482 2114.95,-1459.76 2117.63,-1439.72 2161.13,-1426 2274.47,-1390.26 3111.82,-1401.31 3230.13,-1390 3265.91,-1386.58 3305.45,-1380.54 3338.07,-1374.95"/>
+<polygon fill="black" stroke="black" points="3338.71,-1378.39 3347.96,-1373.23 3337.51,-1371.49 3338.71,-1378.39"/>
+</g>
+<!-- k_80f5f7a4 -->
+<!-- k_80f5f7a4->k_a939ddfc -->
+<g id="edge168" class="edge"><title>k_80f5f7a4:m_55fe5eeb:e->k_a939ddfc</title>
+<path fill="none" stroke="black" d="M2715.13,-2778C2860.13,-2778 2807.13,-2610 2807.13,-2465 2807.13,-2465 2807.13,-2465 2807.13,-2334 2807.13,-2145.47 2958.29,-2066.42 2850.13,-1912 2823.27,-1873.65 2794.56,-1893.49 2751.13,-1876 2672.11,-1844.18 2581.95,-1803.33 2528.11,-1778.43"/>
+<polygon fill="black" stroke="black" points="2529.36,-1775.16 2518.82,-1774.13 2526.42,-1781.51 2529.36,-1775.16"/>
+</g>
+<!-- k_80f5f7a4->k_7824fe0f -->
+<g id="edge166" class="edge"><title>k_80f5f7a4:m_3f42d6ac:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M2715.13,-2804C2755.8,-2804 2742.13,-2742 2714.13,-2712.5 2669.83,-2665.83 2200.33,-2680.45 2136.13,-2676 1900.02,-2659.64 1620.31,-2637.85 1491.53,-2627.68"/>
+<polygon fill="black" stroke="black" points="1491.65,-2624.17 1481.41,-2626.88 1491.1,-2631.15 1491.65,-2624.17"/>
+</g>
+<!-- k_80f5f7a4->k_4bb9a563 -->
+<g id="edge164" class="edge"><title>k_80f5f7a4:m_9a2f00cb:e->k_4bb9a563</title>
+<path fill="none" stroke="black" d="M2715.13,-2830C2767.35,-2830 2747.88,-2752.35 2714.13,-2712.5 2685.18,-2678.32 2394.79,-2643.05 2263.26,-2628.69"/>
+<polygon fill="black" stroke="black" points="2263.63,-2625.21 2253.31,-2627.61 2262.88,-2632.17 2263.63,-2625.21"/>
+</g>
+<!-- k_80f5f7a4->k_9a759b9f -->
+<g id="edge162" class="edge"><title>k_80f5f7a4:m_75d06daa:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M2715.13,-2856C2765.21,-2856 2787.61,-2397.2 2637.13,-2214 2618.14,-2190.89 2413.17,-2129.17 2384.13,-2122 2326.65,-2107.8 2164.94,-2124.7 2120.13,-2086 2073.55,-2045.78 2082.87,-1866.99 2043.13,-1820 2027.42,-1801.43 2005.07,-1787.83 1983.17,-1778.07"/>
+<polygon fill="black" stroke="black" points="1984.4,-1774.79 1973.83,-1774.11 1981.67,-1781.23 1984.4,-1774.79"/>
+</g>
+<!-- k_80f5f7a4->k_9a759b9f -->
+<g id="edge170" class="edge"><title>k_80f5f7a4:m_f73bea64:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M2715.13,-2752C2722.99,-2752 2688.97,-2306.92 2589.13,-2214 2521.41,-2150.98 2473.23,-2202.88 2384.13,-2178 2317.99,-2159.53 2305.76,-2142.22 2240.13,-2122 2172.13,-2101.05 2138.5,-2131.9 2084.13,-2086 2059.66,-2065.34 1990.85,-1846.67 1973.13,-1820 1963.72,-1805.83 1950.88,-1792.12 1939.26,-1781.04"/>
+<polygon fill="black" stroke="black" points="1941.55,-1778.39 1931.84,-1774.16 1936.79,-1783.53 1941.55,-1778.39"/>
+</g>
+<!-- k_80f5f7a4->k_1a7eca26 -->
+<g id="edge160" class="edge"><title>k_80f5f7a4:m_fbf8f608:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M2715.13,-2882C2825.82,-2882 2799.14,-2763.48 2897.13,-2712 2963.19,-2677.3 3002,-2721.52 3061.13,-2676 3118.15,-2632.1 3108.74,-2598.94 3135.13,-2532 3157.83,-2474.41 3146.15,-2453.72 3173.13,-2398 3181.73,-2380.24 3193.06,-2380.78 3199.13,-2362 3219.59,-2298.73 3196.59,-2277.59 3177.13,-2214 3075.41,-1881.69 2964.24,-1823.94 2902.13,-1482 2897.68,-1457.51 2885.52,-1444.53 2902.13,-1426 2951.07,-1371.4 3157.45,-1399.73 3230.13,-1390 3265.76,-1385.23 3305.28,-1379.06 3337.93,-1373.73"/>
+<polygon fill="black" stroke="black" points="3338.53,-1377.18 3347.83,-1372.1 3337.39,-1370.27 3338.53,-1377.18"/>
+</g>
+<!-- k_80f5f7a4->k_8e9f39bf -->
+<g id="edge172" class="edge"><title>k_80f5f7a4:m_9359f431:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M2715.13,-2726C3185.43,-2726 3303.09,-2710.39 3772.13,-2676 3932.31,-2664.25 4118.47,-2644.38 4225.95,-2632.3"/>
+<polygon fill="black" stroke="black" points="4226.56,-2635.75 4236.11,-2631.16 4225.78,-2628.8 4226.56,-2635.75"/>
+</g>
+<!-- k_e73a9b6b -->
+<!-- k_e73a9b6b->k_fe8ab28b -->
+<g id="edge174" class="edge"><title>k_e73a9b6b:m_e765dc67:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M1732.13,-2464C1746.69,-2464 1740.8,-2409.38 1731.13,-2398.5 1717.65,-2383.34 1454.24,-2354.89 1321.4,-2341.43"/>
+<polygon fill="black" stroke="black" points="1321.59,-2337.93 1311.29,-2340.41 1320.89,-2344.89 1321.59,-2337.93"/>
+</g>
+<!-- k_e73a9b6b->k_1a7eca26 -->
+<g id="edge176" class="edge"><title>k_e73a9b6b:m_1457c827:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M1732.13,-2438C1737.07,-2438 1772.52,-1732.2 1775.13,-1728 1792.15,-1700.61 1810.27,-1708.25 1838.13,-1692 2037.83,-1575.54 2063.43,-1491.54 2285.13,-1426 2486.66,-1366.42 3020.98,-1410.45 3230.13,-1390 3265.91,-1386.5 3305.45,-1380.46 3338.06,-1374.88"/>
+<polygon fill="black" stroke="black" points="3338.7,-1378.32 3347.95,-1373.16 3337.5,-1371.42 3338.7,-1378.32"/>
+</g>
+<!-- k_9f620b87 -->
+<!-- k_e73a9b6b->k_9f620b87 -->
+<g id="edge178" class="edge"><title>k_e73a9b6b:m_116dcc06:e->k_9f620b87</title>
+<path fill="none" stroke="black" d="M1732.13,-2412C1738.15,-2412 1734.76,-2403.3 1731.13,-2398.5 1702.6,-2360.76 1674.04,-2381.92 1631.13,-2362 1629.57,-2361.28 1628,-2360.52 1626.42,-2359.74"/>
+<polygon fill="black" stroke="black" points="1627.84,-2356.54 1617.35,-2355.06 1624.63,-2362.76 1627.84,-2356.54"/>
+</g>
+<!-- k_b95207c -->
+<!-- k_b95207c->k_cd819caf -->
+<g id="edge182" class="edge"><title>k_b95207c:m_1d803b88:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M2327.13,-2031C2383.1,-2031 2395.31,-2015.28 2450.13,-2004 2541.59,-1985.18 2647.54,-1965.11 2714.92,-1952.57"/>
+<polygon fill="black" stroke="black" points="2715.8,-1955.97 2724.99,-1950.7 2714.52,-1949.08 2715.8,-1955.97"/>
+</g>
+<!-- k_b95207c->k_9a759b9f -->
+<g id="edge184" class="edge"><title>k_b95207c:m_1d803b88:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M2327.13,-2031C2392.97,-2031 2175.95,-1853.26 2119.13,-1820 2107.02,-1812.91 2039.17,-1792.66 1984.01,-1776.82"/>
+<polygon fill="black" stroke="black" points="1984.8,-1773.4 1974.23,-1774.01 1982.88,-1780.13 1984.8,-1773.4"/>
+</g>
+<!-- k_b95207c->k_1a7eca26 -->
+<g id="edge180" class="edge"><title>k_b95207c:m_1d803b88:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M2327.13,-2031C2340.65,-2031 2332.03,-2014 2341.13,-2004 2427.25,-1909.35 2583.13,-1975.97 2583.13,-1848 2583.13,-1848 2583.13,-1848 2583.13,-1756 2583.13,-1690.56 2598.54,-1665.66 2564.13,-1610 2502.32,-1510.01 2292.77,-1510.85 2374.13,-1426 2407.07,-1391.64 3182.77,-1394.73 3230.13,-1390 3265.9,-1386.43 3305.44,-1380.38 3338.06,-1374.81"/>
+<polygon fill="black" stroke="black" points="3338.69,-1378.26 3347.95,-1373.1 3337.5,-1371.36 3338.69,-1378.26"/>
+</g>
+<!-- k_3e6a4b92 -->
+<!-- k_3e6a4b92->k_cd819caf -->
+<g id="edge186" class="edge"><title>k_3e6a4b92:m_e17f200f:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M2679.13,-2018C2687.93,-2018 2686.41,-2009.68 2693.13,-2004 2709.96,-1989.77 2729.83,-1975.42 2746.61,-1963.92"/>
+<polygon fill="black" stroke="black" points="2748.75,-1966.69 2755.07,-1958.18 2744.82,-1960.89 2748.75,-1966.69"/>
+</g>
+<!-- k_414f39df -->
+<!-- k_832e9dc1 -->
+<g id="node163" class="node"><title>k_832e9dc1</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5479.13,-384.5 5279.13,-384.5 5279.13,-343.5 5479.13,-343.5 5479.13,-384.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5280.13,-344 5280.13,-383 5478.13,-383 5478.13,-344 5280.13,-344"/>
+<text text-anchor="start" x="5285.13" y="-370.167" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=wave_server_domain)</text>
+<text text-anchor="start" x="5285.13" y="-355.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">String</text>
+</g>
+<!-- k_414f39df->k_832e9dc1 -->
+<g id="edge188" class="edge"><title>k_414f39df:m_ffdcacd3:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M3985.13,-1532C3991.15,-1532 3987.49,-1523.49 3984.13,-1518.5 3968.76,-1495.64 3560.88,-1316.11 3540.13,-1298 3517.47,-1278.22 3519.84,-1266.31 3502.13,-1242 3459.62,-1183.65 3433.8,-1178.88 3402.13,-1114 3324.38,-954.706 3314.13,-902.258 3314.13,-725 3314.13,-725 3314.13,-725 3314.13,-548 3314.13,-351.187 4563,-415.714 5001.13,-392 5091.37,-387.116 5193.57,-379.414 5268.94,-373.323"/>
+<polygon fill="black" stroke="black" points="5269.24,-376.81 5278.92,-372.513 5268.67,-369.833 5269.24,-376.81"/>
+</g>
+<!-- k_1fa76df9 -->
+<!-- k_414f39df->k_1fa76df9 -->
+<g id="edge190" class="edge"><title>k_414f39df:m_ffdcacd3:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M3985.13,-1532C3991.15,-1532 3988.38,-1522.76 3984.13,-1518.5 3946.59,-1480.87 3559.89,-1488.48 3507.13,-1482 3482.16,-1478.93 3455.21,-1474.74 3430.48,-1470.53"/>
+<polygon fill="black" stroke="black" points="3430.84,-1467.04 3420.39,-1468.79 3429.65,-1473.94 3430.84,-1467.04"/>
+</g>
+<!-- k_2e92a7ea -->
+<!-- k_2e92a7ea->k_9fad21d -->
+<g id="edge200" class="edge"><title>k_2e92a7ea:m_dadc2f23:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M4695.13,-2136C4768.21,-2136 4661.57,-1865.17 4604.13,-1820 4542.74,-1771.72 3979.71,-1793.05 3902.13,-1784 3877.72,-1781.15 3851.33,-1776.79 3827.46,-1772.35"/>
+<polygon fill="black" stroke="black" points="3827.87,-1768.87 3817.39,-1770.45 3826.57,-1775.75 3827.87,-1768.87"/>
+</g>
+<!-- k_2e92a7ea->k_5425561b -->
+<g id="edge202" class="edge"><title>k_2e92a7ea:m_dadc2f23:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M4695.13,-2136C4752.91,-2136 4796.9,-1961.24 4827.13,-1912 4837.06,-1895.82 4844.8,-1894.22 4850.13,-1876 4857.11,-1852.11 4867.35,-1837.97 4850.13,-1820 4785.35,-1752.39 4098.52,-1808.47 4008.13,-1784 4003.11,-1782.64 3998.03,-1780.75 3993.11,-1778.58"/>
+<polygon fill="black" stroke="black" points="3994.41,-1775.32 3983.88,-1774.13 3991.37,-1781.63 3994.41,-1775.32"/>
+</g>
+<!-- k_2e92a7ea->k_414f39df -->
+<g id="edge198" class="edge"><title>k_2e92a7ea:m_dadc2f23:e->k_414f39df</title>
+<path fill="none" stroke="black" d="M4695.13,-2136C4740.11,-2136 4753.42,-2119.78 4783.13,-2086 4799.78,-2067.07 4864.26,-1900.74 4869.13,-1876 4873.94,-1851.58 4884.6,-1839.5 4869.13,-1820 4825.45,-1764.93 4768.14,-1830.16 4715.13,-1784 4652.63,-1729.58 4714.46,-1659.67 4648.13,-1610 4609.13,-1580.8 4259.65,-1578.37 4211.13,-1574 4137.16,-1567.35 4052.55,-1559 3994.47,-1553.16"/>
+<polygon fill="black" stroke="black" points="3994.6,-1549.66 3984.3,-1552.14 3993.9,-1556.62 3994.6,-1549.66"/>
+</g>
+<!-- k_bffd6740 -->
+<!-- k_2e92a7ea->k_bffd6740 -->
+<g id="edge194" class="edge"><title>k_2e92a7ea:m_dadc2f23:e->k_bffd6740</title>
+<path fill="none" stroke="black" d="M4695.13,-2136C4701.15,-2136 4698.4,-2126.74 4694.13,-2122.5 4651.71,-2080.34 4216.05,-2096.22 4157.13,-2086 4141.23,-2083.24 4124.57,-2079.43 4108.44,-2075.24"/>
+<polygon fill="black" stroke="black" points="4109.04,-2071.78 4098.48,-2072.58 4107.24,-2078.54 4109.04,-2071.78"/>
+</g>
+<!-- k_2e92a7ea->k_1fa76df9 -->
+<g id="edge196" class="edge"><title>k_2e92a7ea:m_dadc2f23:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M4695.13,-2136C4753.73,-2136 4774.88,-2126.61 4817.13,-2086 4954.26,-1954.21 4955.2,-1879.98 4984.13,-1692 4989.67,-1655.98 5009.27,-1636.39 4984.13,-1610 4955.74,-1580.2 4284.92,-1579.5 4244.13,-1574 4130.86,-1558.72 4105.99,-1536.07 3993.13,-1518 3793.26,-1486 3556.13,-1467.54 3430.51,-1459.27"/>
+<polygon fill="black" stroke="black" points="3430.39,-1455.76 3420.18,-1458.6 3429.94,-1462.74 3430.39,-1455.76"/>
+</g>
+<!-- k_6d89dff1 -->
+<g id="node166" class="node"><title>k_6d89dff1</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4855.13,-920 4777.13,-920 4777.13,-884 4855.13,-884 4855.13,-920"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4778.13,-889 4778.13,-914 4854.13,-914 4854.13,-889 4778.13,-889"/>
+<text text-anchor="start" x="4783.13" y="-898.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveBus</text>
+</g>
+<!-- k_2e92a7ea->k_6d89dff1 -->
+<g id="edge192" class="edge"><title>k_2e92a7ea:m_dadc2f23:e->k_6d89dff1</title>
+<path fill="none" stroke="black" d="M4695.13,-2136C4775.17,-2136 4798.72,-2125.86 4868.13,-2086 5036.88,-1989.1 5056.7,-1930.19 5185.13,-1784 5205.49,-1760.83 5202.03,-1747.25 5226.13,-1728 5257.55,-1702.9 5276.03,-1714.83 5309.13,-1692 5419.2,-1616.09 5493.13,-1587.7 5493.13,-1454 5493.13,-1454 5493.13,-1454 5493.13,-1362 5493.13,-1126.1 5066.97,-1227.54 4926.13,-1114 4866.08,-1065.59 4835.22,-975.605 4822.84,-930.019"/>
+<polygon fill="black" stroke="black" points="4826.19,-929.004 4820.27,-920.215 4819.42,-930.775 4826.19,-929.004"/>
+</g>
+<!-- k_bffd6740->k_7d32a85c -->
+<g id="edge204" class="edge"><title>k_bffd6740:m_6683cfea:e->k_7d32a85c</title>
+<path fill="none" stroke="black" d="M4111.13,-2031C4141.13,-2031 4110.95,-1992.9 4085.91,-1966"/>
+<polygon fill="black" stroke="black" points="4088.13,-1963.26 4078.71,-1958.42 4083.06,-1968.08 4088.13,-1963.26"/>
+</g>
+<!-- k_d85dae79 -->
+<!-- k_1ab51db2 -->
+<!-- k_d85dae79->k_1ab51db2 -->
+<g id="edge206" class="edge"><title>k_d85dae79:m_6e568d1e:e->k_1ab51db2</title>
+<path fill="none" stroke="black" d="M8412.13,-3316C8439.78,-3316 8412.45,-3292.72 8381.96,-3271.6"/>
+<polygon fill="black" stroke="black" points="8383.56,-3268.45 8373.32,-3265.72 8379.62,-3274.24 8383.56,-3268.45"/>
+</g>
+<!-- k_bb9023d5 -->
+<!-- k_d85dae79->k_bb9023d5 -->
+<g id="edge208" class="edge"><title>k_d85dae79:m_6e568d1e:e->k_bb9023d5</title>
+<path fill="none" stroke="black" d="M8412.13,-3316C8438.43,-3316 8459.65,-3294.67 8473.91,-3274.32"/>
+<polygon fill="black" stroke="black" points="8477,-3275.99 8479.59,-3265.72 8471.16,-3272.13 8477,-3275.99"/>
+</g>
+<!-- k_af7bdf52 -->
+<!-- k_af7bdf52->k_fe8ab28b -->
+<g id="edge210" class="edge"><title>k_af7bdf52:m_7d837e0d:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M595.13,-2830C608.279,-2830 601.024,-2724.78 604.13,-2712 620.544,-2644.46 618.523,-2619.56 665.13,-2568 800.946,-2417.74 1046.7,-2362.26 1170.51,-2343.18"/>
+<polygon fill="black" stroke="black" points="1171.29,-2346.6 1180.66,-2341.66 1170.25,-2339.68 1171.29,-2346.6"/>
+</g>
+<!-- k_af7bdf52->k_79d9c91b -->
+<g id="edge214" class="edge"><title>k_af7bdf52:m_7d837e0d:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M595.13,-2830C608.279,-2830 596.637,-2722.81 604.13,-2712 627.532,-2678.25 666.93,-2656.86 704.132,-2643.46"/>
+<polygon fill="black" stroke="black" points="705.721,-2646.61 714.04,-2640.05 703.446,-2639.99 705.721,-2646.61"/>
+</g>
+<!-- k_af7bdf52->k_8059d21c -->
+<g id="edge212" class="edge"><title>k_af7bdf52:m_7d837e0d:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M595.13,-2830C612.691,-2830 597.542,-2807.73 594.13,-2790.5 570.227,-2669.82 524.754,-2651.41 495.13,-2532 473.785,-2445.96 471.13,-2422.64 471.13,-2334 471.13,-2334 471.13,-2334 471.13,-2150 471.13,-2084.52 482.317,-2008.23 489.087,-1968.06"/>
+<polygon fill="black" stroke="black" points="492.539,-1968.63 490.785,-1958.18 485.64,-1967.45 492.539,-1968.63"/>
+</g>
+<!-- k_af7bdf52->k_7824fe0f -->
+<g id="edge218" class="edge"><title>k_af7bdf52:m_7d837e0d:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M595.13,-2830C608.279,-2830 594.99,-2721.45 604.13,-2712 607.37,-2708.65 1151.06,-2650.59 1349.07,-2629.54"/>
+<polygon fill="black" stroke="black" points="1349.5,-2633.01 1359.08,-2628.48 1348.76,-2626.05 1349.5,-2633.01"/>
+</g>
+<!-- k_af7bdf52->k_9a759b9f -->
+<g id="edge216" class="edge"><title>k_af7bdf52:m_7d837e0d:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M595.13,-2830C603.91,-2830 597.436,-2798.63 594.13,-2790.5 568.015,-2726.26 517.607,-2738.77 488.13,-2676 415.626,-2521.6 295.669,-2034.73 414.13,-1912 453.393,-1871.32 1377.74,-1894.6 1431.13,-1876 1470.75,-1862.2 1468.42,-1836.19 1507.13,-1820 1561.15,-1797.4 1713.47,-1777.3 1814.6,-1765.89"/>
+<polygon fill="black" stroke="black" points="1815.28,-1769.34 1824.83,-1764.75 1814.5,-1762.38 1815.28,-1769.34"/>
+</g>
+<!-- k_af7bdf52->k_3b5a6e9c -->
+<g id="edge220" class="edge"><title>k_af7bdf52:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M595.13,-2804C601.146,-2804 597.099,-2795.73 594.13,-2790.5 550.434,-2713.5 486.187,-2745.33 431.13,-2676 217.582,-2407.1 25.7456,-2095.27 316.13,-1912 392.033,-1864.1 1038.51,-1905.92 1123.13,-1876 1162.69,-1862.02 1160.88,-1837.25 1199.13,-1820 1268.34,-1788.79 1292.82,-1803.78 1366.13,-1784 1367.41,-1783.65 1368.7,-1783.3 1369.99,-1782.94"/>
+<polygon fill="black" stroke="black" points="1371.38,-1786.19 1380.03,-1780.07 1369.45,-1779.46 1371.38,-1786.19"/>
+</g>
+<!-- k_3ea428f2 -->
+<!-- k_3ea428f2->k_fe8ab28b -->
+<g id="edge222" class="edge"><title>k_3ea428f2:m_15dbf5cc:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M981.13,-2830C1007.69,-2830 986.069,-2734.53 1000.13,-2712 1014.82,-2688.46 1033.88,-2697.73 1051.13,-2676 1134.07,-2571.55 1083.73,-2504.41 1164.13,-2398 1175.78,-2382.58 1192.01,-2368.87 1206.97,-2358.14"/>
+<polygon fill="black" stroke="black" points="1209.36,-2360.74 1215.58,-2352.17 1205.37,-2354.99 1209.36,-2360.74"/>
+</g>
+<!-- k_3ea428f2->k_79d9c91b -->
+<g id="edge226" class="edge"><title>k_3ea428f2:m_15dbf5cc:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M981.13,-2830C998.691,-2830 987.364,-2806.5 980.13,-2790.5 950.673,-2725.34 882.851,-2673.82 838.831,-2645.65"/>
+<polygon fill="black" stroke="black" points="840.423,-2642.52 830.092,-2640.17 836.701,-2648.45 840.423,-2642.52"/>
+</g>
+<!-- k_3ea428f2->k_8059d21c -->
+<g id="edge224" class="edge"><title>k_3ea428f2:m_15dbf5cc:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M981.13,-2830C998.691,-2830 983.226,-2807.79 980.13,-2790.5 975.524,-2764.78 919.921,-2588.81 904.13,-2568 855.245,-2503.58 656.614,-2423.53 604.13,-2362 565.81,-2317.08 547.13,-2301.04 547.13,-2242 547.13,-2242 547.13,-2242 547.13,-2150 547.13,-2082.89 521.372,-2007.29 505.77,-1967.65"/>
+<polygon fill="black" stroke="black" points="508.927,-1966.12 501.95,-1958.15 502.432,-1968.73 508.927,-1966.12"/>
+</g>
+<!-- k_3ea428f2->k_7824fe0f -->
+<g id="edge230" class="edge"><title>k_3ea428f2:m_15dbf5cc:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M981.13,-2830C1007.69,-2830 981.838,-2731.26 1000.13,-2712 1012.18,-2699.31 1232.53,-2656.81 1349.11,-2635.06"/>
+<polygon fill="black" stroke="black" points="1349.84,-2638.49 1359.03,-2633.22 1348.56,-2631.61 1349.84,-2638.49"/>
+</g>
+<!-- k_3ea428f2->k_9a759b9f -->
+<g id="edge228" class="edge"><title>k_3ea428f2:m_15dbf5cc:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M981.13,-2830C984.207,-2830 985.312,-2703.36 967.13,-2568 951.158,-2449.09 951.43,-2415.38 902.13,-2306 874.849,-2245.48 842.888,-2241.97 825.13,-2178 818.472,-2154.02 820.263,-2146.41 825.13,-2122 830.681,-2094.15 851.677,-2021.38 874.13,-2004 919.384,-1968.97 1072.66,-1977.26 1129.13,-1968 1348.65,-1932 1407.91,-1939.44 1621.13,-1876 1709.73,-1849.64 1808.23,-1805.3 1864.32,-1778.54"/>
+<polygon fill="black" stroke="black" points="1866.12,-1781.56 1873.62,-1774.08 1863.09,-1775.25 1866.12,-1781.56"/>
+</g>
+<!-- k_3ea428f2->k_3b5a6e9c -->
+<g id="edge232" class="edge"><title>k_3ea428f2:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M981.13,-2804C983.841,-2804 995.786,-2777.28 939.13,-2568 934.684,-2551.58 931.139,-2548.26 926.13,-2532 895.596,-2432.9 927.763,-2390.84 868.13,-2306 851.754,-2282.7 834.838,-2290.55 815.13,-2270 781.839,-2235.28 771.3,-2224.26 758.13,-2178 736.532,-2102.13 749.523,-2069.73 793.13,-2004 828.741,-1950.32 845.742,-1936.96 905.13,-1912 1041.96,-1854.5 1109.93,-1952.47 1237.13,-1876 1262.91,-1860.5 1251.38,-1838.46 1275.13,-1820 1283.4,-1813.57 1327.84,-1797.51 1370.11,-1783.09"/>
+<polygon fill="black" stroke="black" points="1371.31,-1786.38 1379.65,-1779.85 1369.06,-1779.75 1371.31,-1786.38"/>
+</g>
+<!-- k_ce3e3216 -->
+<!-- k_ce3e3216->k_fe8ab28b -->
+<g id="edge234" class="edge"><title>k_ce3e3216:m_760be197:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M1640.13,-2830C1694.81,-2830 1815.96,-2781 1490.13,-2568 1414.17,-2518.34 1354.47,-2594.99 1289.13,-2532 1242.79,-2487.32 1240.73,-2405.35 1243.32,-2362.23"/>
+<polygon fill="black" stroke="black" points="1246.82,-2362.37 1244.05,-2352.15 1239.84,-2361.86 1246.82,-2362.37"/>
+</g>
+<!-- k_ce3e3216->k_79d9c91b -->
+<g id="edge238" class="edge"><title>k_ce3e3216:m_760be197:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M1640.13,-2830C1954.58,-2830 1195.67,-2691.58 905.356,-2640.58"/>
+<polygon fill="black" stroke="black" points="905.684,-2637.08 895.229,-2638.8 904.474,-2643.98 905.684,-2637.08"/>
+</g>
+<!-- k_ce3e3216->k_8059d21c -->
+<g id="edge236" class="edge"><title>k_ce3e3216:m_760be197:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M1640.13,-2830C1837.21,-2830 1814.04,-2580.69 1740.13,-2398 1676.13,-2239.78 1624.52,-2200.81 1473.13,-2122 1382.91,-2075.03 1344.93,-2113.91 1247.13,-2086 1156.72,-2060.2 1143.08,-2027.82 1052.13,-2004 886.334,-1960.58 685.168,-1946.61 575.354,-1942.12"/>
+<polygon fill="black" stroke="black" points="575.47,-1938.63 565.34,-1941.73 575.195,-1945.62 575.47,-1938.63"/>
+</g>
+<!-- k_ce3e3216->k_7824fe0f -->
+<g id="edge242" class="edge"><title>k_ce3e3216:m_760be197:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M1640.13,-2830C1657.69,-2830 1647.09,-2806.16 1639.13,-2790.5 1633.91,-2780.23 1513.27,-2690.54 1453.32,-2646.37"/>
+<polygon fill="black" stroke="black" points="1455.06,-2643.3 1444.94,-2640.19 1450.91,-2648.94 1455.06,-2643.3"/>
+</g>
+<!-- k_ce3e3216->k_9a759b9f -->
+<g id="edge240" class="edge"><title>k_ce3e3216:m_760be197:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M1640.13,-2830C1693.79,-2830 1800.03,-2722.89 1826.13,-2676 1900.75,-2541.94 1873.13,-2487.43 1873.13,-2334 1873.13,-2334 1873.13,-2334 1873.13,-2242 1873.13,-2136.04 1848.4,-2109.42 1859.13,-2004 1867.37,-1923.06 1890.35,-1829.53 1902.45,-1783.92"/>
+<polygon fill="black" stroke="black" points="1905.86,-1784.72 1905.07,-1774.16 1899.1,-1782.91 1905.86,-1784.72"/>
+</g>
+<!-- k_ce3e3216->k_3b5a6e9c -->
+<g id="edge244" class="edge"><title>k_ce3e3216:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M1640.13,-2804C1730.85,-2804 1759.96,-2757.83 1799.13,-2676 1852.68,-2564.14 1811.18,-2516.66 1775.13,-2398 1692.2,-2125.07 1639.35,-2066.69 1496.13,-1820 1490.74,-1810.72 1484.45,-1801.03 1478.34,-1792.07"/>
+<polygon fill="black" stroke="black" points="1481.15,-1789.98 1472.58,-1783.75 1475.4,-1793.97 1481.15,-1789.98"/>
+</g>
+<!-- k_36bedd9c -->
+<!-- k_36bedd9c->k_fe8ab28b -->
+<g id="edge248" class="edge"><title>k_36bedd9c:m_a9ff88e7:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M1338.13,-3026C1355.69,-3026 1339.18,-3003.94 1337.13,-2986.5 1313.08,-2781.45 1262.58,-2737.34 1241.13,-2532 1234.85,-2471.92 1239.55,-2401.07 1243.11,-2362.51"/>
+<polygon fill="black" stroke="black" points="1246.64,-2362.37 1244.12,-2352.08 1239.67,-2361.7 1246.64,-2362.37"/>
+</g>
+<!-- k_36bedd9c->k_79d9c91b -->
+<g id="edge246" class="edge"><title>k_36bedd9c:m_a9ff88e7:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M1338.13,-3026C1355.69,-3026 1349.23,-2999.22 1337.13,-2986.5 1262.95,-2908.5 933.722,-3022.47 854.13,-2950 768.322,-2871.88 782.697,-2714.4 792.866,-2650.21"/>
+<polygon fill="black" stroke="black" points="796.369,-2650.47 794.568,-2640.03 789.465,-2649.32 796.369,-2650.47"/>
+</g>
+<!-- k_36bedd9c->k_8059d21c -->
+<g id="edge250" class="edge"><title>k_36bedd9c:m_a9ff88e7:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M1338.13,-3026C1355.69,-3026 1349.5,-2998.97 1337.13,-2986.5 1252.19,-2900.85 335.977,-3036.72 252.13,-2950 178.602,-2873.96 237.273,-2816.73 252.13,-2712 298.141,-2387.66 328.652,-2305.35 457.13,-2004 462.517,-1991.36 469.867,-1978.11 476.597,-1966.96"/>
+<polygon fill="black" stroke="black" points="479.763,-1968.49 482.048,-1958.15 473.81,-1964.81 479.763,-1968.49"/>
+</g>
+<!-- k_36bedd9c->k_7824fe0f -->
+<g id="edge256" class="edge"><title>k_36bedd9c:m_a9ff88e7:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M1338.13,-3026C1491.82,-3026 1445.36,-2741.71 1426.4,-2650.09"/>
+<polygon fill="black" stroke="black" points="1429.79,-2649.2 1424.29,-2640.14 1422.94,-2650.65 1429.79,-2649.2"/>
+</g>
+<!-- k_36bedd9c->k_9a759b9f -->
+<g id="edge254" class="edge"><title>k_36bedd9c:m_a9ff88e7:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M1338.13,-3026C1409.06,-3026 1588.57,-2988.52 1648.13,-2950 1648.64,-2949.67 1861.88,-2676.55 1862.13,-2676 1937.58,-2511.87 1917.25,-1921.12 1911.43,-1784.39"/>
+<polygon fill="black" stroke="black" points="1914.92,-1784.14 1910.99,-1774.3 1907.92,-1784.44 1914.92,-1784.14"/>
+</g>
+<!-- k_36bedd9c->k_3b5a6e9c -->
+<g id="edge258" class="edge"><title>k_36bedd9c:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M1338.13,-3000C1344.15,-3000 1341.47,-2990.67 1337.13,-2986.5 1246.88,-2899.92 306.837,-3031.68 212.13,-2950 51.7647,-2811.69 29.4947,-2204.68 97.1297,-2004 113.038,-1956.8 117.571,-1936.16 161.13,-1912 301.808,-1833.98 746.487,-1959.26 884.13,-1876 908.848,-1861.05 892.64,-1835.32 917.13,-1820 1001.98,-1766.9 1267.98,-1803.63 1366.13,-1784 1367.39,-1783.75 1368.65,-1783.49 1369.92,-1783.21"/>
+<polygon fill="black" stroke="black" points="1370.79,-1786.6 1379.72,-1780.9 1369.19,-1779.79 1370.79,-1786.6"/>
+</g>
+<!-- k_36bedd9c->k_b69674be -->
+<g id="edge252" class="edge"><title>k_36bedd9c:m_a9ff88e7:e->k_b69674be</title>
+<path fill="none" stroke="black" d="M1338.13,-3026C1448.54,-3026 1733.75,-3005.62 1829.13,-2950 1862.23,-2930.7 1888.08,-2894.88 1904.22,-2867.56"/>
+<polygon fill="black" stroke="black" points="1907.39,-2869.08 1909.32,-2858.66 1901.31,-2865.6 1907.39,-2869.08"/>
+</g>
+<!-- k_96c3da4b -->
+<!-- k_96c3da4b->k_fe8ab28b -->
+<g id="edge260" class="edge"><title>k_96c3da4b:m_f138584c:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M1142.13,-2830C1190.27,-2830 1153.9,-2441.21 1175.13,-2398 1182.77,-2382.46 1195.97,-2368.95 1208.94,-2358.41"/>
+<polygon fill="black" stroke="black" points="1211.16,-2361.12 1216.93,-2352.23 1206.88,-2355.58 1211.16,-2361.12"/>
+</g>
+<!-- k_96c3da4b->k_79d9c91b -->
+<g id="edge264" class="edge"><title>k_96c3da4b:m_f138584c:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M1142.13,-2830C1159.69,-2830 1150.43,-2805.39 1141.13,-2790.5 1109.21,-2739.4 949.921,-2675.99 860.068,-2643.46"/>
+<polygon fill="black" stroke="black" points="861.127,-2640.12 850.533,-2640.03 858.757,-2646.71 861.127,-2640.12"/>
+</g>
+<!-- k_96c3da4b->k_8059d21c -->
+<g id="edge262" class="edge"><title>k_96c3da4b:m_f138584c:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M1142.13,-2830C1159.69,-2830 1146.61,-2807.18 1141.13,-2790.5 1121.74,-2731.52 1093.33,-2729.08 1061.13,-2676 964.927,-2517.43 980.385,-2453.64 868.13,-2306 817.695,-2239.67 790.983,-2235.98 731.13,-2178 652.501,-2101.84 561.745,-2009.39 518.93,-1965.5"/>
+<polygon fill="black" stroke="black" points="521.236,-1962.85 511.75,-1958.14 516.223,-1967.74 521.236,-1962.85"/>
+</g>
+<!-- k_96c3da4b->k_7824fe0f -->
+<g id="edge268" class="edge"><title>k_96c3da4b:m_f138584c:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M1142.13,-2830C1262,-2830 1363.39,-2704.49 1402.68,-2648.46"/>
+<polygon fill="black" stroke="black" points="1405.65,-2650.31 1408.44,-2640.09 1399.89,-2646.34 1405.65,-2650.31"/>
+</g>
+<!-- k_96c3da4b->k_9a759b9f -->
+<g id="edge266" class="edge"><title>k_96c3da4b:m_f138584c:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M1142.13,-2830C1290.81,-2830 1219.36,-2638.75 1350.13,-2568 1426.68,-2526.59 1675.42,-2590.2 1740.13,-2532 1844.47,-2438.16 1834.67,-2050.01 1860.13,-1912 1867.67,-1871.11 1863.68,-1859.35 1877.13,-1820 1881.46,-1807.34 1887.94,-1794.08 1894.01,-1782.93"/>
+<polygon fill="black" stroke="black" points="1897.11,-1784.56 1898.96,-1774.13 1891.01,-1781.13 1897.11,-1784.56"/>
+</g>
+<!-- k_96c3da4b->k_3b5a6e9c -->
+<g id="edge270" class="edge"><title>k_96c3da4b:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M1142.13,-2804C1148.15,-2804 1142.53,-2796.35 1141.13,-2790.5 1116.18,-2686.26 1090.43,-2666.48 1048.13,-2568 1015.54,-2492.12 1015.33,-2468.98 973.13,-2398 918.633,-2306.34 898.567,-2285.15 819.13,-2214 798.732,-2195.73 781.614,-2202.37 769.13,-2178 757.783,-2155.85 761.917,-2145.82 769.13,-2122 774.702,-2103.6 782.935,-2102.3 793.13,-2086 815.518,-2050.19 806.643,-2028.37 841.13,-2004 910.606,-1954.9 947.219,-1990.98 1029.13,-1968 1141.52,-1936.47 1171.42,-1929.57 1275.13,-1876 1323.22,-1851.15 1373.95,-1815.68 1408.71,-1789.75"/>
+<polygon fill="black" stroke="black" points="1410.86,-1792.51 1416.76,-1783.71 1406.66,-1786.91 1410.86,-1792.51"/>
+</g>
+<!-- k_216a3af0 -->
+<!-- k_216a3af0->k_fe8ab28b -->
+<g id="edge272" class="edge"><title>k_216a3af0:m_3b84fb69:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M749.13,-2830C766.691,-2830 752.306,-2807.56 748.13,-2790.5 723.881,-2691.45 624.727,-2644.52 692.13,-2568 734.033,-2520.43 918.37,-2560.24 975.13,-2532 1049.7,-2494.9 1038,-2445.9 1106.13,-2398 1130.47,-2380.89 1160.12,-2366.56 1185.85,-2355.82"/>
+<polygon fill="black" stroke="black" points="1187.2,-2359.05 1195.14,-2352.03 1184.56,-2352.57 1187.2,-2359.05"/>
+</g>
+<!-- k_216a3af0->k_79d9c91b -->
+<g id="edge276" class="edge"><title>k_216a3af0:m_3b84fb69:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M749.13,-2830C822.147,-2830 811.854,-2707.06 803.192,-2650.21"/>
+<polygon fill="black" stroke="black" points="806.608,-2649.41 801.56,-2640.09 799.697,-2650.52 806.608,-2649.41"/>
+</g>
+<!-- k_216a3af0->k_8059d21c -->
+<g id="edge274" class="edge"><title>k_216a3af0:m_3b84fb69:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M749.13,-2830C766.691,-2830 755.47,-2806.45 748.13,-2790.5 716.365,-2721.46 663.137,-2739.33 621.13,-2676 599.824,-2643.88 509.13,-2341.53 509.13,-2334 509.13,-2334 509.13,-2334 509.13,-2150 509.13,-2084.88 501.864,-2008.69 497.446,-1968.37"/>
+<polygon fill="black" stroke="black" points="500.901,-1967.78 496.311,-1958.23 493.945,-1968.55 500.901,-1967.78"/>
+</g>
+<!-- k_216a3af0->k_7824fe0f -->
+<g id="edge280" class="edge"><title>k_216a3af0:m_3b84fb69:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M749.13,-2830C819.331,-2830 792.545,-2745.7 854.13,-2712 938.243,-2665.98 1216.5,-2638.24 1348.91,-2627.34"/>
+<polygon fill="black" stroke="black" points="1349.27,-2630.82 1358.96,-2626.52 1348.71,-2623.85 1349.27,-2630.82"/>
+</g>
+<!-- k_216a3af0->k_9a759b9f -->
+<g id="edge278" class="edge"><title>k_216a3af0:m_3b84fb69:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M749.13,-2830C766.691,-2830 753.758,-2807.13 748.13,-2790.5 727.984,-2730.96 690.158,-2733.65 665.13,-2676 598.763,-2523.12 551.342,-2464.08 604.13,-2306 673.926,-2096.98 709.32,-2013.09 905.13,-1912 1024.21,-1850.52 1377.55,-1910.22 1507.13,-1876 1561.71,-1861.59 1567.86,-1838.68 1621.13,-1820 1684.15,-1797.9 1757.65,-1781.75 1814.76,-1771.2"/>
+<polygon fill="black" stroke="black" points="1815.66,-1774.59 1824.87,-1769.36 1814.4,-1767.71 1815.66,-1774.59"/>
+</g>
+<!-- k_216a3af0->k_3b5a6e9c -->
+<g id="edge282" class="edge"><title>k_216a3af0:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M749.13,-2804C755.146,-2804 751.15,-2795.7 748.13,-2790.5 702.393,-2711.72 635.307,-2746.92 578.13,-2676 358.031,-2403.02 94.0196,-2113.33 381.13,-1912 455.618,-1859.77 1119.7,-1920.36 1199.13,-1876 1225.39,-1861.34 1212.71,-1837.56 1237.13,-1820 1285.46,-1785.25 1309.15,-1801.22 1366.13,-1784 1367.4,-1783.62 1368.68,-1783.23 1369.96,-1782.84"/>
+<polygon fill="black" stroke="black" points="1371.42,-1786.05 1379.94,-1779.75 1369.35,-1779.36 1371.42,-1786.05"/>
+</g>
+<!-- k_f82d8f98 -->
+<!-- k_f82d8f98->k_fe8ab28b -->
+<g id="edge284" class="edge"><title>k_f82d8f98:m_1e5046ac:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M379.13,-2830C435.581,-2830 396.751,-2760.2 426.13,-2712 522.371,-2554.09 535.6,-2484.35 699.13,-2398 739.96,-2376.44 1030.61,-2350.98 1170.83,-2339.78"/>
+<polygon fill="black" stroke="black" points="1171.37,-2343.25 1181.06,-2338.96 1170.82,-2336.27 1171.37,-2343.25"/>
+</g>
+<!-- k_f82d8f98->k_79d9c91b -->
+<g id="edge288" class="edge"><title>k_f82d8f98:m_1e5046ac:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M379.13,-2830C435.581,-2830 383.487,-2748.99 426.13,-2712 465.396,-2677.94 595.623,-2651.89 690.956,-2636.79"/>
+<polygon fill="black" stroke="black" points="691.602,-2640.23 700.941,-2635.23 690.52,-2633.31 691.602,-2640.23"/>
+</g>
+<!-- k_f82d8f98->k_8059d21c -->
+<g id="edge286" class="edge"><title>k_f82d8f98:m_1e5046ac:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M379.13,-2830C380.366,-2830 456.989,-2123.23 457.13,-2122 463.132,-2069.53 459.01,-2055.4 471.13,-2004 473.992,-1991.86 478.41,-1978.84 482.611,-1967.73"/>
+<polygon fill="black" stroke="black" points="485.976,-1968.74 486.358,-1958.15 479.456,-1966.19 485.976,-1968.74"/>
+</g>
+<!-- k_f82d8f98->k_7824fe0f -->
+<g id="edge292" class="edge"><title>k_f82d8f98:m_1e5046ac:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M379.13,-2830C435.581,-2830 380.631,-2745.42 426.13,-2712 469.058,-2680.47 851.082,-2680.77 904.13,-2676 1063.12,-2661.7 1249.28,-2641.32 1348.79,-2630.13"/>
+<polygon fill="black" stroke="black" points="1349.48,-2633.57 1359.02,-2628.98 1348.69,-2626.62 1349.48,-2633.57"/>
+</g>
+<!-- k_f82d8f98->k_9a759b9f -->
+<g id="edge290" class="edge"><title>k_f82d8f98:m_1e5046ac:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M379.13,-2830C396.691,-2830 382.608,-2807.48 378.13,-2790.5 344.921,-2664.57 271.742,-2658.34 240.13,-2532 209.448,-2409.38 216.777,-2101.72 267.13,-2004 281.882,-1975.37 349.059,-1923.54 379.13,-1912 544.444,-1848.56 999.56,-1899 1175.13,-1876 1290.61,-1860.87 1316.42,-1840.17 1431.13,-1820 1563.61,-1796.7 1718.02,-1777.48 1814.94,-1766.37"/>
+<polygon fill="black" stroke="black" points="1815.47,-1769.83 1825.01,-1765.22 1814.68,-1762.88 1815.47,-1769.83"/>
+</g>
+<!-- k_f82d8f98->k_3b5a6e9c -->
+<g id="edge294" class="edge"><title>k_f82d8f98:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M379.13,-2804C385.146,-2804 381.185,-2795.68 378.13,-2790.5 330.928,-2710.43 257.491,-2751.39 203.13,-2676 164.417,-2622.31 175.145,-2597.43 165.13,-2532 123.116,-2257.52 -2.37349,-2043.61 242.13,-1912 308.264,-1876.4 842.975,-1887.92 917.13,-1876 1010.81,-1860.94 1030.26,-1839.43 1123.13,-1820 1229.99,-1797.64 1259.85,-1808.99 1366.13,-1784 1367.42,-1783.7 1368.72,-1783.38 1370.02,-1783.06"/>
+<polygon fill="black" stroke="black" points="1371.33,-1786.34 1380.12,-1780.42 1369.56,-1779.56 1371.33,-1786.34"/>
+</g>
+<!-- k_340f81b4 -->
+<!-- k_340f81b4->k_fe8ab28b -->
+<g id="edge296" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2559.91,-2830 2554.92,-2797.86 2550.13,-2790.5 2505.6,-2722.11 2462.26,-2735.57 2384.13,-2712 2277.5,-2679.84 2244.55,-2701.51 2136.13,-2676 1986.73,-2640.84 1958.57,-2598.36 1808.13,-2568 1710.23,-2548.24 1438.19,-2594.31 1360.13,-2532 1311.35,-2493.07 1352.02,-2450.41 1318.13,-2398 1308.43,-2383 1294.29,-2369.37 1281.1,-2358.58"/>
+<polygon fill="black" stroke="black" points="1283.08,-2355.69 1273.06,-2352.25 1278.75,-2361.19 1283.08,-2355.69"/>
+</g>
+<!-- k_340f81b4->k_79d9c91b -->
+<g id="edge300" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_79d9c91b</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2559.91,-2830 2554.92,-2797.86 2550.13,-2790.5 2505.6,-2722.11 2463.44,-2731.26 2384.13,-2712 2160.71,-2657.74 1579.54,-2691.2 1350.13,-2676 1195.23,-2665.74 1016.51,-2646.98 905.404,-2634.51"/>
+<polygon fill="black" stroke="black" points="905.528,-2631 895.199,-2633.36 904.744,-2637.95 905.528,-2631"/>
+</g>
+<!-- k_340f81b4->k_8059d21c -->
+<g id="edge298" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2568.69,-2830 2551.83,-2807.98 2550.13,-2790.5 2548.56,-2774.33 2464.05,-2225.04 2452.13,-2214 2388.28,-2154.85 2148.29,-2190.29 2062.13,-2178 1659.67,-2120.58 1566.5,-2062.06 1164.13,-2004 952.72,-1973.49 701.608,-1953.92 575.287,-1945.22"/>
+<polygon fill="black" stroke="black" points="575.517,-1941.73 565.302,-1944.54 575.04,-1948.71 575.517,-1941.73"/>
+</g>
+<!-- k_340f81b4->k_7824fe0f -->
+<g id="edge308" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2559.91,-2830 2554.92,-2797.86 2550.13,-2790.5 2505.6,-2722.11 2462.84,-2733.56 2384.13,-2712 2362.57,-2706.09 1711.07,-2647.85 1491.54,-2628.33"/>
+<polygon fill="black" stroke="black" points="1491.69,-2624.83 1481.41,-2627.43 1491.07,-2631.81 1491.69,-2624.83"/>
+</g>
+<!-- k_340f81b4->k_9a759b9f -->
+<g id="edge302" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2557.7,-2830 2559.55,-2718.55 2560.13,-2712 2569.88,-2602.09 2585.13,-2575.34 2585.13,-2465 2585.13,-2465 2585.13,-2465 2585.13,-2334 2585.13,-2279.61 2600.04,-2252 2561.13,-2214 2494.95,-2149.36 2446.15,-2199.31 2356.13,-2178 2217.52,-2145.18 2153.24,-2183.22 2049.13,-2086 2002.97,-2042.9 1976.79,-1876.77 1949.13,-1820 1942.97,-1807.36 1935.06,-1793.98 1927.97,-1782.74"/>
+<polygon fill="black" stroke="black" points="1930.86,-1780.77 1922.51,-1774.24 1924.97,-1784.55 1930.86,-1780.77"/>
+</g>
+<!-- k_340f81b4->k_9fad21d -->
+<g id="edge306" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2564.28,-2830 2555.61,-2724.35 2560.13,-2712 2566.91,-2693.47 2578.18,-2694.06 2586.13,-2676 2660.38,-2507.36 2651.37,-2453.31 2670.13,-2270 2672.66,-2245.24 2682.54,-2235.58 2670.13,-2214 2613.73,-2115.94 2506.53,-2184.06 2450.13,-2086 2431.96,-2054.41 2426.5,-2031.75 2450.13,-2004 2515.22,-1927.56 2586.92,-2019.44 2673.13,-1968 2700.08,-1951.92 2688.92,-1927.63 2716.13,-1912 2826.08,-1848.86 2873.64,-1894.1 2999.13,-1876 3153.75,-1853.7 3191.88,-1844.7 3346.13,-1820 3459,-1801.93 3589.68,-1781.22 3670.88,-1768.37"/>
+<polygon fill="black" stroke="black" points="3671.69,-1771.78 3681.02,-1766.76 3670.6,-1764.87 3671.69,-1771.78"/>
+</g>
+<!-- k_340f81b4->k_3b5a6e9c -->
+<g id="edge310" class="edge"><title>k_340f81b4:m_fce6b61b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M2551.13,-2804C2569.96,-2804 2547.13,-2483.83 2547.13,-2465 2547.13,-2465 2547.13,-2465 2547.13,-2334 2547.13,-2119.8 2293.15,-2249.19 2091.13,-2178 1960.59,-2132 1619.68,-1881.66 1496.96,-1789.81"/>
+<polygon fill="black" stroke="black" points="1498.96,-1786.93 1488.86,-1783.74 1494.76,-1792.53 1498.96,-1786.93"/>
+</g>
+<!-- k_340f81b4->k_8e9f39bf -->
+<g id="edge304" class="edge"><title>k_340f81b4:m_d1e0d2bd:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M2551.13,-2830C2564.28,-2830 2550.62,-2721.08 2560.13,-2712 2608.86,-2665.49 3704.91,-2680.34 3772.13,-2676 3932.17,-2665.68 4118,-2645.39 4225.52,-2632.84"/>
+<polygon fill="black" stroke="black" points="4226.16,-2636.29 4235.68,-2631.65 4225.34,-2629.33 4226.16,-2636.29"/>
+</g>
+<!-- k_658873e3->k_c3b7abd7 -->
+<g id="edge312" class="edge"><title>k_658873e3:m_39b7e4fa:e->k_c3b7abd7</title>
+<path fill="none" stroke="black" d="M2128.13,-1072C2150.69,-1072 2161.5,-1046.67 2166.63,-1024.87"/>
+<polygon fill="black" stroke="black" points="2170.09,-1025.4 2168.66,-1014.9 2163.23,-1024 2170.09,-1025.4"/>
+</g>
+<!-- k_658873e3->k_dc31a474 -->
+<g id="edge314" class="edge"><title>k_658873e3:m_39b7e4fa:e->k_dc31a474</title>
+<path fill="none" stroke="black" d="M2128.13,-1072C2214.89,-1072 2029.63,-1027.37 1934.24,-1005.63"/>
+<polygon fill="black" stroke="black" points="1935,-1002.21 1924.47,-1003.41 1933.45,-1009.04 1935,-1002.21"/>
+</g>
+<!-- k_bd2e368b->k_cd819caf -->
+<g id="edge340" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.46,-2218.68 4736.13,-2214.5 4698.29,-2177.97 3842.24,-2185.1 3790.13,-2178 3430.97,-2129.1 3012.39,-2009.43 2851.19,-1960.93"/>
+<polygon fill="black" stroke="black" points="2851.99,-1957.51 2841.4,-1957.98 2849.97,-1964.22 2851.99,-1957.51"/>
+</g>
+<!-- k_bd2e368b->k_e65a2cb5 -->
+<g id="edge324" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_e65a2cb5</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4922.09,-2228 4931.08,-2058.82 4959.13,-1876 4962.9,-1851.4 4969.08,-1842.81 4959.13,-1820 4952.38,-1804.52 4939.83,-1791.11 4927.26,-1780.62"/>
+<polygon fill="black" stroke="black" points="4929.09,-1777.6 4919.07,-1774.15 4924.75,-1783.09 4929.09,-1777.6"/>
+</g>
+<!-- k_bd2e368b->k_9d34b335 -->
+<g id="edge322" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_9d34b335</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.41,-2218.73 4736.13,-2214.5 4688.51,-2167.51 4201.01,-2189.65 4135.13,-2178 4124.96,-2176.2 4114.34,-2173.69 4104.05,-2170.89"/>
+<polygon fill="black" stroke="black" points="4104.88,-2167.49 4094.31,-2168.14 4102.98,-2174.23 4104.88,-2167.49"/>
+</g>
+<!-- k_bd2e368b->k_bebd50c7 -->
+<g id="edge320" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_bebd50c7</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4738.32,-2228 5420.07,-2178.55 5421.13,-2178 5513.87,-2129.73 5513.74,-2071.69 5527.13,-1968 5553.78,-1761.66 5567.91,-1638.25 5398.13,-1518 5322.59,-1464.5 5072.7,-1505.38 4983.13,-1482 4924.62,-1466.73 4917.82,-1440.57 4859.13,-1426 4685.29,-1382.84 4152.29,-1367.99 3932.46,-1363.61"/>
+<polygon fill="black" stroke="black" points="3932.3,-1360.1 3922.23,-1363.41 3932.16,-1367.1 3932.3,-1360.1"/>
+</g>
+<!-- k_bd2e368b->k_a162095c -->
+<g id="edge328" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_a162095c</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.14,-2218.98 4736.13,-2214.5 4734.96,-2213.19 4240.87,-2122.25 4239.13,-2122 4165.05,-2111.14 3954.16,-2141.7 3904.13,-2086 3864.63,-2042.03 3868.32,-1867.03 3904.13,-1820 3912.99,-1808.37 3981.5,-1790.33 4041.8,-1776.36"/>
+<polygon fill="black" stroke="black" points="4042.82,-1779.72 4051.78,-1774.07 4041.25,-1772.89 4042.82,-1779.72"/>
+</g>
+<!-- k_bd2e368b->k_9fad21d -->
+<g id="edge334" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4831.21,-2228 4915.38,-1887.77 4850.13,-1820 4813.58,-1782.03 3954.52,-1789.76 3902.13,-1784 3877.7,-1781.32 3851.31,-1777 3827.43,-1772.56"/>
+<polygon fill="black" stroke="black" points="3827.85,-1769.07 3817.37,-1770.65 3826.54,-1775.95 3827.85,-1769.07"/>
+</g>
+<!-- k_bd2e368b->k_7ff585a7 -->
+<g id="edge316" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.4,-2218.74 4736.13,-2214.5 4651.62,-2130.48 4303.33,-2239.28 4201.13,-2178 4175.96,-2162.91 4191.01,-2137.56 4166.13,-2122 4101.71,-2081.72 3877.66,-2141.83 3826.13,-2086 3745.62,-1998.77 3803.91,-1929.33 3850.13,-1820 3868.42,-1776.74 3863.33,-1754.48 3902.13,-1728 3995.94,-1663.98 4062.34,-1757.49 4155.13,-1692 4188.75,-1668.27 4163.31,-1631.94 4198.13,-1610 4290.6,-1551.74 5077.41,-1608.46 5181.13,-1574 5222.66,-1560.2 5225.1,-1541.32 5262.13,-1518 5289.42,-1500.81 5308.94,-1509.89 5325.13,-1482 5358.15,-1425.11 5367.14,-1384.62 5325.13,-1334 5269.68,-1267.19 5205.75,-1345.58 5133.13,-1298 5107.97,-1281.52 5121.63,-1256.24 5095.13,-1242 5018.61,-1200.88 2053.2,-1223.57 1968.13,-1206 1961,-1204.53 1953.68,-1202.29 1946.61,-1199.72"/>
+<polygon fill="black" stroke="black" points="1947.77,-1196.41 1937.18,-1196.03 1945.22,-1202.93 1947.77,-1196.41"/>
+</g>
+<!-- k_bd2e368b->k_5425561b -->
+<g id="edge318" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.39,-2218.75 4736.13,-2214.5 4657.8,-2136.22 4335.02,-2233.4 4239.13,-2178 4213.09,-2162.95 4226.89,-2137.52 4201.13,-2122 4138.7,-2084.38 3924.44,-2139.67 3875.13,-2086 3795.13,-1998.93 3825.99,-1925.12 3880.13,-1820 3888.24,-1804.25 3902.06,-1790.77 3915.64,-1780.3"/>
+<polygon fill="black" stroke="black" points="3918,-1782.91 3924.01,-1774.18 3913.87,-1777.26 3918,-1782.91"/>
+</g>
+<!-- k_bd2e368b->k_414f39df -->
+<g id="edge336" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_414f39df</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4745.99,-2228 5365.11,-2181.78 5373.13,-2178 5424.6,-2153.76 5433.25,-2135.01 5462.13,-2086 5522.76,-1983.11 5522.82,-1937.25 5500.13,-1820 5491.75,-1776.73 5498.96,-1753.65 5463.13,-1728 5403.14,-1685.05 4870,-1715.69 4800.13,-1692 4738.95,-1671.26 4741.01,-1631.6 4680.13,-1610 4588.51,-1577.49 4341,-1582.24 4244.13,-1574 4158.15,-1566.69 4059.21,-1557.99 3994.38,-1552.25"/>
+<polygon fill="black" stroke="black" points="3994.55,-1548.75 3984.28,-1551.35 3993.93,-1555.72 3994.55,-1548.75"/>
+</g>
+<!-- k_bd2e368b->k_1fa76df9 -->
+<g id="edge338" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.4,-2218.73 4736.13,-2214.5 4647.07,-2126.26 4283.73,-2237.04 4173.13,-2178 4145.45,-2163.22 4157.49,-2137.36 4130.13,-2122 3999.55,-2048.7 3924.66,-2161.14 3795.13,-2086 3695.47,-2028.19 3685.71,-1983.06 3643.13,-1876 3613.48,-1801.44 3649.47,-1577.94 3596.13,-1518 3584.77,-1505.23 3499.13,-1485.38 3430.39,-1471.18"/>
+<polygon fill="black" stroke="black" points="3430.88,-1467.71 3420.38,-1469.12 3429.47,-1474.56 3430.88,-1467.71"/>
+</g>
+<!-- k_f9384575 -->
+<g id="node169" class="node"><title>k_f9384575</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5453.13,-2063 5347.13,-2063 5347.13,-2027 5453.13,-2027 5453.13,-2063"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5348.13,-2032 5348.13,-2057 5453.13,-2057 5453.13,-2032 5348.13,-2032"/>
+<text text-anchor="start" x="5353.13" y="-2041.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">AccountStore</text>
+</g>
+<!-- k_bd2e368b->k_f9384575 -->
+<g id="edge332" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_f9384575</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4745.51,-2228 5331.26,-2182.79 5338.13,-2178 5373.05,-2153.65 5388.8,-2104.42 5395.53,-2073.16"/>
+<polygon fill="black" stroke="black" points="5398.97,-2073.81 5397.48,-2063.32 5392.1,-2072.45 5398.97,-2073.81"/>
+</g>
+<!-- k_b545a68a -->
+<!-- k_bd2e368b->k_b545a68a -->
+<g id="edge326" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_b545a68a</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C5036.4,-2228 5015.82,-1972.68 5188.13,-1728 5225.03,-1675.6 5271.23,-1617.65 5300.72,-1581.53"/>
+<polygon fill="black" stroke="black" points="5303.49,-1583.68 5307.12,-1573.72 5298.07,-1579.24 5303.49,-1583.68"/>
+</g>
+<!-- k_b0057a76 -->
+<!-- k_bd2e368b->k_b0057a76 -->
+<g id="edge342" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_b0057a76</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4743.15,-2228 4740.44,-2218.7 4736.13,-2214.5 4675.52,-2155.53 4075.74,-2192.07 3953.31,-2177.59"/>
+<polygon fill="black" stroke="black" points="3953.68,-2174.11 3943.27,-2176.08 3952.64,-2181.03 3953.68,-2174.11"/>
+</g>
+<!-- k_c29d2db0 -->
+<!-- k_bd2e368b->k_c29d2db0 -->
+<g id="edge330" class="edge"><title>k_bd2e368b:m_a1db3271:e->k_c29d2db0</title>
+<path fill="none" stroke="black" d="M4737.13,-2228C4861.08,-2228 5000.82,-2201.93 5096.65,-2179.93"/>
+<polygon fill="black" stroke="black" points="5097.71,-2183.28 5106.66,-2177.61 5096.13,-2176.46 5097.71,-2183.28"/>
+</g>
+<!-- k_ce071950->k_429c8161 -->
+<g id="edge356" class="edge"><title>k_ce071950:m_7182081:e->k_429c8161</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2509.02,-1834 2658.56,-1799.82 2744.7,-1776.71"/>
+<polygon fill="black" stroke="black" points="2745.63,-1780.08 2754.37,-1774.09 2743.8,-1773.33 2745.63,-1780.08"/>
+</g>
+<!-- k_ce071950->k_a939ddfc -->
+<g id="edge360" class="edge"><title>k_ce071950:m_7182081:e->k_a939ddfc</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2413.07,-1834 2443.47,-1804.76 2461.78,-1782.08"/>
+<polygon fill="black" stroke="black" points="2464.61,-1784.14 2467.97,-1774.09 2459.08,-1779.86 2464.61,-1784.14"/>
+</g>
+<!-- k_ce071950->k_9a759b9f -->
+<g id="edge364" class="edge"><title>k_ce071950:m_7182081:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2384.15,-1834 2381.33,-1824.81 2377.13,-1820.5 2319.75,-1761.67 2089.87,-1799.3 2009.13,-1784 1998.65,-1782.01 1987.67,-1779.43 1977,-1776.64"/>
+<polygon fill="black" stroke="black" points="1977.87,-1773.25 1967.3,-1774.02 1976.05,-1780.01 1977.87,-1773.25"/>
+</g>
+<!-- k_ce071950->k_1a7eca26 -->
+<g id="edge350" class="edge"><title>k_ce071950:m_7182081:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2384.15,-1834 2378.9,-1826.25 2377.13,-1820.5 2351.49,-1737.34 2279.13,-1738.02 2279.13,-1651 2279.13,-1651 2279.13,-1651 2279.13,-1546 2279.13,-1485.97 2290.5,-1458.25 2341.13,-1426 2424.51,-1372.89 3131.75,-1399.74 3230.13,-1390 3265.9,-1386.46 3305.44,-1380.41 3338.06,-1374.84"/>
+<polygon fill="black" stroke="black" points="3338.69,-1378.28 3347.95,-1373.13 3337.5,-1371.38 3338.69,-1378.28"/>
+</g>
+<!-- k_ce071950->k_7ff585a7 -->
+<g id="edge344" class="edge"><title>k_ce071950:m_7182081:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2384.15,-1834 2380.52,-1825.47 2377.13,-1820.5 2364.83,-1802.49 2023.13,-1672.8 2023.13,-1651 2023.13,-1651 2023.13,-1651 2023.13,-1362 2023.13,-1295.9 1967.76,-1235.36 1931.63,-1202.88"/>
+<polygon fill="black" stroke="black" points="1933.62,-1199.97 1923.79,-1196 1929,-1205.23 1933.62,-1199.97"/>
+</g>
+<!-- k_ce071950->k_1f909b4 -->
+<g id="edge346" class="edge"><title>k_ce071950:m_7182081:e->k_1f909b4</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2462.98,-1834 3041.6,-1779.59 3229.99,-1761.66"/>
+<polygon fill="black" stroke="black" points="3230.36,-1765.14 3239.98,-1760.7 3229.69,-1758.17 3230.36,-1765.14"/>
+</g>
+<!-- k_ce071950->k_2584ae8 -->
+<g id="edge358" class="edge"><title>k_ce071950:m_7182081:e->k_2584ae8</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2478.01,-1834 2330.62,-1685.39 2396.13,-1610 2424.78,-1577.03 2543.62,-1559.5 2618.8,-1551.53"/>
+<polygon fill="black" stroke="black" points="2619.52,-1554.97 2629.11,-1550.46 2618.8,-1548.01 2619.52,-1554.97"/>
+</g>
+<!-- k_ce071950->k_5425561b -->
+<g id="edge348" class="edge"><title>k_ce071950:m_7182081:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2700.1,-1834 3506.64,-1823.86 3826.13,-1784 3850.99,-1780.9 3878.14,-1775.34 3901.1,-1769.99"/>
+<polygon fill="black" stroke="black" points="3902.07,-1773.35 3910.99,-1767.63 3900.45,-1766.54 3902.07,-1773.35"/>
+</g>
+<!-- k_ce071950->k_3b5a6e9c -->
+<g id="edge354" class="edge"><title>k_ce071950:m_7182081:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2375.15,-1834 2372.4,-1824.74 2368.13,-1820.5 2323.76,-1776.53 1869.44,-1788.42 1807.13,-1784 1713.58,-1777.36 1606.56,-1769.04 1534.64,-1763.2"/>
+<polygon fill="black" stroke="black" points="1534.54,-1759.68 1524.29,-1762.36 1533.97,-1766.66 1534.54,-1759.68"/>
+</g>
+<!-- k_ce071950->k_3b5a6e9c -->
+<g id="edge362" class="edge"><title>k_ce071950:m_7182081:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2393.15,-1834 2390.4,-1824.74 2386.13,-1820.5 2341.76,-1776.53 1887.44,-1788.42 1825.13,-1784 1725.5,-1776.93 1610.6,-1767.95 1534.88,-1762.1"/>
+<polygon fill="black" stroke="black" points="1534.7,-1758.57 1524.46,-1761.29 1534.16,-1765.55 1534.7,-1758.57"/>
+</g>
+<!-- k_ce071950->k_1fa76df9 -->
+<g id="edge352" class="edge"><title>k_ce071950:m_7182081:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M2378.13,-1834C2393.91,-1834 2375.3,-1707.78 2375.13,-1692 2374.74,-1655.56 2354.38,-1639.96 2375.13,-1610 2441.36,-1514.38 2506.45,-1542.62 2620.13,-1518 2852.61,-1467.65 2917.63,-1507.54 3154.13,-1482 3186.84,-1478.47 3222.59,-1473.44 3254.05,-1468.62"/>
+<polygon fill="black" stroke="black" points="3254.76,-1472.05 3264.11,-1467.06 3253.69,-1465.13 3254.76,-1472.05"/>
+</g>
+<!-- k_2dde583f->k_49a1fb25 -->
+<g id="edge378" class="edge"><title>k_2dde583f:m_540a509d:e->k_49a1fb25</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1472.15,-2228 1469.28,-2218.86 1465.13,-2214.5 1419.75,-2166.81 1235.77,-2190.49 1171.13,-2178 1160.22,-2175.89 1148.77,-2173.29 1137.59,-2170.52"/>
+<polygon fill="black" stroke="black" points="1138.42,-2167.12 1127.87,-2168.06 1136.7,-2173.91 1138.42,-2167.12"/>
+</g>
+<!-- k_2dde583f->k_a7a419fb -->
+<g id="edge372" class="edge"><title>k_2dde583f:m_540a509d:e->k_a7a419fb</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1472.15,-2228 1469.39,-2218.75 1465.13,-2214.5 1425.64,-2175.06 1018.23,-2191.73 964.13,-2178 958.044,-2176.46 951.813,-2174.35 945.759,-2171.97"/>
+<polygon fill="black" stroke="black" points="947.013,-2168.7 936.437,-2168.07 944.308,-2175.16 947.013,-2168.7"/>
+</g>
+<!-- k_2dde583f->k_9fad21d -->
+<g id="edge380" class="edge"><title>k_2dde583f:m_540a509d:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1522.68,-2228 1532.33,-2202.85 1583.13,-2178 1726.45,-2107.89 1752.9,-2072.21 1897.13,-2004 1997.4,-1956.58 2021.47,-1938.71 2129.13,-1912 2220.47,-1889.34 2877.45,-1828.97 2971.13,-1820 3226.79,-1795.52 3530.28,-1772.21 3670.68,-1761.76"/>
+<polygon fill="black" stroke="black" points="3671.2,-1765.23 3680.91,-1761 3670.68,-1758.25 3671.2,-1765.23"/>
+</g>
+<!-- k_2dde583f->k_7ff585a7 -->
+<g id="edge370" class="edge"><title>k_2dde583f:m_540a509d:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1472.15,-2228 1469.16,-2218.96 1465.13,-2214.5 1402.48,-2145.21 1323.94,-2244.3 1258.13,-2178 1168.29,-2087.49 1113.13,-1720.88 1176.13,-1610 1320.83,-1355.34 1681.63,-1234.97 1832.8,-1194.45"/>
+<polygon fill="black" stroke="black" points="1834.11,-1197.73 1842.88,-1191.79 1832.32,-1190.96 1834.11,-1197.73"/>
+</g>
+<!-- k_2dde583f->k_5ca82e04 -->
+<g id="edge368" class="edge"><title>k_2dde583f:m_540a509d:e->k_5ca82e04</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1472.15,-2228 1469.24,-2218.9 1465.13,-2214.5 1386.66,-2130.53 1308.36,-2235.98 1209.13,-2178 1182.04,-2162.17 1186.62,-2145.77 1166.13,-2122 1118.51,-2066.77 1115.36,-2040.32 1052.13,-2004 993.804,-1970.5 968.576,-1990.34 905.13,-1968 813.982,-1935.91 793.697,-1920.9 708.13,-1876 648.548,-1844.73 581.642,-1804.58 540.95,-1779.56"/>
+<polygon fill="black" stroke="black" points="542.531,-1776.43 532.182,-1774.16 538.858,-1782.39 542.531,-1776.43"/>
+</g>
+<!-- k_2dde583f->k_2f704481 -->
+<g id="edge366" class="edge"><title>k_2dde583f:m_540a509d:e->k_2f704481</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1472.15,-2228 1469.12,-2219 1465.13,-2214.5 1409.56,-2151.77 1333.35,-2242.74 1280.13,-2178 1230.88,-2118.09 1277.32,-1869.23 1294.97,-1784.44"/>
+<polygon fill="black" stroke="black" points="1298.43,-1785 1297.07,-1774.49 1291.58,-1783.55 1298.43,-1785"/>
+</g>
+<!-- k_2dde583f->k_11372840 -->
+<g id="edge376" class="edge"><title>k_2dde583f:m_540a509d:e->k_11372840</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1543.48,-2228 1531.13,-2071.81 1531.13,-2045 1531.13,-2045 1531.13,-2045 1531.13,-1940 1531.13,-1636.67 1838.11,-1710.91 2037.13,-1482 2056.86,-1459.3 2050.33,-1443.02 2075.13,-1426 2372.71,-1221.73 2509.58,-1298.16 2866.13,-1242 3108.26,-1203.86 3397.55,-1187.43 3539.61,-1181.24"/>
+<polygon fill="black" stroke="black" points="3540.16,-1184.72 3550,-1180.8 3539.86,-1177.73 3540.16,-1184.72"/>
+</g>
+<!-- k_2dde583f->k_5425561b -->
+<g id="edge374" class="edge"><title>k_2dde583f:m_540a509d:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1550.44,-2228 1568.84,-2203.74 1649.13,-2178 1861.63,-2109.86 1905.07,-2063.59 2120.13,-2004 2332.4,-1945.18 2388.24,-1936.66 2607.13,-1912 3029.21,-1864.45 3145.04,-1956.28 3562.13,-1876 3634.88,-1862 3648.44,-1842.16 3719.13,-1820 3780.96,-1800.62 3852.96,-1781.6 3901.02,-1769.4"/>
+<polygon fill="black" stroke="black" points="3902.07,-1772.74 3910.9,-1766.9 3900.35,-1765.96 3902.07,-1772.74"/>
+</g>
+<!-- k_2dde583f->k_a5714fa9 -->
+<g id="edge386" class="edge"><title>k_2dde583f:m_540a509d:e->k_a5714fa9</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1499.03,-2228 1462.03,-2203.92 1422.64,-2182.52"/>
+<polygon fill="black" stroke="black" points="1424.16,-2179.36 1413.7,-2177.72 1420.85,-2185.53 1424.16,-2179.36"/>
+</g>
+<!-- k_2dde583f->k_3b5a6e9c -->
+<g id="edge384" class="edge"><title>k_2dde583f:m_540a509d:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1544.55,-2228 1443.91,-1954.37 1441.13,-1876 1440.25,-1851.13 1439.01,-1844.8 1441.13,-1820 1441.87,-1811.36 1443.15,-1802.14 1444.59,-1793.46"/>
+<polygon fill="black" stroke="black" points="1448.04,-1794.04 1446.33,-1783.59 1441.15,-1792.83 1448.04,-1794.04"/>
+</g>
+<!-- k_2dde583f->k_414f39df -->
+<g id="edge382" class="edge"><title>k_2dde583f:m_540a509d:e->k_414f39df</title>
+<path fill="none" stroke="black" d="M1466.13,-2228C1507.68,-2228 1516.08,-2207.71 1545.13,-2178 1565.53,-2157.14 1791.51,-1743.68 1816.13,-1728 1880.21,-1687.18 2081.94,-1708.38 2156.13,-1692 2266.2,-1667.69 2285.22,-1630.14 2396.13,-1610 2658.62,-1562.34 3329.79,-1589.35 3596.13,-1574 3685.09,-1568.87 3787.35,-1559.61 3853.71,-1553.14"/>
+<polygon fill="black" stroke="black" points="3854.44,-1556.59 3864.05,-1552.13 3853.75,-1549.62 3854.44,-1556.59"/>
+</g>
+<!-- k_af50407e->k_7ff585a7 -->
+<g id="edge388" class="edge"><title>k_af50407e:m_80d9bd00:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M860.13,-2320C866.146,-2320 862.682,-2311.36 859.13,-2306.5 833.399,-2271.33 802.936,-2296.22 768.13,-2270 666.941,-2193.78 593.13,-2171.69 593.13,-2045 593.13,-2045 593.13,-2045 593.13,-1362 593.13,-1302.76 601.772,-1274.75 651.13,-1242 675.936,-1225.54 1574.81,-1190.34 1832.64,-1180.57"/>
+<polygon fill="black" stroke="black" points="1833.13,-1184.05 1842.99,-1180.17 1832.87,-1177.05 1833.13,-1184.05"/>
+</g>
+<!-- k_b8507171->k_7ff585a7 -->
+<g id="edge394" class="edge"><title>k_b8507171:m_4eabfea5:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M535.13,-1834C541.146,-1834 537.868,-1825.21 534.13,-1820.5 519.297,-1801.8 142.071,-1707.74 124.13,-1692 109.034,-1678.75 105.13,-1671.08 105.13,-1651 105.13,-1651 105.13,-1651 105.13,-1362 105.13,-1144.69 364.198,-1274.08 579.13,-1242 703.327,-1223.46 1579.32,-1189.92 1832.66,-1180.51"/>
+<polygon fill="black" stroke="black" points="1832.97,-1184 1842.83,-1180.14 1832.71,-1177.01 1832.97,-1184"/>
+</g>
+<!-- k_b8507171->k_5ca82e04 -->
+<g id="edge392" class="edge"><title>k_b8507171:m_4eabfea5:e->k_5ca82e04</title>
+<path fill="none" stroke="black" d="M535.13,-1834C558.073,-1834 540.922,-1804.76 524.175,-1782.08"/>
+<polygon fill="black" stroke="black" points="526.938,-1779.93 518.099,-1774.09 521.366,-1784.17 526.938,-1779.93"/>
+</g>
+<!-- k_b8507171->k_2f704481 -->
+<g id="edge390" class="edge"><title>k_b8507171:m_4eabfea5:e->k_2f704481</title>
+<path fill="none" stroke="black" d="M535.13,-1834C569.94,-1834 1055.38,-1782.34 1234.96,-1763.11"/>
+<polygon fill="black" stroke="black" points="1235.5,-1766.57 1245.07,-1762.02 1234.75,-1759.61 1235.5,-1766.57"/>
+</g>
+<!-- k_d7fdc6fa->k_7ff585a7 -->
+<g id="edge396" class="edge"><title>k_d7fdc6fa:m_b8b71743:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M2846.13,-1650C2863.73,-1650 2905.96,-1518.64 2826.13,-1426 2569.16,-1127.77 2341.39,-1331.11 1968.13,-1206 1962.62,-1204.15 1956.91,-1202.06 1951.27,-1199.87"/>
+<polygon fill="black" stroke="black" points="1952.46,-1196.58 1941.87,-1196.13 1949.87,-1203.08 1952.46,-1196.58"/>
+</g>
+<!-- k_d7fdc6fa->k_2584ae8 -->
+<g id="edge400" class="edge"><title>k_d7fdc6fa:m_b8b71743:e->k_2584ae8</title>
+<path fill="none" stroke="black" d="M2846.13,-1650C2863.69,-1650 2855.18,-1624.9 2845.13,-1610.5 2822.43,-1578 2780.63,-1561.87 2745.05,-1553.87"/>
+<polygon fill="black" stroke="black" points="2745.7,-1550.44 2735.2,-1551.83 2744.28,-1557.29 2745.7,-1550.44"/>
+</g>
+<!-- k_d7fdc6fa->k_2584ae8 -->
+<g id="edge402" class="edge"><title>k_d7fdc6fa:m_702001c6:e->k_2584ae8</title>
+<path fill="none" stroke="black" d="M2846.13,-1624C2899.32,-1624 2811.18,-1590.13 2744.89,-1567.02"/>
+<polygon fill="black" stroke="black" points="2745.88,-1563.66 2735.29,-1563.7 2743.59,-1570.28 2745.88,-1563.66"/>
+</g>
+<!-- k_d7fdc6fa->k_1fa76df9 -->
+<g id="edge398" class="edge"><title>k_d7fdc6fa:m_b8b71743:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M2846.13,-1650C2939.35,-1650 2924.6,-1557.31 3009.13,-1518 3051.71,-1498.2 3170.51,-1478.23 3254.02,-1465.98"/>
+<polygon fill="black" stroke="black" points="3254.63,-1469.43 3264.02,-1464.53 3253.62,-1462.5 3254.63,-1469.43"/>
+</g>
+<!-- k_672c32f9->k_9d43c1d5 -->
+<g id="edge410" class="edge"><title>k_672c32f9:m_155ec683:e->k_9d43c1d5</title>
+<path fill="none" stroke="black" d="M3772.13,-2451C3978.5,-2451 4217.01,-2387.03 4327.31,-2353.7"/>
+<polygon fill="black" stroke="black" points="4328.39,-2357.02 4336.94,-2350.76 4326.36,-2350.33 4328.39,-2357.02"/>
+</g>
+<!-- k_672c32f9->k_acce46b4 -->
+<g id="edge408" class="edge"><title>k_672c32f9:m_155ec683:e->k_acce46b4</title>
+<path fill="none" stroke="black" d="M3772.13,-2451C3778.15,-2451 3775.32,-2441.82 3771.13,-2437.5 3652.86,-2315.67 3560.34,-2412.08 3391.13,-2398 3043.96,-2369.12 2629.58,-2347.01 2453.31,-2338.19"/>
+<polygon fill="black" stroke="black" points="2453.48,-2334.69 2443.32,-2337.69 2453.13,-2341.68 2453.48,-2334.69"/>
+</g>
+<!-- k_672c32f9->k_7ff585a7 -->
+<g id="edge404" class="edge"><title>k_672c32f9:m_155ec683:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M3772.13,-2451C3854.09,-2451 3725.14,-2167.74 3719.13,-2086 3710.45,-1968.03 3655.78,-1913.58 3728.13,-1820 3756.51,-1783.29 3790.5,-1813.72 3826.13,-1784 3848.31,-1765.5 3835.08,-1744 3859.13,-1728 3957.35,-1662.64 4029.08,-1764.53 4122.13,-1692 4153.11,-1667.85 4122.98,-1632.58 4155.13,-1610 4245.48,-1546.55 5053.28,-1630.5 5148.13,-1574 5172.95,-1559.22 5158.86,-1536.4 5181.13,-1518 5217.87,-1487.65 5252.6,-1519.4 5282.13,-1482 5322.98,-1430.26 5334.35,-1384.64 5292.13,-1334 5235.13,-1265.64 5168.11,-1348.95 5095.13,-1298 5071.44,-1281.46 5087.13,-1256.48 5062.13,-1242 4987.75,-1198.92 2052.3,-1223.39 1968.13,-1206 1961,-1204.53 1953.68,-1202.29 1946.61,-1199.72"/>
+<polygon fill="black" stroke="black" points="1947.77,-1196.41 1937.18,-1196.03 1945.22,-1202.93 1947.77,-1196.41"/>
+</g>
+<!-- k_672c32f9->k_1f909b4 -->
+<g id="edge406" class="edge"><title>k_672c32f9:m_155ec683:e->k_1f909b4</title>
+<path fill="none" stroke="black" d="M3772.13,-2451C3886.37,-2451 3472.26,-2181.86 3410.13,-2086 3344.67,-1985.01 3308.25,-1843.76 3294.98,-1784.23"/>
+<polygon fill="black" stroke="black" points="3298.32,-1783.11 3292.77,-1774.09 3291.48,-1784.61 3298.32,-1783.11"/>
+</g>
+<!-- k_550eb5f6->k_b545a68a -->
+<g id="edge412" class="edge"><title>k_550eb5f6:m_101e3d67:e->k_b545a68a</title>
+<path fill="none" stroke="black" d="M4975.13,-1637C5077.22,-1637 5190.79,-1601.25 5261.35,-1574.57"/>
+<polygon fill="black" stroke="black" points="5262.93,-1577.71 5271.02,-1570.87 5260.43,-1571.17 5262.93,-1577.71"/>
+</g>
+<!-- k_b69674be->k_cd819caf -->
+<g id="edge416" class="edge"><title>k_b69674be:m_5a841140:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M2003.13,-2817C2190.47,-2817 1996.19,-2577.71 2049.13,-2398 2074.97,-2310.3 2069.38,-2270.67 2141.13,-2214 2239.1,-2136.62 2589.42,-2162.43 2688.13,-2086 2720.67,-2060.81 2708.49,-2038.36 2731.13,-2004 2739.81,-1990.82 2750.66,-1977.12 2760.2,-1965.8"/>
+<polygon fill="black" stroke="black" points="2763.02,-1967.89 2766.86,-1958.01 2757.7,-1963.34 2763.02,-1967.89"/>
+</g>
+<!-- k_b69674be->k_e65a2cb5 -->
+<g id="edge414" class="edge"><title>k_b69674be:m_5a841140:e->k_e65a2cb5</title>
+<path fill="none" stroke="black" d="M2003.13,-2817C2049.83,-2817 2029.56,-2444.24 2036.13,-2398 2042,-2356.66 2044.03,-2346.25 2055.13,-2306 2066.64,-2264.27 2060.57,-2248.19 2087.13,-2214 2132.58,-2155.49 2159.44,-2154.26 2226.13,-2122 2272.44,-2099.6 2290.27,-2109.29 2336.13,-2086 2391.78,-2057.74 2394.72,-2032.73 2450.13,-2004 2561.19,-1946.43 2593.04,-1934.32 2716.13,-1912 2792.69,-1898.12 4047.86,-1913.31 4116.13,-1876 4142.52,-1861.58 4127.94,-1834.79 4154.13,-1820 4284.15,-1746.57 4679.74,-1818.07 4825.13,-1784 4831.72,-1782.46 4838.49,-1780.28 4845.04,-1777.81"/>
+<polygon fill="black" stroke="black" points="4846.48,-1781.01 4854.46,-1774.04 4843.88,-1774.51 4846.48,-1781.01"/>
+</g>
+<!-- k_b69674be->k_7824fe0f -->
+<g id="edge418" class="edge"><title>k_b69674be:m_5a841140:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M2003.13,-2817C2227.47,-2817 1690.34,-2685.53 1490.97,-2638.49"/>
+<polygon fill="black" stroke="black" points="1491.7,-2635.07 1481.17,-2636.18 1490.1,-2641.88 1491.7,-2635.07"/>
+</g>
+<!-- k_891c668a->k_7ff585a7 -->
+<g id="edge420" class="edge"><title>k_891c668a:m_4f9b8ac6:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M876.13,-1834C935.443,-1834 690.251,-1735.68 650.13,-1692 636.544,-1677.21 631.13,-1671.08 631.13,-1651 631.13,-1651 631.13,-1651 631.13,-1362 631.13,-1252.18 741.705,-1272.76 847.13,-1242 941.273,-1214.53 1614.41,-1188.27 1832.87,-1180.39"/>
+<polygon fill="black" stroke="black" points="1833.05,-1183.88 1842.92,-1180.03 1832.8,-1176.89 1833.05,-1183.88"/>
+</g>
+<!-- k_891c668a->k_fab1a897 -->
+<g id="edge422" class="edge"><title>k_891c668a:m_4f9b8ac6:e->k_fab1a897</title>
+<path fill="none" stroke="black" d="M876.13,-1834C886.418,-1834 884.142,-1806.52 880.591,-1784.19"/>
+<polygon fill="black" stroke="black" points="883.999,-1783.35 878.853,-1774.09 877.1,-1784.54 883.999,-1783.35"/>
+</g>
+<!-- k_d30a49b4->k_7ff585a7 -->
+<g id="edge424" class="edge"><title>k_d30a49b4:m_eb61cf5a:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M4380.13,-2031C4721.38,-2031 4805.14,-1942.92 5107.13,-1784 5115.95,-1779.36 5393.45,-1582.8 5398.13,-1574 5448.78,-1478.85 5446.46,-1402.38 5363.13,-1334 5299.39,-1281.69 5252.33,-1339.59 5181.13,-1298 5152.83,-1281.46 5162.83,-1255.87 5133.13,-1242 4973.79,-1167.61 2140.34,-1241.56 1968.13,-1206 1961,-1204.53 1953.68,-1202.29 1946.61,-1199.72"/>
+<polygon fill="black" stroke="black" points="1947.77,-1196.41 1937.18,-1196.03 1945.22,-1202.93 1947.77,-1196.41"/>
+</g>
+<!-- k_d30a49b4->k_960ad002 -->
+<g id="edge426" class="edge"><title>k_d30a49b4:m_eb61cf5a:e->k_960ad002</title>
+<path fill="none" stroke="black" d="M4380.13,-2031C4405.63,-2031 4398.58,-1994.84 4389.89,-1968.1"/>
+<polygon fill="black" stroke="black" points="4393.11,-1966.72 4386.54,-1958.42 4386.5,-1969.01 4393.11,-1966.72"/>
+</g>
+<!-- k_a76b388f->k_7ff585a7 -->
+<g id="edge428" class="edge"><title>k_a76b388f:m_eccba8fc:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M3775.13,-1256C3781.15,-1256 3778.5,-1246.64 3774.13,-1242.5 3737.71,-1207.99 2017.22,-1216.36 1968.13,-1206 1961.09,-1204.51 1953.86,-1202.3 1946.88,-1199.76"/>
+<polygon fill="black" stroke="black" points="1948.13,-1196.49 1937.54,-1196.12 1945.59,-1203.01 1948.13,-1196.49"/>
+</g>
+<!-- k_a76b388f->k_11372840 -->
+<g id="edge430" class="edge"><title>k_a76b388f:m_eccba8fc:e->k_11372840</title>
+<path fill="none" stroke="black" d="M3775.13,-1256C3823.65,-1256 3745.82,-1222.78 3685.88,-1199.7"/>
+<polygon fill="black" stroke="black" points="3687.02,-1196.39 3676.43,-1196.09 3684.52,-1202.93 3687.02,-1196.39"/>
+</g>
+<!-- k_a0aaa852->k_bebd50c7 -->
+<g id="edge436" class="edge"><title>k_a0aaa852:m_f548b735:e->k_bebd50c7</title>
+<path fill="none" stroke="black" d="M3145.13,-1440C3153.93,-1440 3151.17,-1429.75 3159.13,-1426 3185,-1413.83 3559.35,-1383.43 3739.99,-1369.36"/>
+<polygon fill="black" stroke="black" points="3740.33,-1372.85 3750.03,-1368.58 3739.78,-1365.87 3740.33,-1372.85"/>
+</g>
+<!-- k_a0aaa852->k_7ff585a7 -->
+<g id="edge432" class="edge"><title>k_a0aaa852:m_f548b735:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M3145.13,-1440C3151.15,-1440 3147.73,-1431.32 3144.13,-1426.5 3116.84,-1389.91 3089.89,-1408.43 3048.13,-1390 2965.21,-1353.4 2935.92,-1355.83 2866.13,-1298 2841.97,-1277.98 2850.98,-1256.46 2823.13,-1242 2738.75,-1198.17 2060.94,-1226.65 1968.13,-1206 1961.35,-1204.49 1954.39,-1202.34 1947.63,-1199.88"/>
+<polygon fill="black" stroke="black" points="1948.51,-1196.47 1937.93,-1196.11 1945.98,-1202.99 1948.51,-1196.47"/>
+</g>
+<!-- k_a0aaa852->k_a952f2c4 -->
+<g id="edge434" class="edge"><title>k_a0aaa852:m_f548b735:e->k_a952f2c4</title>
+<path fill="none" stroke="black" d="M3145.13,-1440C3165.95,-1440 3159.68,-1412.03 3151.3,-1389.58"/>
+<polygon fill="black" stroke="black" points="3154.47,-1388.09 3147.52,-1380.09 3147.97,-1390.68 3154.47,-1388.09"/>
+</g>
+<!-- k_cdd80b0b->k_7ff585a7 -->
+<g id="edge438" class="edge"><title>k_cdd80b0b:m_aa2699dc:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M1006.13,-1256C1014.93,-1256 1012.13,-1245.66 1020.13,-1242 1093.3,-1208.53 1638.6,-1186.93 1832.75,-1180.23"/>
+<polygon fill="black" stroke="black" points="1832.95,-1183.72 1842.83,-1179.88 1832.71,-1176.72 1832.95,-1183.72"/>
+</g>
+<!-- k_cdd80b0b->k_6beca52f -->
+<g id="edge440" class="edge"><title>k_cdd80b0b:m_aa2699dc:e->k_6beca52f</title>
+<path fill="none" stroke="black" d="M1006.13,-1256C1016.42,-1256 1014.14,-1228.52 1010.59,-1206.19"/>
+<polygon fill="black" stroke="black" points="1014,-1205.35 1008.85,-1196.09 1007.1,-1206.54 1014,-1205.35"/>
+</g>
+<!-- k_c3321797->k_c1f839a6 -->
+<g id="edge444" class="edge"><title>k_c3321797:m_b707ae9a:e->k_c1f839a6</title>
+<path fill="none" stroke="black" d="M1157.13,-1440C1163.15,-1440 1159.97,-1431.14 1156.13,-1426.5 1116.23,-1378.28 1079.73,-1409.08 1020.13,-1390 1013.82,-1387.98 1007.25,-1385.74 1000.75,-1383.43"/>
+<polygon fill="black" stroke="black" points="1001.89,-1380.12 991.298,-1380.02 999.516,-1386.71 1001.89,-1380.12"/>
+</g>
+<!-- k_c3321797->k_7ff585a7 -->
+<g id="edge442" class="edge"><title>k_c3321797:m_b707ae9a:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M1157.13,-1440C1163.15,-1440 1158.41,-1432.07 1156.13,-1426.5 1148.06,-1406.81 1138.58,-1406.49 1125.13,-1390 1078.9,-1333.31 1003.39,-1295.63 1053.13,-1242 1079.54,-1213.52 1635.78,-1188.61 1832.75,-1180.65"/>
+<polygon fill="black" stroke="black" points="1833.12,-1184.14 1842.97,-1180.24 1832.84,-1177.14 1833.12,-1184.14"/>
+</g>
+<!-- k_c3321797->k_7d67dc61 -->
+<g id="edge446" class="edge"><title>k_c3321797:m_b707ae9a:e->k_7d67dc61</title>
+<path fill="none" stroke="black" d="M1157.13,-1440C1183.32,-1440 1199.66,-1412.03 1208.56,-1389.58"/>
+<polygon fill="black" stroke="black" points="1211.88,-1390.68 1212.02,-1380.09 1205.3,-1388.28 1211.88,-1390.68"/>
+</g>
+<!-- k_68db9ec8->k_7ff585a7 -->
+<g id="edge448" class="edge"><title>k_68db9ec8:m_caed5f27:e->k_7ff585a7</title>
+<path fill="none" stroke="black" d="M4748.13,-2817C4909.79,-2817 4576.96,-2684.08 4522.13,-2532 4501.93,-2475.97 4481.63,-2441.66 4522.13,-2398 4558.35,-2358.95 4947.5,-2370.15 5000.13,-2362 5175.69,-2334.8 5224.79,-2337.5 5389.13,-2270 5461.82,-2240.14 5486.43,-2235.38 5540.13,-2178 5799.84,-1900.47 5717.74,-1545.8 5402.13,-1334 5331.49,-1286.59 5286.54,-1342.65 5214.13,-1298 5187.42,-1281.53 5199.2,-1256.03 5171.13,-1242 5091.54,-1202.21 2055.27,-1223.99 1968.13,-1206 1961,-1204.53 1953.68,-1202.3 1946.61,-1199.72"/>
+<polygon fill="black" stroke="black" points="1947.77,-1196.41 1937.18,-1196.04 1945.22,-1202.93 1947.77,-1196.41"/>
+</g>
+<!-- k_68db9ec8->k_55c22c57 -->
+<g id="edge450" class="edge"><title>k_68db9ec8:m_caed5f27:e->k_55c22c57</title>
+<path fill="none" stroke="black" d="M4748.13,-2817C4814.12,-2817 4779.03,-2703.93 4758.54,-2649.99"/>
+<polygon fill="black" stroke="black" points="4761.67,-2648.4 4754.79,-2640.35 4755.15,-2650.93 4761.67,-2648.4"/>
+</g>
+<!-- k_2aeba352->k_9d43c1d5 -->
+<g id="edge462" class="edge"><title>k_2aeba352:m_d21306a0:e->k_9d43c1d5</title>
+<path fill="none" stroke="black" d="M3382.13,-2451C3454.93,-2451 3465.81,-2412.62 3537.13,-2398 3688.43,-2366.98 4157.36,-2344.08 4327.04,-2336.61"/>
+<polygon fill="black" stroke="black" points="4327.23,-2340.11 4337.06,-2336.17 4326.92,-2333.11 4327.23,-2340.11"/>
+</g>
+<!-- k_2aeba352->k_9fad21d -->
+<g id="edge452" class="edge"><title>k_2aeba352:m_d21306a0:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M3382.13,-2451C3571.08,-2451 3535.46,-2263.54 3600.13,-2086 3641.12,-1973.48 3576.11,-1919.25 3643.13,-1820 3655.07,-1802.32 3673.69,-1788.72 3692.01,-1778.71"/>
+<polygon fill="black" stroke="black" points="3693.68,-1781.79 3700.95,-1774.08 3690.46,-1775.57 3693.68,-1781.79"/>
+</g>
+<!-- k_2aeba352->k_1a7eca26 -->
+<g id="edge456" class="edge"><title>k_2aeba352:m_d21306a0:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M3382.13,-2451C3388.15,-2451 3383.41,-2443.07 3381.13,-2437.5 3364.46,-2396.79 3338.7,-2400.34 3317.13,-2362 3289.57,-2313 3277.13,-2298.22 3277.13,-2242 3277.13,-2242 3277.13,-2242 3277.13,-2150 3277.13,-1899.81 3039.43,-1847.49 3118.13,-1610 3150.2,-1513.22 3174.88,-1488.89 3255.13,-1426 3279.62,-1406.81 3310.72,-1392.37 3338.39,-1382.12"/>
+<polygon fill="black" stroke="black" points="3339.79,-1385.34 3348.02,-1378.67 3337.43,-1378.75 3339.79,-1385.34"/>
+</g>
+<!-- k_2aeba352->k_1f909b4 -->
+<g id="edge458" class="edge"><title>k_2aeba352:m_d21306a0:e->k_1f909b4</title>
+<path fill="none" stroke="black" d="M3382.13,-2451C3388.15,-2451 3382.85,-2443.26 3381.13,-2437.5 3370.12,-2400.71 3352.39,-2398.04 3339.13,-2362 3320.35,-2310.96 3315.13,-2296.39 3315.13,-2242 3315.13,-2242 3315.13,-2242 3315.13,-2150 3315.13,-2026.93 3284.04,-1998.75 3275.13,-1876 3273.33,-1851.18 3272.45,-1844.74 3275.13,-1820 3276.42,-1808.09 3279.02,-1795.14 3281.63,-1784.03"/>
+<polygon fill="black" stroke="black" points="3285.1,-1784.58 3284.09,-1774.04 3278.3,-1782.91 3285.1,-1784.58"/>
+</g>
+<!-- k_2aeba352->k_5425561b -->
+<g id="edge460" class="edge"><title>k_2aeba352:m_d21306a0:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M3382.13,-2451C3427.52,-2451 3733.13,-2287.39 3733.13,-2242 3733.13,-2242 3733.13,-2242 3733.13,-1940 3733.13,-1885.61 3720.95,-1860.61 3757.13,-1820 3762.13,-1814.39 3844.26,-1789.04 3901.15,-1771.98"/>
+<polygon fill="black" stroke="black" points="3902.18,-1775.32 3910.76,-1769.11 3900.17,-1768.62 3902.18,-1775.32"/>
+</g>
+<!-- k_2aeba352->k_414f39df -->
+<g id="edge454" class="edge"><title>k_2aeba352:m_d21306a0:e->k_414f39df</title>
+<path fill="none" stroke="black" d="M3382.13,-2451C3475.91,-2451 3353.13,-2335.78 3353.13,-2242 3353.13,-2242 3353.13,-2242 3353.13,-2045 3353.13,-1944.95 3285.75,-1899.78 3346.13,-1820 3436.98,-1699.96 3525.37,-1761.57 3672.13,-1728 3761.88,-1707.47 3806.54,-1752.29 3876.13,-1692 3892.65,-1677.69 3907.69,-1621.88 3916.37,-1583.56"/>
+<polygon fill="black" stroke="black" points="3919.8,-1584.27 3918.54,-1573.75 3912.97,-1582.76 3919.8,-1584.27"/>
+</g>
+<!-- k_49441f7c->k_9d43c1d5 -->
+<g id="edge466" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_9d43c1d5</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5186.15,-3125 5180.28,-3117.41 5179.13,-3111.5 5175.24,-3091.57 5168.28,-3088.06 5165.13,-3068 5140.6,-2911.69 5132.73,-2866.87 5165.13,-2712 5179.43,-2643.62 5194.63,-2629.3 5228.13,-2568 5237.35,-2551.13 5246.56,-2550.4 5252.13,-2532 5269.39,-2475 5293.08,-2441.24 5252.13,-2398 5201.48,-2344.52 4663.45,-2369.09 4590.13,-2362 4543.51,-2357.49 4491.11,-2350.12 4451.51,-2344.07"/>
+<polygon fill="black" stroke="black" points="4451.88,-2340.58 4441.47,-2342.52 4450.82,-2347.5 4451.88,-2340.58"/>
+</g>
+<!-- k_49441f7c->k_429c8161 -->
+<g id="edge470" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_429c8161</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5186.15,-3125 5183.39,-3115.75 5179.13,-3111.5 5085.01,-3017.5 4698.06,-3133.22 4582.13,-3068 4472.44,-3006.29 4427.13,-2956.86 4427.13,-2831 4427.13,-2831 4427.13,-2831 4427.13,-2622 4427.13,-2518.7 4423.43,-2477.71 4489.13,-2398 4570.29,-2299.53 4678.96,-2378.5 4746.13,-2270 4790.31,-2198.64 4835.63,-1987.22 4604.13,-1820 4542.27,-1775.32 3307.35,-1787.57 3231.13,-1784 3110.82,-1778.37 2971.11,-1768.19 2888.36,-1761.78"/>
+<polygon fill="black" stroke="black" points="2888.55,-1758.28 2878.31,-1761 2888.01,-1765.26 2888.55,-1758.28"/>
+</g>
+<!-- k_49441f7c->k_9d34b335 -->
+<g id="edge480" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_9d34b335</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5203.1,-3125 5192.37,-2734.23 5198.13,-2712 5202.62,-2694.68 5208.59,-2692.22 5216.13,-2676 5245.5,-2612.81 5264.06,-2600.25 5278.13,-2532 5290.15,-2473.67 5316.31,-2443.7 5278.13,-2398 5226.88,-2336.65 4648.58,-2285.38 4570.13,-2270 4376.21,-2231.97 4326.65,-2226.69 4135.13,-2178 4126.62,-2175.84 4117.72,-2173.41 4108.93,-2170.91"/>
+<polygon fill="black" stroke="black" points="4109.67,-2167.48 4099.09,-2168.07 4107.73,-2174.2 4109.67,-2167.48"/>
+</g>
+<!-- k_49441f7c->k_bebd50c7 -->
+<g id="edge478" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_bebd50c7</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5181.21,-3125 5484.14,-3068.42 5485.13,-3068 5568.45,-3032.64 5604.22,-3027.41 5651.13,-2950 5779.48,-2738.21 5671.5,-2639.32 5727.13,-2398 5750.24,-2297.75 5773.93,-2277.75 5799.13,-2178 5813.84,-2119.76 5823.13,-2105.07 5823.13,-2045 5823.13,-2045 5823.13,-2045 5823.13,-1940 5823.13,-1688.2 5677.58,-1614.78 5445.13,-1518 5266.45,-1443.6 5192.35,-1549.98 5011.13,-1482 4971.85,-1467.26 4974.59,-1440.25 4935.13,-1426 4888.4,-1409.12 4192.28,-1377.43 3932.73,-1366.13"/>
+<polygon fill="black" stroke="black" points="3932.7,-1362.63 3922.56,-1365.69 3932.4,-1369.62 3932.7,-1362.63"/>
+</g>
+<!-- k_49441f7c->k_f516f38 -->
+<g id="edge484" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_f516f38</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5186.15,-3125 5183.26,-3115.87 5179.13,-3111.5 5128.5,-3057.87 4922.58,-3081.75 4850.13,-3068 4820.56,-3062.39 4788.36,-3054.74 4760.33,-3047.57"/>
+<polygon fill="black" stroke="black" points="4761.15,-3044.17 4750.6,-3045.06 4759.4,-3050.95 4761.15,-3044.17"/>
+</g>
+<!-- k_49441f7c->k_b3a78c62 -->
+<g id="edge468" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_b3a78c62</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5187.35,-3125 5260.74,-3079.59 5306.86,-3050.59"/>
+<polygon fill="black" stroke="black" points="5308.82,-3053.49 5315.42,-3045.2 5305.09,-3047.57 5308.82,-3053.49"/>
+</g>
+<!-- k_49441f7c->k_9085ee50 -->
+<g id="edge472" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5186.15,-3125 5181.88,-3116.85 5179.13,-3111.5 5165.37,-3084.69 5141.33,-3094.58 5127.13,-3068 5088.2,-2995.13 5080.83,-2736.68 5079.45,-2650.33"/>
+<polygon fill="black" stroke="black" points="5082.94,-2650.17 5079.3,-2640.22 5075.94,-2650.27 5082.94,-2650.17"/>
+</g>
+<!-- k_49441f7c->k_1a7eca26 -->
+<g id="edge474" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5206.89,-3125 5391.29,-3081.94 5414.13,-3068 5455.28,-3042.88 5450.57,-3019.61 5485.13,-2986 5503.24,-2968.38 5515.05,-2970.98 5529.13,-2950 5570.14,-2888.91 5785.13,-2157.46 5785.13,-2045 5785.13,-2045 5785.13,-2045 5785.13,-1940 5785.13,-1812.76 5513.81,-1571 5398.13,-1518 5179.86,-1417.99 5076.85,-1583.21 4859.13,-1482 4827.78,-1467.43 4836.72,-1440.06 4805.13,-1426 4697.06,-1377.91 3859.22,-1396.94 3741.13,-1390 3649.41,-1384.61 3543.77,-1375.22 3476.28,-1368.81"/>
+<polygon fill="black" stroke="black" points="3476.48,-1365.31 3466.19,-1367.85 3475.82,-1372.28 3476.48,-1365.31"/>
+</g>
+<!-- k_49441f7c->k_3b5a6e9c -->
+<g id="edge482" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5247.59,-3125 5189.41,-3029.32 5241.13,-2986 5293.36,-2942.26 5341.97,-2998.19 5390.13,-2950 5478.67,-2861.4 5440.73,-2800.31 5456.13,-2676 5492.85,-2379.59 5638.69,-2244.91 5462.13,-2004 5430.72,-1961.14 5395.49,-1992.08 5348.13,-1968 5310.73,-1948.98 5310.36,-1929.29 5272.13,-1912 5097.23,-1832.88 5040.86,-1841.69 4850.13,-1820 4515.15,-1781.9 2152.93,-1798.94 1816.13,-1784 1719.22,-1779.7 1608.08,-1770.54 1534.37,-1763.86"/>
+<polygon fill="black" stroke="black" points="1534.49,-1760.35 1524.22,-1762.93 1533.86,-1767.33 1534.49,-1760.35"/>
+</g>
+<!-- k_49441f7c->k_8e9f39bf -->
+<g id="edge464" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5186.15,-3125 5183.42,-3115.72 5179.13,-3111.5 5057.54,-2991.98 4542.91,-3178.57 4413.13,-3068 4291.35,-2964.25 4300.67,-2746.94 4310.07,-2659.56"/>
+<polygon fill="black" stroke="black" points="4313.56,-2659.9 4311.21,-2649.57 4306.6,-2659.11 4313.56,-2659.9"/>
+</g>
+<!-- k_49441f7c->k_b545a68a -->
+<g id="edge476" class="edge"><title>k_49441f7c:m_94bc12fa:e->k_b545a68a</title>
+<path fill="none" stroke="black" d="M5180.13,-3125C5217.23,-3125 5220.15,-3098.6 5241.13,-3068 5263.34,-3035.6 5244.17,-3011.41 5274.13,-2986 5330.38,-2938.29 5378.05,-2995.46 5436.13,-2950 5564.32,-2849.66 5599.13,-2784.79 5599.13,-2622 5599.13,-2622 5599.13,-2622 5599.13,-2465 5599.13,-2177.75 5744.79,-2087.5 5640.13,-1820 5615.42,-1756.83 5458.44,-1637.73 5377.8,-1579.61"/>
+<polygon fill="black" stroke="black" points="5379.47,-1576.5 5369.3,-1573.51 5375.38,-1582.18 5379.47,-1576.5"/>
+</g>
+<!-- k_8fd7bcd5->k_cd819caf -->
+<g id="edge488" class="edge"><title>k_8fd7bcd5:m_f8b7308a:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M3521.13,-3224C3914.49,-3224 3044.71,-3003.04 2826.13,-2676 2772.15,-2595.24 2769.13,-2562.14 2769.13,-2465 2769.13,-2465 2769.13,-2465 2769.13,-2334 2769.13,-2223.55 2781.57,-2196.39 2785.13,-2086 2786.3,-2049.57 2785.7,-2040.44 2785.13,-2004 2784.95,-1992.29 2784.58,-1979.38 2784.2,-1968.24"/>
+<polygon fill="black" stroke="black" points="2787.7,-1968.07 2783.85,-1958.2 2780.7,-1968.32 2787.7,-1968.07"/>
+</g>
+<!-- k_8fd7bcd5->k_fe8ab28b -->
+<g id="edge490" class="edge"><title>k_8fd7bcd5:m_f8b7308a:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M3521.13,-3224C3527.15,-3224 3524.39,-3214.74 3520.13,-3210.5 3478.36,-3168.94 3049.14,-3184.29 2991.13,-3174 2695.87,-3121.6 2631.71,-3067.51 2343.13,-2986 2285.02,-2969.59 2262.96,-2982.59 2212.13,-2950 2095.81,-2875.43 2101.81,-2817.11 2012.13,-2712 1892.29,-2571.54 1902.79,-2485.36 1740.13,-2398 1704.06,-2378.63 1451.04,-2352.89 1321.77,-2340.81"/>
+<polygon fill="black" stroke="black" points="1321.83,-2337.3 1311.55,-2339.86 1321.18,-2344.27 1321.83,-2337.3"/>
+</g>
+<!-- k_8fd7bcd5->k_9085ee50 -->
+<g id="edge492" class="edge"><title>k_8fd7bcd5:m_f8b7308a:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M3521.13,-3224C3690.57,-3224 4919.28,-3188.78 5038.13,-3068 5067.44,-3038.21 5076.44,-2743.91 5078.57,-2650.38"/>
+<polygon fill="black" stroke="black" points="5082.07,-2650.32 5078.79,-2640.24 5075.07,-2650.16 5082.07,-2650.32"/>
+</g>
+<!-- k_8fd7bcd5->k_20a2e5ab -->
+<g id="edge496" class="edge"><title>k_8fd7bcd5:m_f8b7308a:e->k_20a2e5ab</title>
+<path fill="none" stroke="black" d="M3521.13,-3224C3527.15,-3224 3524.47,-3214.67 3520.13,-3210.5 3475.45,-3167.63 2467.84,-3179.12 2406.13,-3174 2336.53,-3168.23 2257.08,-3156.95 2204.1,-3148.75"/>
+<polygon fill="black" stroke="black" points="2204.61,-3145.29 2194.19,-3147.21 2203.54,-3152.2 2204.61,-3145.29"/>
+</g>
+<!-- k_8fd7bcd5->k_8e9f39bf -->
+<g id="edge486" class="edge"><title>k_8fd7bcd5:m_f8b7308a:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M3521.13,-3224C3592.79,-3224 4108.89,-3219.65 4164.13,-3174 4245.26,-3106.94 4295.53,-2772.74 4310.45,-2659.55"/>
+<polygon fill="black" stroke="black" points="4313.92,-2659.98 4311.74,-2649.61 4306.98,-2659.08 4313.92,-2659.98"/>
+</g>
+<!-- k_9ea4242b -->
+<!-- k_8fd7bcd5->k_9ea4242b -->
+<g id="edge494" class="edge"><title>k_8fd7bcd5:m_f8b7308a:e->k_9ea4242b</title>
+<path fill="none" stroke="black" d="M3521.13,-3224C3891.74,-3224 4819.37,-3210.98 5188.13,-3174 5222.48,-3170.56 5259.77,-3164.77 5292.97,-3158.88"/>
+<polygon fill="black" stroke="black" points="5293.91,-3162.27 5303.13,-3157.05 5292.67,-3155.38 5293.91,-3162.27"/>
+</g>
+<!-- k_20a2e5ab->k_cd819caf -->
+<g id="edge510" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2227.66,-3125 2085.3,-2565.38 2082.13,-2532 2076.5,-2472.71 2064.52,-2454.89 2082.13,-2398 2111.44,-2303.32 2124.47,-2267.14 2208.13,-2214 2292.13,-2160.64 2332.28,-2200.87 2429.13,-2178 2462.55,-2170.11 2698.88,-2109.27 2724.13,-2086 2728.74,-2081.75 2757.02,-2008.67 2772.69,-1967.56"/>
+<polygon fill="black" stroke="black" points="2776.01,-1968.68 2776.29,-1958.09 2769.47,-1966.19 2776.01,-1968.68"/>
+</g>
+<!-- k_20a2e5ab->k_fe8ab28b -->
+<g id="edge512" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2200.15,-3125 2197.45,-3115.69 2193.13,-3111.5 2114.52,-3035.2 1286.97,-3144.06 1208.13,-3068 1132.08,-2994.63 1189.13,-2936.67 1189.13,-2831 1189.13,-2831 1189.13,-2831 1189.13,-2622 1189.13,-2524.96 1220.65,-2412.97 1236.82,-2361.94"/>
+<polygon fill="black" stroke="black" points="1240.19,-2362.87 1239.92,-2352.28 1233.53,-2360.73 1240.19,-2362.87"/>
+</g>
+<!-- k_20a2e5ab->k_8059d21c -->
+<g id="edge514" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2200.15,-3125 2197.49,-3115.64 2193.13,-3111.5 2114.55,-3036.88 330.242,-3132.45 243.13,-3068 3.62402,-2890.81 143.217,-2685.28 222.13,-2398 274.04,-2209.02 299.708,-2158.62 420.13,-2004 431.539,-1989.35 446.697,-1975.54 460.322,-1964.53"/>
+<polygon fill="black" stroke="black" points="462.864,-1966.98 468.56,-1958.05 458.536,-1961.48 462.864,-1966.98"/>
+</g>
+<!-- k_20a2e5ab->k_fe12a512 -->
+<g id="edge520" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_fe12a512</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2200.15,-3125 2196.62,-3116.4 2193.13,-3111.5 2188.71,-3105.28 2108.57,-3071.81 2052.42,-3048.91"/>
+<polygon fill="black" stroke="black" points="2053.52,-3045.58 2042.94,-3045.05 2050.88,-3052.06 2053.52,-3045.58"/>
+</g>
+<!-- k_20a2e5ab->k_49a1fb25 -->
+<g id="edge516" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_49a1fb25</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2200.15,-3125 2197.45,-3115.69 2193.13,-3111.5 2152.08,-3071.72 1222,-3073.72 1165.13,-3068 834.197,-3034.69 641.98,-3203.05 426.13,-2950 391.806,-2909.76 407.606,-2761.54 426.13,-2712 490.899,-2538.79 539.809,-2491.89 699.13,-2398 765.293,-2359.01 801.331,-2399.89 868.13,-2362 950.481,-2315.29 1018.34,-2222.48 1048.42,-2176.74"/>
+<polygon fill="black" stroke="black" points="1051.42,-2178.55 1053.92,-2168.25 1045.54,-2174.74 1051.42,-2178.55"/>
+</g>
+<!-- k_20a2e5ab->k_35e58938 -->
+<g id="edge522" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_35e58938</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2394.42,-3125 2626.29,-3076.19 2745.4,-3047.46"/>
+<polygon fill="black" stroke="black" points="2746.29,-3050.85 2755.18,-3045.09 2744.64,-3044.05 2746.29,-3050.85"/>
+</g>
+<!-- k_20a2e5ab->k_7824fe0f -->
+<g id="edge508" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_7824fe0f</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2200.15,-3125 2197.18,-3115.95 2193.13,-3111.5 2154.14,-3068.67 1992.66,-3080.62 1936.13,-3068 1745.22,-3025.4 1648.74,-3090 1512.13,-2950 1435.94,-2871.93 1483.77,-2816.4 1452.13,-2712 1445.74,-2690.91 1437.36,-2667.46 1430.77,-2649.78"/>
+<polygon fill="black" stroke="black" points="1433.93,-2648.23 1427.14,-2640.1 1427.38,-2650.7 1433.93,-2648.23"/>
+</g>
+<!-- k_20a2e5ab->k_acce46b4 -->
+<g id="edge504" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_acce46b4</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2265.03,-3125 2293.78,-3118.91 2343.13,-3068 2381.78,-3028.14 2373.59,-3004.51 2384.13,-2950 2416.36,-2783.21 2400.62,-2737.84 2397.13,-2568 2395.57,-2492.4 2404.64,-2472.21 2390.13,-2398 2387.74,-2385.76 2383.4,-2372.72 2379.13,-2361.63"/>
+<polygon fill="black" stroke="black" points="2382.27,-2360.04 2375.29,-2352.07 2375.77,-2362.65 2382.27,-2360.04"/>
+</g>
+<!-- k_20a2e5ab->k_4bb9a563 -->
+<g id="edge502" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_4bb9a563</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2218.04,-3125 2204.7,-2756.89 2200.34,-2650.49"/>
+<polygon fill="black" stroke="black" points="2203.83,-2650.05 2199.92,-2640.2 2196.84,-2650.34 2203.83,-2650.05"/>
+</g>
+<!-- k_20a2e5ab->k_a7a419fb -->
+<g id="edge498" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_a7a419fb</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2200.15,-3125 2197.49,-3115.65 2193.13,-3111.5 2123.35,-3045.05 552.708,-3091 459.13,-3068 343.703,-3039.63 281.957,-3050.9 219.13,-2950 185.831,-2896.52 233.817,-2407.8 241.13,-2398 315.59,-2298.18 688.321,-2200.57 838.889,-2164.56"/>
+<polygon fill="black" stroke="black" points="839.991,-2167.89 848.909,-2162.17 838.371,-2161.08 839.991,-2167.89"/>
+</g>
+<!-- k_20a2e5ab->k_8d4befab -->
+<g id="edge506" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_8d4befab</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2232.52,-3125 2259,-3083.69 2272.85,-3054.71"/>
+<polygon fill="black" stroke="black" points="2276.12,-3055.99 2277.06,-3045.43 2269.74,-3053.09 2276.12,-3055.99"/>
+</g>
+<!-- k_20a2e5ab->k_9085ee50 -->
+<g id="edge518" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2272.31,-3125 4950.15,-3120.45 5008.13,-3068 5067.22,-3014.54 5034.45,-2789.92 5051.13,-2712 5055.68,-2690.73 5063.06,-2667.29 5069.09,-2649.66"/>
+<polygon fill="black" stroke="black" points="5072.47,-2650.61 5072.46,-2640.01 5065.86,-2648.3 5072.47,-2650.61"/>
+</g>
+<!-- k_20a2e5ab->k_8e9f39bf -->
+<g id="edge500" class="edge"><title>k_20a2e5ab:m_6bc89f50:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M2194.13,-3125C2285.74,-3125 3759.94,-3108.47 3842.13,-3068 4026.23,-2977.35 3975.69,-2839.94 4136.13,-2712 4165.58,-2688.51 4202.16,-2668.79 4234.55,-2653.85"/>
+<polygon fill="black" stroke="black" points="4236.34,-2656.88 4244.01,-2649.57 4233.46,-2650.5 4236.34,-2656.88"/>
+</g>
+<!-- k_f37daf18->k_9d43c1d5 -->
+<g id="edge526" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_9d43c1d5</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5609.47,-3224 5565.86,-2992.31 5565.13,-2986 5531.57,-2697.14 5533.6,-2536.92 5278.13,-2398 5205.92,-2358.74 4641.22,-2340.56 4451.25,-2335.52"/>
+<polygon fill="black" stroke="black" points="4451.24,-2332.02 4441.15,-2335.25 4451.05,-2339.01 4451.24,-2332.02"/>
+</g>
+<!-- k_f37daf18->k_b3a78c62 -->
+<g id="edge530" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_b3a78c62</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5554.15,-3224 5551.27,-3214.87 5547.13,-3210.5 5458.95,-3117.52 5345.81,-3270.17 5261.13,-3174 5240.57,-3150.65 5248.69,-3132.51 5261.13,-3104 5270.45,-3082.63 5288.95,-3064.54 5306.12,-3051.27"/>
+<polygon fill="black" stroke="black" points="5308.44,-3053.91 5314.4,-3045.15 5304.28,-3048.28 5308.44,-3053.91"/>
+</g>
+<!-- k_f37daf18->k_9085ee50 -->
+<g id="edge532" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5558.17,-3224 5548.85,-3221.74 5533.13,-3174 5500.82,-3075.88 5495.13,-3050.47 5471.13,-2950 5446.05,-2845.05 5497.23,-2790.44 5423.13,-2712 5381.76,-2668.21 5203.56,-2638.88 5121.18,-2627.42"/>
+<polygon fill="black" stroke="black" points="5121.54,-2623.93 5111.16,-2626.04 5120.59,-2630.87 5121.54,-2623.93"/>
+</g>
+<!-- k_f37daf18->k_5425561b -->
+<g id="edge544" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5666.95,-3224 5607.41,-3085.13 5613.13,-2950 5623.8,-2697.86 5690.35,-1985.84 5500.13,-1820 5437.63,-1765.51 4088.36,-1804.92 4008.13,-1784 4003.04,-1782.67 3997.89,-1780.78 3992.9,-1778.59"/>
+<polygon fill="black" stroke="black" points="3994.11,-1775.28 3983.58,-1774.09 3991.07,-1781.59 3994.11,-1775.28"/>
+</g>
+<!-- k_f37daf18->k_20a2e5ab -->
+<g id="edge540" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_20a2e5ab</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C6961.94,-3224 2763.25,-3149.82 2204.74,-3140.06"/>
+<polygon fill="black" stroke="black" points="2204.54,-3136.55 2194.48,-3139.88 2204.42,-3143.55 2204.54,-3136.55"/>
+</g>
+<!-- k_f37daf18->k_8e9f39bf -->
+<g id="edge542" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5554.15,-3224 5551.23,-3214.9 5547.13,-3210.5 5469.63,-3127.43 5368.51,-3259.88 5294.13,-3174 5273.76,-3150.48 5275.56,-3128.96 5294.13,-3104 5327.37,-3059.33 5380.89,-3112.67 5414.13,-3068 5427.35,-3050.24 5425.67,-2746.2 5390.13,-2712 5360.59,-2683.58 4693.9,-2680.24 4653.13,-2676 4568.38,-2667.19 4472.53,-2651.31 4404.6,-2639.04"/>
+<polygon fill="black" stroke="black" points="4404.83,-2635.52 4394.37,-2637.18 4403.58,-2642.41 4404.83,-2635.52"/>
+</g>
+<!-- k_f37daf18->k_9ea4242b -->
+<g id="edge538" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_9ea4242b</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5594.53,-3224 5532.51,-3194.64 5473.48,-3170.43"/>
+<polygon fill="black" stroke="black" points="5474.63,-3167.12 5464.05,-3166.6 5472,-3173.61 5474.63,-3167.12"/>
+</g>
+<!-- k_7ad9e7f3 -->
+<!-- k_f37daf18->k_7ad9e7f3 -->
+<g id="edge536" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_7ad9e7f3</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5661.3,-3224 5788.28,-3193.85 5872.49,-3169.46"/>
+<polygon fill="black" stroke="black" points="5873.67,-3172.77 5882.29,-3166.6 5871.71,-3166.05 5873.67,-3172.77"/>
+</g>
+<!-- k_5ed380ef -->
+<g id="node175" class="node"><title>k_5ed380ef</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6311.13,-3047.5 6149.13,-3047.5 6149.13,-3006.5 6311.13,-3006.5 6311.13,-3047.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6150.13,-3007 6150.13,-3046 6310.13,-3046 6310.13,-3007 6150.13,-3007"/>
+<text text-anchor="start" x="6155.13" y="-3033.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=use_socketio)</text>
+<text text-anchor="start" x="6155.13" y="-3018.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Boolean</text>
+</g>
+<!-- k_f37daf18->k_5ed380ef -->
+<g id="edge528" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_5ed380ef</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5665.55,-3224 5967.17,-3222.44 6074.13,-3174 6132.26,-3147.68 6182.5,-3090.67 6209.35,-3055.89"/>
+<polygon fill="black" stroke="black" points="6212.41,-3057.64 6215.66,-3047.56 6206.83,-3053.41 6212.41,-3057.64"/>
+</g>
+<!-- k_a0e8f908 -->
+<g id="node177" class="node"><title>k_a0e8f908</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6071.13,-3045 5947.13,-3045 5947.13,-3009 6071.13,-3009 6071.13,-3045"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5948.13,-3014 5948.13,-3039 6071.13,-3039 6071.13,-3014 5948.13,-3014"/>
+<text text-anchor="start" x="5953.13" y="-3023.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SessionManager</text>
+</g>
+<!-- k_f37daf18->k_a0e8f908 -->
+<g id="edge534" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_a0e8f908</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5696.7,-3224 5728.4,-3172.7 5860.13,-3104 5895.19,-3085.71 5934.98,-3065.16 5964.62,-3049.89"/>
+<polygon fill="black" stroke="black" points="5966.58,-3052.82 5973.87,-3045.13 5963.38,-3046.6 5966.58,-3052.82"/>
+</g>
+<!-- k_6990a9aa -->
+<!-- k_f37daf18->k_6990a9aa -->
+<g id="edge524" class="edge"><title>k_f37daf18:m_ecb87f6:e->k_6990a9aa</title>
+<path fill="none" stroke="black" d="M5548.13,-3224C5573.81,-3224 5556.79,-2843.28 5461.13,-2712 5361.59,-2575.4 5258.07,-2637.64 5126.13,-2532 5114.73,-2522.87 5103.8,-2511.29 5094.57,-2500.34"/>
+<polygon fill="black" stroke="black" points="5097.21,-2498.04 5088.17,-2492.53 5091.8,-2502.48 5097.21,-2498.04"/>
+</g>
+<!-- k_f76f7877->k_cd819caf -->
+<g id="edge548" class="edge"><title>k_f76f7877:m_b56ae5c8:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M3841.13,-2817C3847.15,-2817 3844.26,-2807.87 3840.13,-2803.5 3802.6,-2763.8 2903.07,-2715.31 2865.13,-2676 2799.72,-2608.22 2845.13,-2559.2 2845.13,-2465 2845.13,-2465 2845.13,-2465 2845.13,-2334 2845.13,-2187.27 2886.31,-2141.52 2835.13,-2004 2829.83,-1989.75 2819.97,-1976.31 2810.25,-1965.45"/>
+<polygon fill="black" stroke="black" points="2812.67,-1962.92 2803.27,-1958.03 2807.58,-1967.72 2812.67,-1962.92"/>
+</g>
+<!-- k_f76f7877->k_e829e8e2 -->
+<g id="edge550" class="edge"><title>k_f76f7877:m_b56ae5c8:e->k_e829e8e2</title>
+<path fill="none" stroke="black" d="M3841.13,-2817C3929.33,-2817 3780.64,-2698.7 3710.58,-2646.39"/>
+<polygon fill="black" stroke="black" points="3712.56,-2643.5 3702.44,-2640.35 3708.38,-2649.12 3712.56,-2643.5"/>
+</g>
+<!-- k_f76f7877->k_9085ee50 -->
+<g id="edge552" class="edge"><title>k_f76f7877:m_b56ae5c8:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M3841.13,-2817C4136.84,-2817 4204.98,-2750.78 4498.13,-2712 4650.09,-2691.9 4689.9,-2701 4841.13,-2676 4910.45,-2664.54 4989.83,-2645.27 5037.15,-2633.11"/>
+<polygon fill="black" stroke="black" points="5038.23,-2636.45 5047.03,-2630.56 5036.47,-2629.67 5038.23,-2636.45"/>
+</g>
+<!-- k_f76f7877->k_5425561b -->
+<g id="edge554" class="edge"><title>k_f76f7877:m_b56ae5c8:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M3841.13,-2817C3919.67,-2817 3809.13,-2543.54 3809.13,-2465 3809.13,-2465 3809.13,-2465 3809.13,-2334 3809.13,-2204.45 3771.13,-2174.55 3771.13,-2045 3771.13,-2045 3771.13,-2045 3771.13,-1940 3771.13,-1863.77 3851.07,-1808.09 3905.57,-1778.99"/>
+<polygon fill="black" stroke="black" points="3907.5,-1781.93 3914.75,-1774.21 3904.26,-1775.72 3907.5,-1781.93"/>
+</g>
+<!-- k_f76f7877->k_8e9f39bf -->
+<g id="edge546" class="edge"><title>k_f76f7877:m_b56ae5c8:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M3841.13,-2817C3948.27,-2817 3959.19,-2753.11 4058.13,-2712 4113.18,-2689.13 4176.35,-2666.95 4226.28,-2650.34"/>
+<polygon fill="black" stroke="black" points="4227.7,-2653.56 4236.09,-2647.09 4225.5,-2646.91 4227.7,-2653.56"/>
+</g>
+<!-- k_f76f7877->k_b0057a76 -->
+<g id="edge556" class="edge"><title>k_f76f7877:m_b56ae5c8:e->k_b0057a76</title>
+<path fill="none" stroke="black" d="M3841.13,-2817C3997.78,-2817 3859.13,-2621.65 3859.13,-2465 3859.13,-2465 3859.13,-2465 3859.13,-2334 3859.13,-2283.45 3863.7,-2225.25 3867.19,-2188.07"/>
+<polygon fill="black" stroke="black" points="3870.72,-2188 3868.19,-2177.71 3863.75,-2187.32 3870.72,-2188"/>
+</g>
+<!-- k_cd183063->k_fd02c51c -->
+<g id="edge558" class="edge"><title>k_cd183063:m_20e4f4c3:e->k_fd02c51c</title>
+<path fill="none" stroke="black" d="M5817.13,-2817C5829.56,-2817 5937.13,-2370.68 5937.13,-2242 5937.13,-2242 5937.13,-2242 5937.13,-1362 5937.13,-1306.85 5937.13,-1242.4 5937.13,-1206.28"/>
+<polygon fill="black" stroke="black" points="5940.63,-1206.02 5937.13,-1196.02 5933.63,-1206.02 5940.63,-1206.02"/>
+</g>
+<!-- k_cd183063->k_bebd50c7 -->
+<g id="edge564" class="edge"><title>k_cd183063:m_20e4f4c3:e->k_bebd50c7</title>
+<path fill="none" stroke="black" d="M5817.13,-2817C5863.84,-2817 5846.09,-2444.44 5851.13,-2398 5868.21,-2240.59 5899.13,-2203.33 5899.13,-2045 5899.13,-2045 5899.13,-2045 5899.13,-1848 5899.13,-1761.37 5705.56,-1528.63 5686.13,-1518 5562.72,-1450.49 5178.48,-1547.76 5054.13,-1482 5026.39,-1467.33 5038.89,-1440.63 5011.13,-1426 4963.74,-1401.01 4204.84,-1374 3932.48,-1365.06"/>
+<polygon fill="black" stroke="black" points="3932.33,-1361.55 3922.22,-1364.72 3932.1,-1368.55 3932.33,-1361.55"/>
+</g>
+<!-- k_cd183063->k_6d495d8 -->
+<g id="edge562" class="edge"><title>k_cd183063:m_20e4f4c3:e->k_6d495d8</title>
+<path fill="none" stroke="black" d="M5817.13,-2817C5823.15,-2817 5817.28,-2809.41 5816.13,-2803.5 5804.74,-2745.08 5789.34,-2733.8 5775.13,-2676 5745.2,-2554.24 5750.27,-2521.23 5727.13,-2398 5669.28,-2089.97 5760.95,-1911.87 5507.13,-1728 5314.16,-1588.2 5220.5,-1640.16 4984.13,-1610 4486.13,-1546.47 4356.4,-1601.58 3855.13,-1574 3768.06,-1569.21 3669.27,-1561.3 3597.55,-1555.1"/>
+<polygon fill="black" stroke="black" points="3597.43,-1551.58 3587.17,-1554.2 3596.83,-1558.55 3597.43,-1551.58"/>
+</g>
+<!-- k_cd183063->k_9085ee50 -->
+<g id="edge566" class="edge"><title>k_cd183063:m_20e4f4c3:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M5817.13,-2817C6115.76,-2817 5316.83,-2665.91 5121.19,-2629.72"/>
+<polygon fill="black" stroke="black" points="5121.75,-2626.26 5111.28,-2627.89 5120.48,-2633.15 5121.75,-2626.26"/>
+</g>
+<!-- k_cd183063->k_8e9f39bf -->
+<g id="edge560" class="edge"><title>k_cd183063:m_20e4f4c3:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M5817.13,-2817C5998.35,-2817 5602.64,-2736.88 5423.13,-2712 5083.78,-2664.96 4993.93,-2711.08 4653.13,-2676 4568.37,-2667.28 4472.52,-2651.38 4404.6,-2639.09"/>
+<polygon fill="black" stroke="black" points="4404.83,-2635.57 4394.36,-2637.23 4403.57,-2642.46 4404.83,-2635.57"/>
+</g>
+<!-- k_a421d634->k_8059d21c -->
+<g id="edge572" class="edge"><title>k_a421d634:m_19f5554c:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M2222.13,-3224C2228.15,-3224 2225.39,-3214.74 2221.13,-3210.5 2139.61,-3129.39 269.092,-3089.53 156.13,-3068 97.0338,-3056.74 27.1297,-3087.16 27.1297,-3027 27.1297,-3027 27.1297,-3027 27.1297,-2465 27.1297,-2321.08 -139.564,-2404.48 356.13,-2004 378.079,-1986.27 405.747,-1972.19 430.535,-1961.8"/>
+<polygon fill="black" stroke="black" points="431.933,-1965.01 439.877,-1958 429.295,-1958.53 431.933,-1965.01"/>
+</g>
+<!-- k_a421d634->k_20a2e5ab -->
+<g id="edge568" class="edge"><title>k_a421d634:m_19f5554c:e->k_20a2e5ab</title>
+<path fill="none" stroke="black" d="M2222.13,-3224C2251.27,-3224 2222.09,-3196.54 2191.47,-3172.84"/>
+<polygon fill="black" stroke="black" points="2193.35,-3169.87 2183.27,-3166.6 2189.11,-3175.44 2193.35,-3169.87"/>
+</g>
+<!-- k_a421d634->k_8e9f39bf -->
+<g id="edge570" class="edge"><title>k_a421d634:m_19f5554c:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M2222.13,-3224C2598.62,-3224 3557.29,-3201.98 3909.13,-3068 3991.7,-3036.56 4006.4,-3012.23 4069.13,-2950 4118.9,-2900.62 4237.74,-2733.02 4289.88,-2658.38"/>
+<polygon fill="black" stroke="black" points="4293.05,-2659.95 4295.9,-2649.75 4287.31,-2655.95 4293.05,-2659.95"/>
+</g>
+<!-- k_3309f8a4->k_d999378f -->
+<g id="edge574" class="edge"><title>k_3309f8a4:m_29212e6a:e->k_d999378f</title>
+<path fill="none" stroke="black" d="M4979.13,-2817C5034.45,-2817 5002.99,-2386.14 4993.53,-2270.35"/>
+<polygon fill="black" stroke="black" points="4997,-2269.84 4992.69,-2260.16 4990.03,-2270.41 4997,-2269.84"/>
+</g>
+<!-- k_3309f8a4->k_9085ee50 -->
+<g id="edge578" class="edge"><title>k_3309f8a4:m_29212e6a:e->k_9085ee50</title>
+<path fill="none" stroke="black" d="M4979.13,-2817C5028.18,-2817 4990.79,-2755.67 5013.13,-2712 5024.96,-2688.88 5042.5,-2665.29 5056.53,-2648.07"/>
+<polygon fill="black" stroke="black" points="5059.4,-2650.08 5063.09,-2640.15 5054.01,-2645.62 5059.4,-2650.08"/>
+</g>
+<!-- k_3309f8a4->k_8e9f39bf -->
+<g id="edge576" class="edge"><title>k_3309f8a4:m_29212e6a:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M4979.13,-2817C5088.68,-2817 4860.91,-2743.97 4756.13,-2712 4636.55,-2675.51 4494.17,-2649.48 4404.21,-2635.08"/>
+<polygon fill="black" stroke="black" points="4404.75,-2631.62 4394.32,-2633.51 4403.65,-2638.54 4404.75,-2631.62"/>
+</g>
+<!-- k_a9deb790->k_cd819caf -->
+<g id="edge582" class="edge"><title>k_a9deb790:m_e2253da6:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M5382.13,-2817C5571.72,-2817 5426.36,-2541.21 5302.13,-2398 5188.11,-2266.55 5088.66,-2346 4932.13,-2270 4823.12,-2217.07 4811.36,-2176.52 4703.13,-2122 4569.98,-2054.93 4535.25,-2033.57 4389.13,-2004 4237.17,-1973.25 3138.57,-1947.65 2851.57,-1941.44"/>
+<polygon fill="black" stroke="black" points="2851.38,-1937.94 2841.31,-1941.22 2851.23,-1944.93 2851.38,-1937.94"/>
+</g>
+<!-- k_a9deb790->k_e829e8e2 -->
+<g id="edge580" class="edge"><title>k_a9deb790:m_e2253da6:e->k_e829e8e2</title>
+<path fill="none" stroke="black" d="M5382.13,-2817C5388.15,-2817 5385.04,-2808.07 5381.13,-2803.5 5264.5,-2667.26 5165.76,-2736.67 4988.13,-2712 4652.75,-2665.42 4564.84,-2700.55 4227.13,-2676 4067.75,-2664.41 3882.96,-2645.05 3773.28,-2632.93"/>
+<polygon fill="black" stroke="black" points="3773.55,-2629.44 3763.23,-2631.81 3772.78,-2636.39 3773.55,-2629.44"/>
+</g>
+<!-- k_8d9226ee->k_fe8ab28b -->
+<g id="edge586" class="edge"><title>k_8d9226ee:m_3ada629b:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M1545.13,-2451C1551.15,-2451 1547.8,-2442.27 1544.13,-2437.5 1516.53,-2401.58 1400.16,-2368.87 1321.28,-2350.21"/>
+<polygon fill="black" stroke="black" points="1321.91,-2346.76 1311.37,-2347.9 1320.31,-2353.58 1321.91,-2346.76"/>
+</g>
+<!-- k_8d9226ee->k_8059d21c -->
+<g id="edge584" class="edge"><title>k_8d9226ee:m_3ada629b:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M1545.13,-2451C1551.15,-2451 1545.77,-2443.29 1544.13,-2437.5 1533.86,-2401.15 1517.78,-2397.59 1505.13,-2362 1467.95,-2257.43 1526.36,-2186.63 1436.13,-2122 1334.39,-2049.13 995.95,-2114.65 874.13,-2086 782.61,-2064.47 766.935,-2037.61 679.13,-2004 639.673,-1988.9 594.913,-1973.37 559.304,-1961.39"/>
+<polygon fill="black" stroke="black" points="560.109,-1957.97 549.515,-1958.11 557.884,-1964.61 560.109,-1957.97"/>
+</g>
+<!-- k_8d9226ee->k_3b5a6e9c -->
+<g id="edge588" class="edge"><title>k_8d9226ee:m_3ada629b:e->k_3b5a6e9c</title>
+<path fill="none" stroke="black" d="M1545.13,-2451C1551.15,-2451 1544.59,-2443.5 1544.13,-2437.5 1541.55,-2403.94 1539.46,-2395.63 1538.13,-2362 1537.14,-2337.13 1537.45,-2330.88 1538.13,-2306 1539.69,-2249.05 1543.57,-2234.95 1545.13,-2178 1545.81,-2153.12 1548.22,-2146.7 1545.13,-2122 1529.8,-1999.43 1486.66,-1859.02 1464.95,-1793.43"/>
+<polygon fill="black" stroke="black" points="1468.14,-1791.93 1461.65,-1783.55 1461.5,-1794.15 1468.14,-1791.93"/>
+</g>
+<!-- k_63207c2c->k_acce46b4 -->
+<g id="edge592" class="edge"><title>k_63207c2c:m_63a0fdbf:e->k_acce46b4</title>
+<path fill="none" stroke="black" d="M2253.13,-2451C2303.03,-2451 2338.19,-2395.73 2355.3,-2361.16"/>
+<polygon fill="black" stroke="black" points="2358.51,-2362.56 2359.64,-2352.02 2352.19,-2359.55 2358.51,-2362.56"/>
+</g>
+<!-- k_63207c2c->k_a7a419fb -->
+<g id="edge590" class="edge"><title>k_63207c2c:m_63a0fdbf:e->k_a7a419fb</title>
+<path fill="none" stroke="black" d="M2253.13,-2451C2259.15,-2451 2256.21,-2441.93 2252.13,-2437.5 2175.62,-2354.44 2112.97,-2413.64 2001.13,-2398 1870.76,-2379.76 1830.18,-2408.79 1707.13,-2362 1666.22,-2346.44 1667.26,-2320.97 1626.13,-2306 1464.64,-2247.22 1409.32,-2305.31 1241.13,-2270 1177.65,-2256.67 1024.54,-2201.6 964.13,-2178 959.437,-2176.17 954.587,-2174.17 949.762,-2172.11"/>
+<polygon fill="black" stroke="black" points="951.128,-2168.88 940.562,-2168.1 948.333,-2175.3 951.128,-2168.88"/>
+</g>
+<!-- k_a0b29af9->k_cd819caf -->
+<g id="edge594" class="edge"><title>k_a0b29af9:m_2d8dc501:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M1043.13,-2031C1694.77,-2031 2481.82,-1966.56 2714.96,-1946.13"/>
+<polygon fill="black" stroke="black" points="2715.33,-1949.61 2724.98,-1945.25 2714.72,-1942.64 2715.33,-1949.61"/>
+</g>
+<!-- k_a0b29af9->k_fe8ab28b -->
+<g id="edge598" class="edge"><title>k_a0b29af9:m_2d8dc501:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M1042.13,-2031C1060.57,-2031 1053.51,-2057.99 1042.13,-2072.5 985.075,-2145.22 897.184,-2049.28 840.13,-2122 824.767,-2141.58 824.931,-2158.29 840.13,-2178 878.575,-2227.85 917.724,-2193.16 977.13,-2214 1058.76,-2242.64 1150.1,-2285.69 1202.29,-2311.4"/>
+<polygon fill="black" stroke="black" points="1201.06,-2314.69 1211.57,-2315.99 1204.16,-2308.42 1201.06,-2314.69"/>
+</g>
+<!-- k_a0b29af9->k_8059d21c -->
+<g id="edge596" class="edge"><title>k_a0b29af9:m_2d8dc501:e->k_8059d21c</title>
+<path fill="none" stroke="black" d="M1043.13,-2031C1049.15,-2031 1046.24,-2021.89 1042.13,-2017.5 1010.74,-1983.95 720.302,-1957.27 575.466,-1945.92"/>
+<polygon fill="black" stroke="black" points="575.537,-1942.42 565.296,-1945.13 574.994,-1949.4 575.537,-1942.42"/>
+</g>
+<!-- k_a0b29af9->k_54c1d756 -->
+<g id="edge600" class="edge"><title>k_a0b29af9:m_2d8dc501:e->k_54c1d756</title>
+<path fill="none" stroke="black" d="M1043.13,-2031C1077.91,-2031 1033.68,-1991.36 999.576,-1964.41"/>
+<polygon fill="black" stroke="black" points="1001.65,-1961.59 991.616,-1958.2 997.347,-1967.11 1001.65,-1961.59"/>
+</g>
+<!-- k_7e776058->k_cd819caf -->
+<g id="edge602" class="edge"><title>k_7e776058:m_fc5df405:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2386.83,-2817 2339.03,-2408.1 2333.13,-2398 2319.14,-2374.04 2300.74,-2382.58 2282.13,-2362 2235.36,-2310.29 2182.98,-2265.36 2230.13,-2214 2293.63,-2144.83 2564.48,-2214.17 2651.13,-2178 2709.32,-2153.71 2728.12,-2140.9 2759.13,-2086 2779.92,-2049.18 2783.9,-1999.36 2784.09,-1968.47"/>
+<polygon fill="black" stroke="black" points="2787.59,-1968.36 2784.02,-1958.38 2780.59,-1968.41 2787.59,-1968.36"/>
+</g>
+<!-- k_7e776058->k_fe8ab28b -->
+<g id="edge606" class="edge"><title>k_7e776058:m_fc5df405:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2381.15,-2817 2377.91,-2808.18 2374.13,-2803.5 2315.92,-2731.4 1664.65,-2587.81 1574.13,-2568 1519.94,-2556.14 1369.94,-2567.27 1327.13,-2532 1278.42,-2491.87 1305.45,-2455.81 1280.13,-2398 1274.69,-2385.57 1267.8,-2372.26 1261.65,-2361.02"/>
+<polygon fill="black" stroke="black" points="1264.62,-2359.16 1256.7,-2352.12 1258.5,-2362.56 1264.62,-2359.16"/>
+</g>
+<!-- k_7e776058->k_e829e8e2 -->
+<g id="edge604" class="edge"><title>k_7e776058:m_fc5df405:e->k_e829e8e2</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2426.26,-2817 2380.02,-2741 2422.13,-2712 2480.7,-2671.66 2990.2,-2681.11 3061.13,-2676 3245.21,-2662.75 3459.86,-2642.94 3581,-2631.36"/>
+<polygon fill="black" stroke="black" points="3581.37,-2634.84 3590.99,-2630.4 3580.7,-2627.87 3581.37,-2634.84"/>
+</g>
+<!-- k_7e776058->k_49a1fb25 -->
+<g id="edge608" class="edge"><title>k_7e776058:m_fc5df405:e->k_49a1fb25</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2381.15,-2817 2375.82,-2809.27 2374.13,-2803.5 2356.01,-2741.67 2325.69,-2737.06 2305.13,-2676 2265.24,-2557.51 2350.38,-2486.56 2262.13,-2398 2250.6,-2386.43 1697.35,-2308 1681.13,-2306 1500.9,-2283.79 1447.36,-2324.48 1274.13,-2270 1256.08,-2264.32 1159.15,-2206.73 1103.85,-2173.44"/>
+<polygon fill="black" stroke="black" points="1105.39,-2170.29 1095.02,-2168.12 1101.78,-2176.28 1105.39,-2170.29"/>
+</g>
+<!-- k_7e776058->k_acce46b4 -->
+<g id="edge610" class="edge"><title>k_7e776058:m_fc5df405:e->k_acce46b4</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2398.04,-2817 2376.01,-2465.09 2369.07,-2362.03"/>
+<polygon fill="black" stroke="black" points="2372.56,-2361.79 2368.39,-2352.05 2365.58,-2362.27 2372.56,-2361.79"/>
+</g>
+<!-- k_7e776058->k_9a759b9f -->
+<g id="edge612" class="edge"><title>k_7e776058:m_fc5df405:e->k_9a759b9f</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2381.15,-2817 2374.91,-2809.47 2374.13,-2803.5 2372.63,-2792.13 2303.91,-2407.25 2297.13,-2398 2277.14,-2370.74 2256.06,-2383.69 2230.13,-2362 2110.01,-2261.54 2083.98,-2224.61 2011.13,-2086 1982.63,-2031.77 1935.21,-1853.6 1917.29,-1784.11"/>
+<polygon fill="black" stroke="black" points="1920.64,-1783.11 1914.77,-1774.29 1913.86,-1784.85 1920.64,-1783.11"/>
+</g>
+<!-- k_7e776058->k_9fad21d -->
+<g id="edge614" class="edge"><title>k_7e776058:m_fc5df405:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M2375.13,-2817C2426.4,-2817 2447.84,-2413.09 2452.13,-2362 2457.64,-2296.45 2457.47,-2279.56 2452.13,-2214 2444.51,-2120.51 2377.88,-2081.22 2431.13,-2004 2447.46,-1980.32 2645.82,-1921.03 2673.13,-1912 2816.07,-1864.76 2851.02,-1846.97 2999.13,-1820 3063.96,-1808.2 3492.25,-1775.26 3670.99,-1761.82"/>
+<polygon fill="black" stroke="black" points="3671.4,-1765.3 3681.11,-1761.06 3670.88,-1758.32 3671.4,-1765.3"/>
+</g>
+<!-- k_869b8de5->k_bebd50c7 -->
+<g id="edge620" class="edge"><title>k_869b8de5:m_1b1ed846:e->k_bebd50c7</title>
+<path fill="none" stroke="black" d="M3867.13,-1637C3873.15,-1637 3867.01,-1629.45 3866.13,-1623.5 3862.84,-1601.2 3858.59,-1596.27 3855.13,-1574 3844.98,-1508.64 3839.74,-1431.03 3837.5,-1390.26"/>
+<polygon fill="black" stroke="black" points="3840.99,-1390.05 3836.97,-1380.25 3834,-1390.42 3840.99,-1390.05"/>
+</g>
+<!-- k_869b8de5->k_6d495d8 -->
+<g id="edge616" class="edge"><title>k_869b8de5:m_1b1ed846:e->k_6d495d8</title>
+<path fill="none" stroke="black" d="M3867.13,-1637C3873.15,-1637 3870.09,-1628.03 3866.13,-1623.5 3831.42,-1583.83 3694.34,-1563.4 3597.43,-1553.7"/>
+<polygon fill="black" stroke="black" points="3597.6,-1550.2 3587.3,-1552.71 3596.91,-1557.17 3597.6,-1550.2"/>
+</g>
+<!-- k_869b8de5->k_8e9f39bf -->
+<g id="edge618" class="edge"><title>k_869b8de5:m_1b1ed846:e->k_8e9f39bf</title>
+<path fill="none" stroke="black" d="M3866.13,-1637C3898.57,-1637 3884.75,-1678.23 3914.13,-1692 3992.07,-1728.53 5392.37,-1678.98 5463.13,-1728 5571.41,-1803.01 5547.01,-1874.5 5571.13,-2004 5586.58,-2086.96 5566.35,-2132.74 5495.13,-2178 5218.19,-2354 5102.51,-2300.84 4780.13,-2362 4716.11,-2374.14 4543,-2361.34 4489.13,-2398 4433.06,-2436.16 4458.57,-2479.1 4416.13,-2532 4399.53,-2552.69 4377.74,-2572.44 4358.56,-2588.05"/>
+<polygon fill="black" stroke="black" points="4356.15,-2585.5 4350.53,-2594.48 4360.52,-2590.97 4356.15,-2585.5"/>
+</g>
+<!-- k_4425af11->k_414f39df -->
+<g id="edge630" class="edge"><title>k_4425af11:m_f42f63ac:e->k_414f39df</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4119.15,-1637 4115.66,-1628.37 4112.13,-1623.5 4084.77,-1585.73 4035.58,-1566.3 3994.38,-1556.35"/>
+<polygon fill="black" stroke="black" points="3994.9,-1552.87 3984.37,-1554.07 3993.35,-1559.7 3994.9,-1552.87"/>
+</g>
+<!-- k_4425af11->k_832e9dc1 -->
+<g id="edge634" class="edge"><title>k_4425af11:m_f42f63ac:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4125.33,-1637 4108.93,-1618.02 4118.13,-1610 4184.39,-1552.28 4835.97,-1624.14 4908.13,-1574 4955.72,-1540.93 4959.13,-1511.95 4959.13,-1454 4959.13,-1454 4959.13,-1454 4959.13,-1362 4959.13,-1308 4947.52,-1286.49 4978.13,-1242 5089.18,-1080.59 5254.04,-1186.71 5360.13,-1022 5467.96,-854.579 5393.56,-774.911 5403.13,-576 5406.29,-510.298 5414.87,-492.722 5403.13,-428 5401.06,-416.586 5397.07,-404.556 5392.93,-394.046"/>
+<polygon fill="black" stroke="black" points="5396.04,-392.4 5388.97,-384.504 5389.57,-395.082 5396.04,-392.4"/>
+</g>
+<!-- k_dbf9f0bf -->
+<g id="node178" class="node"><title>k_dbf9f0bf</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4677.13,-1566.5 4489.13,-1566.5 4489.13,-1525.5 4677.13,-1525.5 4677.13,-1566.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4490.13,-1526 4490.13,-1565 4677.13,-1565 4677.13,-1526 4490.13,-1526"/>
+<text text-anchor="start" x="4495.13" y="-1552.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=DataApiRegistry)</text>
+<text text-anchor="start" x="4495.13" y="-1537.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">OperationServiceRegistry</text>
+</g>
+<!-- k_4425af11->k_dbf9f0bf -->
+<g id="edge624" class="edge"><title>k_4425af11:m_f42f63ac:e->k_dbf9f0bf</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4126.65,-1637 4115.95,-1617.6 4127.13,-1610 4192.34,-1565.67 4402.6,-1588.39 4480.13,-1574 4487.9,-1572.56 4495.94,-1570.82 4503.95,-1568.92"/>
+<polygon fill="black" stroke="black" points="4504.8,-1572.32 4513.68,-1566.54 4503.13,-1565.52 4504.8,-1572.32"/>
+</g>
+<!-- k_806c10de -->
+<!-- k_4425af11->k_806c10de -->
+<g id="edge628" class="edge"><title>k_4425af11:m_f42f63ac:e->k_806c10de</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4139.17,-1637 4139.95,-1616.64 4165.13,-1610 4376.5,-1554.28 4940.58,-1642.58 5148.13,-1574 5216.72,-1551.34 5232.06,-1534.07 5282.13,-1482 5384.6,-1375.44 5417.13,-1325.83 5417.13,-1178 5417.13,-1178 5417.13,-1178 5417.13,-994 5417.13,-932.031 5393.01,-914.531 5346.13,-874 5322.95,-853.961 5292.65,-839.61 5264.93,-829.646"/>
+<polygon fill="black" stroke="black" points="5265.84,-826.258 5255.24,-826.302 5263.55,-832.874 5265.84,-826.258"/>
+</g>
+<!-- k_7623cdd2 -->
+<g id="node181" class="node"><title>k_7623cdd2</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4899.13,-1564 4771.13,-1564 4771.13,-1528 4899.13,-1528 4899.13,-1564"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4772.13,-1533 4772.13,-1558 4898.13,-1558 4898.13,-1533 4772.13,-1533"/>
+<text text-anchor="start" x="4777.13" y="-1542.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveletProvider</text>
+</g>
+<!-- k_4425af11->k_7623cdd2 -->
+<g id="edge626" class="edge"><title>k_4425af11:m_f42f63ac:e->k_7623cdd2</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4126.65,-1637 4115.81,-1617.39 4127.13,-1610 4179.25,-1575.98 4624.38,-1581.76 4686.13,-1574 4710.58,-1570.93 4737.08,-1566.36 4760.85,-1561.8"/>
+<polygon fill="black" stroke="black" points="4761.71,-1565.19 4770.86,-1559.85 4760.37,-1558.32 4761.71,-1565.19"/>
+</g>
+<!-- k_2ef40082 -->
+<g id="node182" class="node"><title>k_2ef40082</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4471.13,-1564 4253.13,-1564 4253.13,-1528 4471.13,-1528 4471.13,-1564"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4254.13,-1533 4254.13,-1558 4470.13,-1558 4470.13,-1533 4254.13,-1533"/>
+<text text-anchor="start" x="4259.13" y="-1542.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">EventDataConverterManager</text>
+</g>
+<!-- k_4425af11->k_2ef40082 -->
+<g id="edge622" class="edge"><title>k_4425af11:m_f42f63ac:e->k_2ef40082</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4126.65,-1637 4116.61,-1618.49 4127.13,-1610 4147.61,-1593.47 4203.73,-1577.88 4256,-1566.23"/>
+<polygon fill="black" stroke="black" points="4257.02,-1569.59 4266.04,-1564.03 4255.52,-1562.75 4257.02,-1569.59"/>
+</g>
+<!-- k_beb9c197 -->
+<g id="node184" class="node"><title>k_beb9c197</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5139.13,-1564 5023.13,-1564 5023.13,-1528 5139.13,-1528 5139.13,-1564"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5024.13,-1533 5024.13,-1558 5138.13,-1558 5138.13,-1533 5024.13,-1533"/>
+<text text-anchor="start" x="5029.13" y="-1542.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveRenderer</text>
+</g>
+<!-- k_4425af11->k_beb9c197 -->
+<g id="edge632" class="edge"><title>k_4425af11:m_f42f63ac:e->k_beb9c197</title>
+<path fill="none" stroke="black" d="M4113.13,-1637C4126.65,-1637 4115.73,-1617.27 4127.13,-1610 4206.47,-1559.43 4880.07,-1587.88 4973.13,-1574 4986.18,-1572.05 4999.94,-1569.16 5013.1,-1565.96"/>
+<polygon fill="black" stroke="black" points="5014.18,-1569.3 5023.02,-1563.46 5012.47,-1562.51 5014.18,-1569.3"/>
+</g>
+<!-- k_79e18302->k_1a7eca26 -->
+<g id="edge636" class="edge"><title>k_79e18302:m_a2bece9f:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M4426.13,-1440C4432.15,-1440 4429.43,-1430.71 4425.13,-1426.5 4397.95,-1399.87 3779.09,-1392.6 3741.13,-1390 3649.47,-1383.71 3543.82,-1374.53 3476.3,-1368.41"/>
+<polygon fill="black" stroke="black" points="3476.49,-1364.92 3466.22,-1367.5 3475.86,-1371.89 3476.49,-1364.92"/>
+</g>
+<!-- k_59cf8930->k_2f704481 -->
+<g id="edge642" class="edge"><title>k_59cf8930:m_96bb30a1:e->k_2f704481</title>
+<path fill="none" stroke="black" d="M4842.13,-1834C4848.15,-1834 4845.52,-1824.62 4841.13,-1820.5 4770.84,-1754.53 1465.69,-1802.73 1371.13,-1784 1363.63,-1782.51 1355.91,-1780.25 1348.46,-1777.64"/>
+<polygon fill="black" stroke="black" points="1349.45,-1774.27 1338.86,-1774.04 1347,-1780.83 1349.45,-1774.27"/>
+</g>
+<!-- k_59cf8930->k_1f909b4 -->
+<g id="edge640" class="edge"><title>k_59cf8930:m_96bb30a1:e->k_1f909b4</title>
+<path fill="none" stroke="black" d="M4842.13,-1834C4848.15,-1834 4845.47,-1824.66 4841.13,-1820.5 4794.21,-1775.55 3737.02,-1787.38 3672.13,-1784 3557.51,-1778.02 3423.85,-1767.42 3348.59,-1761.12"/>
+<polygon fill="black" stroke="black" points="3348.62,-1757.61 3338.36,-1760.26 3348.03,-1764.59 3348.62,-1757.61"/>
+</g>
+<!-- k_59cf8930->k_5425561b -->
+<g id="edge638" class="edge"><title>k_59cf8930:m_96bb30a1:e->k_5425561b</title>
+<path fill="none" stroke="black" d="M4842.13,-1834C4848.15,-1834 4845.45,-1824.69 4841.13,-1820.5 4774.64,-1755.99 4097.54,-1808.26 4008.13,-1784 4003.11,-1782.64 3998.03,-1780.74 3993.11,-1778.57"/>
+<polygon fill="black" stroke="black" points="3994.41,-1775.31 3983.89,-1774.13 3991.37,-1781.62 3994.41,-1775.31"/>
+</g>
+<!-- k_8e9f39bf->k_9d43c1d5 -->
+<g id="edge644" class="edge"><title>k_8e9f39bf:m_c72f445d:e->k_9d43c1d5</title>
+<path fill="none" stroke="black" d="M4395.13,-2608C4419.46,-2608 4401.08,-2433.06 4392.71,-2362.75"/>
+<polygon fill="black" stroke="black" points="4396.13,-2361.91 4391.46,-2352.4 4389.18,-2362.75 4396.13,-2361.91"/>
+</g>
+<!-- k_8e9f39bf->k_6990a9aa -->
+<g id="edge646" class="edge"><title>k_8e9f39bf:m_c72f445d:e->k_6990a9aa</title>
+<path fill="none" stroke="black" d="M4395.13,-2608C4511.17,-2608 4538.12,-2583.4 4653.13,-2568 4794.55,-2549.07 4838.64,-2582.38 4972.13,-2532 4992.37,-2524.36 5012.38,-2511.49 5028.84,-2499.06"/>
+<polygon fill="black" stroke="black" points="5031.37,-2501.53 5037.11,-2492.63 5027.07,-2496.01 5031.37,-2501.53"/>
+</g>
+<!-- k_cb025297->k_e65a2cb5 -->
+<g id="edge652" class="edge"><title>k_cb025297:m_87014a14:e->k_e65a2cb5</title>
+<path fill="none" stroke="black" d="M4107.13,-1834C4115.93,-1834 4113.09,-1823.57 4121.13,-1820 4264.28,-1756.38 4672.57,-1819.55 4825.13,-1784 4831.72,-1782.46 4838.49,-1780.29 4845.05,-1777.83"/>
+<polygon fill="black" stroke="black" points="4846.49,-1781.02 4854.46,-1774.05 4843.88,-1774.53 4846.49,-1781.02"/>
+</g>
+<!-- k_cb025297->k_a162095c -->
+<g id="edge654" class="edge"><title>k_cb025297:m_87014a14:e->k_a162095c</title>
+<path fill="none" stroke="black" d="M4107.13,-1834C4118.11,-1834 4126.27,-1806.52 4131.09,-1784.19"/>
+<polygon fill="black" stroke="black" points="4134.58,-1784.59 4133.13,-1774.09 4127.72,-1783.2 4134.58,-1784.59"/>
+</g>
+<!-- k_cb025297->k_9fad21d -->
+<g id="edge650" class="edge"><title>k_cb025297:m_87014a14:e->k_9fad21d</title>
+<path fill="none" stroke="black" d="M4107.13,-1834C4113.15,-1834 4110.16,-1824.97 4106.13,-1820.5 4075.29,-1786.3 3947.45,-1792.2 3902.13,-1784 3877.83,-1779.6 3851.37,-1774.78 3827.4,-1770.38"/>
+<polygon fill="black" stroke="black" points="3827.75,-1766.89 3817.29,-1768.53 3826.49,-1773.78 3827.75,-1766.89"/>
+</g>
+<!-- k_cb025297->k_e77113ec -->
+<g id="edge648" class="edge"><title>k_cb025297:m_87014a14:e->k_e77113ec</title>
+<path fill="none" stroke="black" d="M4107.13,-1834C4115.93,-1834 4113.11,-1823.63 4121.13,-1820 4232.9,-1769.37 4551.23,-1804.97 4672.13,-1784 4685.88,-1781.61 4700.46,-1778.04 4714.05,-1774.24"/>
+<polygon fill="black" stroke="black" points="4715.1,-1777.58 4723.74,-1771.44 4713.17,-1770.85 4715.1,-1777.58"/>
+</g>
+<!-- k_cb025297->k_35322ade -->
+<g id="edge656" class="edge"><title>k_cb025297:m_87014a14:e->k_35322ade</title>
+<path fill="none" stroke="black" d="M4107.13,-1834C4128.93,-1834 4132.64,-1823.63 4154.13,-1820 4505.52,-1760.69 4603.66,-1842.8 4955.13,-1784 4967.19,-1781.98 4979.87,-1778.93 4991.91,-1775.56"/>
+<polygon fill="black" stroke="black" points="4993.21,-1778.83 5001.84,-1772.68 4991.26,-1772.11 4993.21,-1778.83"/>
+</g>
+<!-- k_cb025297->k_1a7eca26 -->
+<g id="edge658" class="edge"><title>k_cb025297:m_87014a14:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M4107.13,-1834C4115.93,-1834 4113.46,-1824.31 4121.13,-1820 4173.67,-1790.49 4603.99,-1733.02 4648.13,-1692 4706.11,-1638.12 4739.62,-1576.35 4686.13,-1518 4623.72,-1449.93 4351.78,-1528.74 4272.13,-1482 4246.19,-1466.78 4260.18,-1441.04 4234.13,-1426 4139.01,-1371.06 3850.64,-1398.59 3741.13,-1390 3649.53,-1382.82 3543.87,-1373.84 3476.33,-1368.02"/>
+<polygon fill="black" stroke="black" points="3476.5,-1364.52 3466.24,-1367.15 3475.9,-1371.5 3476.5,-1364.52"/>
+</g>
+<!-- i_bf7a7634 -->
+<!-- k_bf7a7634->i_bf7a7634 -->
+<g id="edge660" class="edge"><title>k_bf7a7634->i_bf7a7634</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6872.13,-3008.91C6872.13,-2978.15 6872.13,-2914.9 6872.13,-2872.71"/>
+<polygon fill="none" stroke="black" points="6875.63,-2862.58 6872.13,-2852.58 6868.63,-2862.58 6875.63,-2862.58"/>
+<polygon fill="none" stroke="black" points="6875.63,-2872.58 6872.13,-2862.58 6868.63,-2872.58 6875.63,-2872.58"/>
+</g>
+<!-- k_ccf09ec3->k_658873e3 -->
+<g id="edge662" class="edge"><title>k_ccf09ec3:m_535448fb:e->k_658873e3</title>
+<path fill="none" stroke="black" d="M4296.13,-1164C5198.48,-1164 2620.35,-1099.71 2137.55,-1087.86"/>
+<polygon fill="black" stroke="black" points="2137.29,-1084.36 2127.21,-1087.61 2137.12,-1091.36 2137.29,-1084.36"/>
+</g>
+<!-- k_40ce8a32->k_9d43c1d5 -->
+<g id="edge666" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_9d43c1d5</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3157.61,-2451 3144.77,-2411.66 3173.13,-2398 3199.37,-2385.36 4082.21,-2347.03 4326.84,-2336.63"/>
+<polygon fill="black" stroke="black" points="4327.14,-2340.12 4336.98,-2336.2 4326.84,-2333.12 4327.14,-2340.12"/>
+</g>
+<!-- k_40ce8a32->k_cd819caf -->
+<g id="edge668" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_cd819caf</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3190.13,-2451 2933.79,-2325.61 2902.13,-2270 2843.29,-2166.65 2933.31,-2106.57 2873.13,-2004 2863.31,-1987.26 2847.17,-1973.75 2831.26,-1963.53"/>
+<polygon fill="black" stroke="black" points="2832.85,-1960.4 2822.48,-1958.19 2829.21,-1966.38 2832.85,-1960.4"/>
+</g>
+<!-- k_40ce8a32->k_fe8ab28b -->
+<g id="edge678" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_fe8ab28b</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3132.15,-2451 3129.44,-2441.7 3125.13,-2437.5 3061.9,-2375.92 1626.17,-2368.31 1538.13,-2362 1464.3,-2356.71 1380.18,-2348.4 1321.26,-2342.21"/>
+<polygon fill="black" stroke="black" points="1321.6,-2338.72 1311.29,-2341.15 1320.87,-2345.68 1321.6,-2338.72"/>
+</g>
+<!-- k_40ce8a32->k_429c8161 -->
+<g id="edge670" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_429c8161</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3132.15,-2451 3127.13,-2443.17 3125.13,-2437.5 3111.6,-2399.07 3089.01,-2399.52 3073.13,-2362 3051.94,-2311.91 3049.13,-2296.39 3049.13,-2242 3049.13,-2242 3049.13,-2242 3049.13,-2150 3049.13,-1990.72 2906.31,-1839.34 2844.3,-1781.12"/>
+<polygon fill="black" stroke="black" points="2846.52,-1778.4 2836.81,-1774.17 2841.76,-1783.54 2846.52,-1778.4"/>
+</g>
+<!-- k_40ce8a32->k_9d34b335 -->
+<g id="edge674" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_9d34b335</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3157.61,-2451 3146.46,-2414.73 3173.13,-2398 3477.89,-2206.81 3607.39,-2280.88 3952.13,-2178 3959.55,-2175.79 3967.3,-2173.42 3975.01,-2171.04"/>
+<polygon fill="black" stroke="black" points="3976.2,-2174.34 3984.71,-2168.03 3974.12,-2167.65 3976.2,-2174.34"/>
+</g>
+<!-- k_40ce8a32->k_bebd50c7 -->
+<g id="edge672" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_bebd50c7</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3128.67,-2451 3146.67,-2364.5 3147.13,-2362 3156.88,-2309.08 3163.13,-2295.81 3163.13,-2242 3163.13,-2242 3163.13,-2242 3163.13,-2045 3163.13,-1808.66 2972.96,-1722.1 3092.13,-1518 3093.44,-1515.76 3252.66,-1426.8 3255.13,-1426 3342.82,-1397.74 3598.42,-1377.37 3739.61,-1367.92"/>
+<polygon fill="black" stroke="black" points="3740.25,-1371.38 3749.99,-1367.23 3739.78,-1364.4 3740.25,-1371.38"/>
+</g>
+<!-- k_40ce8a32->k_6d495d8 -->
+<g id="edge676" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_6d495d8</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3149.35,-2451 3125.13,-2265.22 3125.13,-2242 3125.13,-2242 3125.13,-2242 3125.13,-2150 3125.13,-1909.98 2963.18,-1793.31 3118.13,-1610 3136.05,-1588.8 3290.77,-1568.12 3396.9,-1556.24"/>
+<polygon fill="black" stroke="black" points="3397.46,-1559.7 3407.01,-1555.12 3396.69,-1552.75 3397.46,-1559.7"/>
+</g>
+<!-- k_40ce8a32->k_869b8de5 -->
+<g id="edge680" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_869b8de5</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3150.49,-2451 3127.84,-2419.04 3140.13,-2398 3151.7,-2378.19 3167.31,-2382.74 3177.13,-2362 3237.62,-2234.19 3132.39,-1829.21 3231.13,-1728 3282.18,-1675.67 3485.93,-1703.46 3558.13,-1692 3582.39,-1688.15 3608.18,-1683.32 3632.84,-1678.34"/>
+<polygon fill="black" stroke="black" points="3633.86,-1681.71 3642.96,-1676.28 3632.46,-1674.85 3633.86,-1681.71"/>
+</g>
+<!-- k_40ce8a32->k_1fa76df9 -->
+<g id="edge664" class="edge"><title>k_40ce8a32:m_1b090b84:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M3126.13,-2451C3149.75,-2451 3087.13,-2265.62 3087.13,-2242 3087.13,-2242 3087.13,-2242 3087.13,-2150 3087.13,-1909.78 2928.24,-1808.09 3064.13,-1610 3109.09,-1544.45 3191.11,-1503.35 3254.45,-1479.9"/>
+<polygon fill="black" stroke="black" points="3255.84,-1483.12 3264.05,-1476.42 3253.46,-1476.53 3255.84,-1483.12"/>
+</g>
+<!-- i_832e9dc1 -->
+<!-- k_832e9dc1->i_832e9dc1 -->
+<g id="edge682" class="edge"><title>k_832e9dc1->i_832e9dc1</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5379.13,-343.182C5379.13,-333.161 5379.13,-320.927 5379.13,-309.776"/>
+<polygon fill="none" stroke="black" points="5382.63,-309.525 5379.13,-299.525 5375.63,-309.525 5382.63,-309.525"/>
+</g>
+<!-- k_1fa76df9->k_1a7eca26 -->
+<g id="edge684" class="edge"><title>k_1fa76df9:m_94b0e6a0:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M3420.13,-1440C3441.27,-1440 3432.27,-1411.77 3421.75,-1389.28"/>
+<polygon fill="black" stroke="black" points="3424.78,-1387.52 3417.22,-1380.09 3418.5,-1390.61 3424.78,-1387.52"/>
+</g>
+<!-- k_8aea4644 -->
+<!-- k_6d89dff1->k_8aea4644 -->
+<g id="edge686" class="edge"><title>k_6d89dff1->k_8aea4644</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4787.46,-883.96C4781.22,-880.406 4774.55,-876.888 4768.13,-874 4740.39,-861.527 4709.48,-850.257 4680.58,-840.774"/>
+<polygon fill="none" stroke="black" points="4681.46,-837.38 4670.87,-837.628 4679.3,-844.039 4681.46,-837.38"/>
+</g>
+<!-- k_1cbad9c8 -->
+<!-- k_f9384575->k_1cbad9c8 -->
+<g id="edge688" class="edge"><title>k_f9384575->k_1cbad9c8</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5404.14,-2026.71C5407.1,-2013.18 5411.24,-1994.29 5414.9,-1977.59"/>
+<polygon fill="none" stroke="black" points="5418.38,-1978.06 5417.1,-1967.54 5411.54,-1976.56 5418.38,-1978.06"/>
+</g>
+<!-- k_b545a68a->k_1a7eca26 -->
+<g id="edge690" class="edge"><title>k_b545a68a:m_14070d2b:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M5390.13,-1532C5396.15,-1532 5393.4,-1522.74 5389.13,-1518.5 5345.01,-1474.76 4889.81,-1502.43 4831.13,-1482 4789.8,-1467.61 4791.67,-1439.78 4750.13,-1426 4643.65,-1390.68 3853.11,-1396.69 3741.13,-1390 3649.42,-1384.52 3543.78,-1375.15 3476.28,-1368.77"/>
+<polygon fill="black" stroke="black" points="3476.48,-1365.27 3466.19,-1367.81 3475.82,-1372.24 3476.48,-1365.27"/>
+</g>
+<!-- k_b0057a76->k_bffd6740 -->
+<g id="edge692" class="edge"><title>k_b0057a76:m_f7fa287d:e->k_bffd6740</title>
+<path fill="none" stroke="black" d="M3944.13,-2136C3951.3,-2136 3948.14,-2127.95 3952.13,-2122 3961.42,-2108.14 3972.44,-2093.56 3982.48,-2080.85"/>
+<polygon fill="black" stroke="black" points="3985.4,-2082.8 3988.91,-2072.8 3979.93,-2078.43 3985.4,-2082.8"/>
+</g>
+<!-- k_64ea3d13 -->
+<!-- k_b0057a76->k_64ea3d13 -->
+<g id="edge694" class="edge"><title>k_b0057a76:m_f7fa287d:e->k_64ea3d13</title>
+<path fill="none" stroke="black" d="M3944.13,-2136C3950.15,-2136 3947.28,-2126.85 3943.13,-2122.5 3896.77,-2073.91 3708.88,-2099.67 3643.13,-2086 3628.91,-2083.05 3614.04,-2079.32 3599.55,-2075.33"/>
+<polygon fill="black" stroke="black" points="3600.16,-2071.86 3589.58,-2072.52 3598.26,-2078.6 3600.16,-2071.86"/>
+</g>
+<!-- k_c29d2db0->k_832e9dc1 -->
+<g id="edge698" class="edge"><title>k_c29d2db0:m_145a2d5b:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M5329.13,-2136C5332.14,-2136 5329.52,-2124.87 5300.13,-2004 5285.48,-1943.75 5221.95,-1777.62 5259.13,-1728 5293.28,-1682.42 5334,-1722.46 5382.13,-1692 5604.71,-1551.16 5677.13,-1441.4 5677.13,-1178 5677.13,-1178 5677.13,-1178 5677.13,-548 5677.13,-456.374 5573.87,-408.862 5488.92,-385.277"/>
+<polygon fill="black" stroke="black" points="5489.75,-381.877 5479.19,-382.656 5487.93,-388.636 5489.75,-381.877"/>
+</g>
+<!-- k_c29d2db0->k_f9384575 -->
+<g id="edge696" class="edge"><title>k_c29d2db0:m_145a2d5b:e->k_f9384575</title>
+<path fill="none" stroke="black" d="M5329.13,-2136C5361.47,-2136 5381.25,-2099.84 5391.46,-2073.1"/>
+<polygon fill="black" stroke="black" points="5394.85,-2074.01 5394.9,-2063.42 5388.25,-2071.66 5394.85,-2074.01"/>
+</g>
+<!-- k_f94a810 -->
+<g id="node188" class="node"><title>k_f94a810</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5291.13,-2065.5 5097.13,-2065.5 5097.13,-2024.5 5291.13,-2024.5 5291.13,-2065.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5098.13,-2025 5098.13,-2064 5290.13,-2064 5290.13,-2025 5098.13,-2025"/>
+<text text-anchor="start" x="5103.13" y="-2051.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=disable_registration)</text>
+<text text-anchor="start" x="5103.13" y="-2036.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Boolean</text>
+</g>
+<!-- k_c29d2db0->k_f94a810 -->
+<g id="edge700" class="edge"><title>k_c29d2db0:m_145a2d5b:e->k_f94a810</title>
+<path fill="none" stroke="black" d="M5329.13,-2136C5376.52,-2136 5303.93,-2096.97 5248.19,-2070.03"/>
+<polygon fill="black" stroke="black" points="5249.59,-2066.82 5239.06,-2065.65 5246.56,-2073.13 5249.59,-2066.82"/>
+</g>
+<!-- k_9ea4242b->k_1a7eca26 -->
+<g id="edge702" class="edge"><title>k_9ea4242b:m_de674d3e:e->k_1a7eca26</title>
+<path fill="none" stroke="black" d="M5481.13,-3125C5521.96,-3125 5814.02,-3095.57 5844.13,-3068 5924.2,-2994.7 5903.13,-2939.55 5903.13,-2831 5903.13,-2831 5903.13,-2831 5903.13,-2622 5903.13,-2364.88 5861.13,-2302.12 5861.13,-2045 5861.13,-2045 5861.13,-2045 5861.13,-1940 5861.13,-1884.8 5859.14,-1866.33 5829.13,-1820 5713.36,-1641.26 5654.83,-1597.16 5457.13,-1518 5270.87,-1443.42 5203.47,-1523.29 5007.13,-1482 4932.99,-1466.41 4920.62,-1439.84 4846.13,-1426 4604.58,-1381.13 3986.4,-1404.27 3741.13,-1390 3649.41,-1384.66 3543.77,-1375.26 3476.28,-1368.83"/>
+<polygon fill="black" stroke="black" points="3476.48,-1365.34 3466.19,-1367.87 3475.81,-1372.31 3476.48,-1365.34"/>
+</g>
+<!-- k_7ad9e7f3->k_832e9dc1 -->
+<g id="edge704" class="edge"><title>k_7ad9e7f3:m_ab1e54db:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M6066.13,-3125C6070.88,-3125 6069.05,-3108.63 6070.13,-3104 6073.91,-3087.83 6076.49,-3084.2 6080.13,-3068 6103.58,-2963.7 6121.13,-2937.9 6121.13,-2831 6121.13,-2831 6121.13,-2831 6121.13,-548 6121.13,-419.44 5696.2,-380.084 5489.48,-368.544"/>
+<polygon fill="black" stroke="black" points="5489.37,-365.034 5479.2,-367.984 5488.99,-372.023 5489.37,-365.034"/>
+</g>
+<!-- k_7ad9e7f3->k_5ed380ef -->
+<g id="edge706" class="edge"><title>k_7ad9e7f3:m_ab1e54db:e->k_5ed380ef</title>
+<path fill="none" stroke="black" d="M6066.13,-3125C6121.17,-3125 6173.76,-3083.82 6203.95,-3054.85"/>
+<polygon fill="black" stroke="black" points="6206.46,-3057.29 6211.14,-3047.78 6201.55,-3052.3 6206.46,-3057.29"/>
+</g>
+<!-- k_7ad9e7f3->k_a0e8f908 -->
+<g id="edge708" class="edge"><title>k_7ad9e7f3:m_ab1e54db:e->k_a0e8f908</title>
+<path fill="none" stroke="black" d="M6066.13,-3125C6099.56,-3125 6063.55,-3081.87 6035.52,-3052.84"/>
+<polygon fill="black" stroke="black" points="6037.76,-3050.12 6028.25,-3045.43 6032.76,-3055.02 6037.76,-3050.12"/>
+</g>
+<!-- i_5ed380ef -->
+<!-- k_5ed380ef->i_5ed380ef -->
+<g id="edge710" class="edge"><title>k_5ed380ef->i_5ed380ef</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6230.13,-3006.4C6230.13,-2972.11 6230.13,-2903.13 6230.13,-2862.64"/>
+<polygon fill="none" stroke="black" points="6233.63,-2862.52 6230.13,-2852.52 6226.63,-2862.52 6233.63,-2862.52"/>
+</g>
+<!-- k_6c65cbd2 -->
+<!-- k_a0e8f908->k_6c65cbd2 -->
+<g id="edge712" class="edge"><title>k_a0e8f908->k_6c65cbd2</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6009.13,-3008.91C6009.13,-2977.2 6009.13,-2910.94 6009.13,-2868.84"/>
+<polygon fill="none" stroke="black" points="6012.63,-2868.69 6009.13,-2858.69 6005.63,-2868.69 6012.63,-2868.69"/>
+</g>
+<!-- i_dbf9f0bf -->
+<!-- k_dbf9f0bf->i_dbf9f0bf -->
+<g id="edge714" class="edge"><title>k_dbf9f0bf->i_dbf9f0bf</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4585.17,-1525.12C4586.03,-1516.37 4587.06,-1505.87 4588.05,-1495.66"/>
+<polygon fill="none" stroke="black" points="4592.51,-1486.05 4590,-1475.75 4585.54,-1485.37 4592.51,-1486.05"/>
+<polygon fill="none" stroke="black" points="4591.54,-1496 4589.03,-1485.71 4584.57,-1495.32 4591.54,-1496"/>
+</g>
+<!-- k_5f08355f -->
+<!-- i_dbf9f0bf->k_5f08355f -->
+<g id="edge716" class="edge"><title>i_dbf9f0bf:header:e->k_5f08355f</title>
+<path fill="none" stroke="black" d="M4741.13,-1453C4776.74,-1453 4735.03,-1421.04 4695.13,-1395"/>
+<polygon fill="black" stroke="black" points="4696.97,-1392.03 4686.67,-1389.55 4693.18,-1397.91 4696.97,-1392.03"/>
+</g>
+<!-- k_b4e7e4bb -->
+<g id="node193" class="node"><title>k_b4e7e4bb</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5304.13,-743 5206.13,-743 5206.13,-707 5304.13,-707 5304.13,-743"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5207.13,-712 5207.13,-737 5303.13,-737 5303.13,-712 5207.13,-712"/>
+<text text-anchor="start" x="5212.13" y="-721.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">IdGenerator</text>
+</g>
+<!-- k_806c10de->k_b4e7e4bb -->
+<g id="edge718" class="edge"><title>k_806c10de:m_cb039b61:e->k_b4e7e4bb</title>
+<path fill="none" stroke="black" d="M5256.13,-796C5274.16,-796 5271.26,-772.817 5265.46,-752.945"/>
+<polygon fill="black" stroke="black" points="5268.75,-751.736 5262.36,-743.284 5262.08,-753.876 5268.75,-751.736"/>
+</g>
+<!-- k_a47076e4 -->
+<!-- k_7623cdd2->k_a47076e4 -->
+<g id="edge720" class="edge"><title>k_7623cdd2->k_a47076e4</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4823.93,-1527.97C4805.1,-1495.86 4769.13,-1426.14 4769.13,-1362 4769.13,-1362 4769.13,-1362 4769.13,-1270 4769.13,-1188.59 4858,-1137.38 4925.49,-1110.23"/>
+<polygon fill="none" stroke="black" points="4926.83,-1113.47 4934.86,-1106.56 4924.27,-1106.95 4926.83,-1113.47"/>
+</g>
+<!-- i_2ef40082 -->
+<!-- k_2ef40082->i_2ef40082 -->
+<g id="edge722" class="edge"><title>k_2ef40082->i_2ef40082</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4306.56,-1527.93C4266.06,-1514.77 4210.46,-1496.69 4164.37,-1481.71"/>
+<polygon fill="none" stroke="black" points="4155.86,-1475.26 4145.27,-1475.5 4153.7,-1481.92 4155.86,-1475.26"/>
+<polygon fill="none" stroke="black" points="4165.37,-1478.36 4154.78,-1478.59 4163.21,-1485.01 4165.37,-1478.36"/>
+</g>
+<!-- k_4bde6204 -->
+<!-- k_beb9c197->k_4bde6204 -->
+<g id="edge724" class="edge"><title>k_beb9c197->k_4bde6204</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5095.55,-1527.82C5104.22,-1516.9 5115.56,-1502.61 5125.94,-1489.52"/>
+<polygon fill="none" stroke="black" points="5128.78,-1491.58 5132.26,-1481.57 5123.3,-1487.23 5128.78,-1491.58"/>
+</g>
+<!-- k_3438204 -->
+<g id="node197" class="node"><title>k_3438204</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4783.13,-743 4639.13,-743 4639.13,-707 4783.13,-707 4783.13,-743"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4640.13,-712 4640.13,-737 4783.13,-737 4783.13,-712 4640.13,-712"/>
+<text text-anchor="start" x="4645.13" y="-721.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">CertificateManager</text>
+</g>
+<!-- k_8aea4644->k_3438204 -->
+<g id="edge726" class="edge"><title>k_8aea4644:m_72bb3f17:e->k_3438204</title>
+<path fill="none" stroke="black" d="M4686.13,-796C4705.07,-796 4710.58,-773.238 4711.79,-753.49"/>
+<polygon fill="black" stroke="black" points="4715.3,-753.38 4712.08,-743.284 4708.3,-753.18 4715.3,-753.38"/>
+</g>
+<!-- k_d03afe90 -->
+<g id="node198" class="node"><title>k_d03afe90</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4621.13,-745.5 4361.13,-745.5 4361.13,-704.5 4621.13,-704.5 4621.13,-745.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4362.13,-705 4362.13,-744 4620.13,-744 4620.13,-705 4362.13,-705"/>
+<text text-anchor="start" x="4367.13" y="-731.167" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@FederationHostBridge</text>
+<text text-anchor="start" x="4367.13" y="-716.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveletFederationListener$Factory</text>
+</g>
+<!-- k_8aea4644->k_d03afe90 -->
+<g id="edge728" class="edge"><title>k_8aea4644:m_72bb3f17:e->k_d03afe90</title>
+<path fill="none" stroke="black" d="M4686.13,-796C4743.02,-796 4655.53,-768.985 4580.13,-748.283"/>
+<polygon fill="black" stroke="black" points="4580.64,-744.792 4570.07,-745.536 4578.79,-751.545 4580.64,-744.792"/>
+</g>
+<!-- k_182d39be -->
+<g id="node199" class="node"><title>k_182d39be</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5491.13,-1868.5 5277.13,-1868.5 5277.13,-1827.5 5491.13,-1827.5 5491.13,-1868.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5278.13,-1828 5278.13,-1867 5491.13,-1867 5491.13,-1828 5278.13,-1828"/>
+<text text-anchor="start" x="5283.13" y="-1854.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=account_store_directory)</text>
+<text text-anchor="start" x="5283.13" y="-1839.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">String</text>
+</g>
+<!-- k_1cbad9c8->k_182d39be -->
+<g id="edge730" class="edge"><title>k_1cbad9c8:m_2bca331e:e->k_182d39be</title>
+<path fill="none" stroke="black" d="M5489.13,-1926C5525.06,-1926 5476.45,-1896.2 5434.09,-1873.43"/>
+<polygon fill="black" stroke="black" points="5435.65,-1870.3 5425.18,-1868.7 5432.36,-1876.48 5435.65,-1870.3"/>
+</g>
+<!-- k_775d88ca -->
+<!-- k_64ea3d13->k_775d88ca -->
+<g id="edge732" class="edge"><title>k_64ea3d13:m_40754071:e->k_775d88ca</title>
+<path fill="none" stroke="black" d="M3591.13,-2031C3627.71,-2031 3540.58,-1936.12 3488.93,-1883"/>
+<polygon fill="black" stroke="black" points="3491.39,-1880.5 3481.9,-1875.79 3486.38,-1885.39 3491.39,-1880.5"/>
+</g>
+<!-- i_f94a810 -->
+<!-- k_f94a810->i_f94a810 -->
+<g id="edge734" class="edge"><title>k_f94a810->i_f94a810</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5195.12,-2024.26C5195.83,-2009.31 5196.8,-1988.86 5197.61,-1971.85"/>
+<polygon fill="none" stroke="black" points="5201.11,-1971.94 5198.09,-1961.79 5194.12,-1971.61 5201.11,-1971.94"/>
+</g>
+<!-- k_6c65cbd2->k_f9384575 -->
+<g id="edge736" class="edge"><title>k_6c65cbd2:m_bc6356d8:e->k_f9384575</title>
+<path fill="none" stroke="black" d="M6088.13,-2817C6094.15,-2817 6089.63,-2808.97 6087.13,-2803.5 6053.88,-2730.76 6014.04,-2735.08 5960.13,-2676 5815.73,-2517.73 5794.14,-2465.53 5651.13,-2306 5571.43,-2217.09 5471.83,-2116.45 5425.73,-2070.42"/>
+<polygon fill="black" stroke="black" points="5428.1,-2067.83 5418.54,-2063.25 5423.15,-2072.79 5428.1,-2067.83"/>
+</g>
+<!-- k_ca5f0518 -->
+<g id="node202" class="node"><title>k_ca5f0518</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6093.13,-2640 5969.13,-2640 5969.13,-2604 6093.13,-2604 6093.13,-2640"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5970.13,-2609 5970.13,-2634 6093.13,-2634 6093.13,-2609 5970.13,-2609"/>
+<text text-anchor="start" x="5975.13" y="-2618.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SessionManager</text>
+</g>
+<!-- k_6c65cbd2->k_ca5f0518 -->
+<g id="edge738" class="edge"><title>k_6c65cbd2:m_bc6356d8:e->k_ca5f0518</title>
+<path fill="none" stroke="black" d="M6088.13,-2817C6122.65,-2817 6071.05,-2702.99 6044.85,-2649.32"/>
+<polygon fill="black" stroke="black" points="6047.99,-2647.77 6040.43,-2640.35 6041.71,-2650.86 6047.99,-2647.77"/>
+</g>
+<!-- k_bfef5978 -->
+<g id="node203" class="node"><title>k_bfef5978</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4727.13,-1288 4609.13,-1288 4609.13,-1252 4727.13,-1252 4727.13,-1288"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4610.13,-1257 4610.13,-1282 4727.13,-1282 4727.13,-1257 4610.13,-1257"/>
+<text text-anchor="start" x="4615.13" y="-1266.23" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SearchProvider</text>
+</g>
+<!-- k_5f08355f->k_bfef5978 -->
+<g id="edge740" class="edge"><title>k_5f08355f:m_22b30b9b:e->k_bfef5978</title>
+<path fill="none" stroke="black" d="M4698.13,-1348C4720.77,-1348 4704.66,-1319.01 4688.63,-1296.38"/>
+<polygon fill="black" stroke="black" points="4691.3,-1294.1 4682.57,-1288.09 4685.64,-1298.23 4691.3,-1294.1"/>
+</g>
+<!-- i_b4e7e4bb -->
+<!-- k_b4e7e4bb->i_b4e7e4bb -->
+<g id="edge742" class="edge"><title>k_b4e7e4bb->i_b4e7e4bb</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5255.13,-706.974C5255.13,-699.621 5255.13,-690.786 5255.13,-681.981"/>
+<polygon fill="none" stroke="black" points="5258.63,-671.614 5255.13,-661.614 5251.63,-671.614 5258.63,-671.614"/>
+<polygon fill="none" stroke="black" points="5258.63,-681.614 5255.13,-671.614 5251.63,-681.614 5258.63,-681.614"/>
+</g>
+<!-- i_b4e7e4bb->k_832e9dc1 -->
+<g id="edge744" class="edge"><title>i_b4e7e4bb:header:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M5384.13,-639C5408.32,-639 5391.09,-466.762 5382.85,-394.905"/>
+<polygon fill="black" stroke="black" points="5386.29,-394.198 5381.66,-384.67 5379.34,-395.007 5386.29,-394.198"/>
+</g>
+<!-- k_aaedcc69 -->
+<g id="node204" class="node"><title>k_aaedcc69</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6333.13,-566 6163.13,-566 6163.13,-530 6333.13,-530 6333.13,-566"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6164.13,-535 6164.13,-560 6332.13,-560 6332.13,-535 6164.13,-535"/>
+<text text-anchor="start" x="6169.13" y="-544.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">IdGeneratorImpl$Seed</text>
+</g>
+<!-- i_b4e7e4bb->k_aaedcc69 -->
+<g id="edge746" class="edge"><title>i_b4e7e4bb:header:e->k_aaedcc69</title>
+<path fill="none" stroke="black" d="M5384.13,-639C5664.73,-639 5993.79,-590.941 6152.69,-564.674"/>
+<polygon fill="black" stroke="black" points="6153.62,-568.068 6162.91,-562.976 6152.47,-561.163 6153.62,-568.068"/>
+</g>
+<!-- k_a47076e4->k_3438204 -->
+<g id="edge750" class="edge"><title>k_a47076e4:m_3065e839:e->k_3438204</title>
+<path fill="none" stroke="black" d="M5065.13,-1072C5071.15,-1072 5067.91,-1063.18 5064.13,-1058.5 5028.04,-1013.8 4984.39,-1058.63 4940.13,-1022 4883.16,-974.856 4908.08,-933.463 4864.13,-874 4827.86,-824.936 4775,-777.384 4741.87,-749.672"/>
+<polygon fill="black" stroke="black" points="4743.82,-746.748 4733.89,-743.066 4739.36,-752.14 4743.82,-746.748"/>
+</g>
+<!-- k_74266868 -->
+<g id="node206" class="node"><title>k_74266868</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5151.13,-1014.5 4949.13,-1014.5 4949.13,-973.5 5151.13,-973.5 5151.13,-1014.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4950.13,-974 4950.13,-1013 5150.13,-1013 5150.13,-974 4950.13,-974"/>
+<text text-anchor="start" x="4955.13" y="-1000.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@FederationRemoteBridge</text>
+<text text-anchor="start" x="4955.13" y="-985.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveletFederationProvider</text>
+</g>
+<!-- k_a47076e4->k_74266868 -->
+<g id="edge752" class="edge"><title>k_a47076e4:m_3065e839:e->k_74266868</title>
+<path fill="none" stroke="black" d="M5065.13,-1072C5085.52,-1072 5077.35,-1045.97 5066.81,-1023.99"/>
+<polygon fill="black" stroke="black" points="5069.85,-1022.25 5062.22,-1014.9 5063.6,-1025.41 5069.85,-1022.25"/>
+</g>
+<!-- k_438f81fa -->
+<!-- k_a47076e4->k_438f81fa -->
+<g id="edge754" class="edge"><title>k_a47076e4:m_3065e839:e->k_438f81fa</title>
+<path fill="none" stroke="black" d="M5065.13,-1072C5289.51,-1072 4707.3,-1015.68 4527.24,-998.755"/>
+<polygon fill="black" stroke="black" points="4527.5,-995.265 4517.22,-997.815 4526.85,-1002.23 4527.5,-995.265"/>
+</g>
+<!-- k_9f16b2fc -->
+<g id="node208" class="node"><title>k_9f16b2fc</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5351.13,-1014.5 5169.13,-1014.5 5169.13,-973.5 5351.13,-973.5 5351.13,-1014.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5170.13,-974 5170.13,-1013 5350.13,-1013 5350.13,-974 5170.13,-974"/>
+<text text-anchor="start" x="5175.13" y="-1000.17" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=listener_executor)</text>
+<text text-anchor="start" x="5175.13" y="-985.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Executor</text>
+</g>
+<!-- k_a47076e4->k_9f16b2fc -->
+<g id="edge748" class="edge"><title>k_a47076e4:m_3065e839:e->k_9f16b2fc</title>
+<path fill="none" stroke="black" d="M5065.13,-1072C5122.35,-1072 5182.69,-1042.69 5220.82,-1020.01"/>
+<polygon fill="black" stroke="black" points="5222.83,-1022.88 5229.55,-1014.7 5219.19,-1016.9 5222.83,-1022.88"/>
+</g>
+<!-- k_4bde6204->k_832e9dc1 -->
+<g id="edge760" class="edge"><title>k_4bde6204:m_b9a42285:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M5246.13,-1440C5252.15,-1440 5248.8,-1431.27 5245.13,-1426.5 5215.03,-1387.32 5168.76,-1430.26 5140.13,-1390 5125.71,-1369.72 5123.79,-1352.78 5140.13,-1334 5216.13,-1246.66 5304.78,-1366.49 5398.13,-1298 5445.73,-1263.07 5455.13,-1237.04 5455.13,-1178 5455.13,-1178 5455.13,-1178 5455.13,-548 5455.13,-493.61 5454.29,-477.212 5431.13,-428 5425.11,-415.2 5415.99,-402.746 5407.06,-392.279"/>
+<polygon fill="black" stroke="black" points="5409.57,-389.844 5400.32,-384.688 5404.34,-394.49 5409.57,-389.844"/>
+</g>
+<!-- k_1317af22 -->
+<!-- k_4bde6204->k_1317af22 -->
+<g id="edge758" class="edge"><title>k_4bde6204:m_b9a42285:e->k_1317af22</title>
+<path fill="none" stroke="black" d="M5246.13,-1440C5265.64,-1440 5256.38,-1418.48 5243.18,-1398.04"/>
+<polygon fill="black" stroke="black" points="5246.06,-1396.06 5237.57,-1389.72 5240.26,-1399.97 5246.06,-1396.06"/>
+</g>
+<!-- k_b62ee2fb -->
+<!-- k_4bde6204->k_b62ee2fb -->
+<g id="edge756" class="edge"><title>k_4bde6204:m_b9a42285:e->k_b62ee2fb</title>
+<path fill="none" stroke="black" d="M5246.13,-1440C5252.15,-1440 5248.97,-1431.13 5245.13,-1426.5 5204.6,-1377.69 5167.21,-1410.39 5107.13,-1390 5102.18,-1388.32 5097.08,-1386.45 5092.01,-1384.5"/>
+<polygon fill="black" stroke="black" points="5092.91,-1381.09 5082.33,-1380.66 5090.33,-1387.6 5092.91,-1381.09"/>
+</g>
+<!-- k_3b47287a -->
+<!-- k_3438204->k_3b47287a -->
+<g id="edge762" class="edge"><title>k_3438204->k_3b47287a</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4703.49,-706.974C4699.8,-698.243 4695.21,-687.422 4690.82,-677.043"/>
+<polygon fill="none" stroke="black" points="4693.99,-675.55 4686.86,-667.707 4687.54,-678.28 4693.99,-675.55"/>
+</g>
+<!-- k_507c66a8 -->
+<!-- k_d03afe90->k_507c66a8 -->
+<g id="edge764" class="edge"><title>k_d03afe90->k_507c66a8</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4490.89,-704.424C4490.79,-696.428 4490.68,-687.005 4490.58,-677.872"/>
+<polygon fill="none" stroke="black" points="4494.07,-677.731 4490.46,-667.773 4487.07,-677.814 4494.07,-677.731"/>
+</g>
+<!-- i_182d39be -->
+<!-- k_182d39be->i_182d39be -->
+<g id="edge766" class="edge"><title>k_182d39be->i_182d39be</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5378.91,-1827.12C5376,-1815.49 5372.32,-1800.77 5369.07,-1787.75"/>
+<polygon fill="none" stroke="black" points="5372.39,-1786.61 5366.57,-1777.75 5365.6,-1788.3 5372.39,-1786.61"/>
+</g>
+<!-- k_775d88ca->k_1fa76df9 -->
+<g id="edge768" class="edge"><title>k_775d88ca:m_30d2c19e:e->k_1fa76df9</title>
+<path fill="none" stroke="black" d="M3554.13,-1834C3579.02,-1834 3573.68,-1629.44 3558.13,-1610 3512.6,-1553.08 3454.91,-1619.7 3398.13,-1574 3372.56,-1553.42 3358.1,-1518.47 3350.3,-1491.59"/>
+<polygon fill="black" stroke="black" points="3353.62,-1490.46 3347.63,-1481.72 3346.86,-1492.29 3353.62,-1490.46"/>
+</g>
+<!-- k_6b009835 -->
+<!-- k_ca5f0518->k_6b009835 -->
+<g id="edge770" class="edge"><title>k_ca5f0518->k_6b009835</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6028.95,-2603.99C6025.97,-2579.35 6020.55,-2534.54 6016.66,-2502.46"/>
+<polygon fill="none" stroke="black" points="6020.14,-2502.04 6015.46,-2492.53 6013.19,-2502.88 6020.14,-2502.04"/>
+</g>
+<!-- k_eae9eb08 -->
+<!-- k_bfef5978->k_eae9eb08 -->
+<g id="edge772" class="edge"><title>k_bfef5978->k_eae9eb08</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4665.17,-1251.82C4663.49,-1241.51 4661.32,-1228.22 4659.29,-1215.76"/>
+<polygon fill="none" stroke="black" points="4662.69,-1214.87 4657.62,-1205.57 4655.78,-1216 4662.69,-1214.87"/>
+</g>
+<!-- i_aaedcc69 -->
+<!-- k_aaedcc69->i_aaedcc69 -->
+<g id="edge774" class="edge"><title>k_aaedcc69->i_aaedcc69</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6250.9,-529.824C6252.3,-520.58 6254.07,-508.936 6255.79,-497.644"/>
+<polygon fill="none" stroke="black" points="6260.78,-488.112 6258.83,-477.699 6253.86,-487.059 6260.78,-488.112"/>
+<polygon fill="none" stroke="black" points="6259.28,-497.998 6257.32,-487.585 6252.36,-496.945 6259.28,-497.998"/>
+</g>
+<!-- k_373c233a -->
+<g id="node216" class="node"><title>k_373c233a</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="6432.13,-382 6316.13,-382 6316.13,-346 6432.13,-346 6432.13,-382"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="6317.13,-351 6317.13,-376 6432.13,-376 6432.13,-351 6317.13,-351"/>
+<text text-anchor="start" x="6322.13" y="-360.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SecureRandom</text>
+</g>
+<!-- i_aaedcc69->k_373c233a -->
+<g id="edge776" class="edge"><title>i_aaedcc69:header:e->k_373c233a</title>
+<path fill="none" stroke="black" d="M6375.13,-455C6400.63,-455 6393.58,-418.836 6384.89,-392.104"/>
+<polygon fill="black" stroke="black" points="6388.11,-390.724 6381.54,-382.415 6381.5,-393.01 6388.11,-390.724"/>
+</g>
+<!-- k_23c10342 -->
+<!-- k_74266868->k_23c10342 -->
+<g id="edge778" class="edge"><title>k_74266868->k_23c10342</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5050.13,-973.124C5050.13,-963.301 5050.13,-951.274 5050.13,-939.923"/>
+<polygon fill="none" stroke="black" points="5053.63,-939.773 5050.13,-929.773 5046.63,-939.773 5053.63,-939.773"/>
+</g>
+<!-- k_438f81fa->k_832e9dc1 -->
+<g id="edge790" class="edge"><title>k_438f81fa:m_a29919e6:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4524.15,-980 4520.87,-971.211 4517.13,-966.5 4483.25,-923.844 4434.3,-972.424 4400.13,-930 4358.71,-878.573 4414.62,-842.035 4387.13,-782 4377.84,-761.711 4362.32,-765.852 4352.13,-746 4330.27,-703.422 4333.13,-687.862 4333.13,-640 4333.13,-640 4333.13,-640 4333.13,-548 4333.13,-494.002 4312.06,-464.194 4352.13,-428 4405.73,-379.591 4929.06,-396.668 5001.13,-392 5091.31,-386.159 5193.52,-378.527 5268.9,-372.706"/>
+<polygon fill="black" stroke="black" points="5269.19,-376.195 5278.89,-371.934 5268.65,-369.216 5269.19,-376.195"/>
+</g>
+<!-- k_438f81fa->k_6d89dff1 -->
+<g id="edge784" class="edge"><title>k_438f81fa:m_a29919e6:e->k_6d89dff1</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4631.44,-980 4662.19,-970.207 4768.13,-930 4772.04,-928.517 4776,-926.735 4779.88,-924.796"/>
+<polygon fill="black" stroke="black" points="4781.57,-927.862 4788.73,-920.058 4778.26,-921.69 4781.57,-927.862"/>
+</g>
+<!-- k_d3e53b91 -->
+<g id="node219" class="node"><title>k_d3e53b91</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4009.13,-920 3759.13,-920 3759.13,-884 4009.13,-884 4009.13,-920"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3760.13,-889 3760.13,-914 4009.13,-914 4009.13,-889 3760.13,-889"/>
+<text text-anchor="start" x="3765.13" y="-898.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">RemoteWaveletContainer$Factory</text>
+</g>
+<!-- k_438f81fa->k_d3e53b91 -->
+<g id="edge788" class="edge"><title>k_438f81fa:m_a29919e6:e->k_d3e53b91</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4524.15,-980 4521.36,-970.778 4517.13,-966.5 4483.57,-932.564 4136.57,-935.259 4089.13,-930 4066.25,-927.463 4041.97,-924.442 4018.44,-921.337"/>
+<polygon fill="black" stroke="black" points="4018.78,-917.851 4008.4,-920.002 4017.85,-924.79 4018.78,-917.851"/>
+</g>
+<!-- k_49b09b89 -->
+<g id="node221" class="node"><title>k_49b09b89</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4629.13,-920 4409.13,-920 4409.13,-884 4629.13,-884 4629.13,-920"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4410.13,-889 4410.13,-914 4629.13,-914 4629.13,-889 4410.13,-889"/>
+<text text-anchor="start" x="4415.13" y="-898.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveletNotificationSubscriber</text>
+</g>
+<!-- k_438f81fa->k_49b09b89 -->
+<g id="edge782" class="edge"><title>k_438f81fa:m_a29919e6:e->k_49b09b89</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4538.8,-980 4535.18,-952.275 4528.88,-929.884"/>
+<polygon fill="black" stroke="black" points="4532.16,-928.626 4525.88,-920.091 4525.47,-930.678 4532.16,-928.626"/>
+</g>
+<!-- k_c6883653 -->
+<g id="node222" class="node"><title>k_c6883653</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4330.13,-920 4098.13,-920 4098.13,-884 4330.13,-884 4330.13,-920"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4099.13,-889 4099.13,-914 4330.13,-914 4330.13,-889 4099.13,-889"/>
+<text text-anchor="start" x="4104.13" y="-898.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">LocalWaveletContainer$Factory</text>
+</g>
+<!-- k_438f81fa->k_c6883653 -->
+<g id="edge786" class="edge"><title>k_438f81fa:m_a29919e6:e->k_c6883653</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4611.47,-980 4443.76,-945.072 4322.58,-921.962"/>
+<polygon fill="black" stroke="black" points="4322.95,-918.47 4312.47,-920.042 4321.64,-925.347 4322.95,-918.47"/>
+</g>
+<!-- k_8359c4ca -->
+<!-- k_438f81fa->k_8359c4ca -->
+<g id="edge792" class="edge"><title>k_438f81fa:m_a29919e6:e->k_8359c4ca</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4567.29,-980 4618.44,-956.322 4654.46,-935.058"/>
+<polygon fill="black" stroke="black" points="4656.54,-937.891 4663.28,-929.72 4652.92,-931.902 4656.54,-937.891"/>
+</g>
+<!-- k_ea115295 -->
+<g id="node225" class="node"><title>k_ea115295</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3598.13,-920 3418.13,-920 3418.13,-884 3598.13,-884 3598.13,-920"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3419.13,-889 3419.13,-914 3597.13,-914 3597.13,-889 3419.13,-889"/>
+<text text-anchor="start" x="3424.13" y="-898.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">DeltaAndSnapshotStore</text>
+</g>
+<!-- k_438f81fa->k_ea115295 -->
+<g id="edge780" class="edge"><title>k_438f81fa:m_a29919e6:e->k_ea115295</title>
+<path fill="none" stroke="black" d="M4518.13,-980C4524.15,-980 4521.44,-970.698 4517.13,-966.5 4486.57,-936.736 3792.65,-933.467 3750.13,-930 3703.4,-926.189 3651.75,-920.427 3608.22,-915.12"/>
+<polygon fill="black" stroke="black" points="3608.55,-911.634 3598.2,-913.889 3607.7,-918.582 3608.55,-911.634"/>
+</g>
+<!-- i_9f16b2fc -->
+<!-- k_9f16b2fc->i_9f16b2fc -->
+<g id="edge794" class="edge"><title>k_9f16b2fc->i_9f16b2fc</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5260.13,-973.124C5260.13,-961.61 5260.13,-947.066 5260.13,-934.135"/>
+<polygon fill="none" stroke="black" points="5263.63,-933.754 5260.13,-923.754 5256.63,-933.754 5263.63,-933.754"/>
+</g>
+<!-- k_1317af22->k_beb9c197 -->
+<g id="edge798" class="edge"><title>k_1317af22:m_946dead5:e->k_beb9c197</title>
+<path fill="none" stroke="black" d="M5283.13,-1348C5313.6,-1348 5275.25,-1460.04 5254.13,-1482 5221.09,-1516.34 5197.92,-1501.73 5153.13,-1518 5147.52,-1520.04 5141.66,-1522.18 5135.82,-1524.32"/>
+<polygon fill="black" stroke="black" points="5134.23,-1521.18 5126.05,-1527.92 5136.64,-1527.75 5134.23,-1521.18"/>
+</g>
+<!-- k_b8901683 -->
+<!-- k_1317af22->k_b8901683 -->
+<g id="edge796" class="edge"><title>k_1317af22:m_946dead5:e->k_b8901683</title>
+<path fill="none" stroke="black" d="M5284.13,-1348C5363.68,-1348 5451.39,-1322.15 5511.5,-1300.22"/>
+<polygon fill="black" stroke="black" points="5512.74,-1303.49 5520.91,-1296.73 5510.31,-1296.92 5512.74,-1303.49"/>
+</g>
+<!-- k_4d67716d -->
+<!-- k_b62ee2fb->k_4d67716d -->
+<g id="edge800" class="edge"><title>k_b62ee2fb:m_c73d3a59:e->k_4d67716d</title>
+<path fill="none" stroke="black" d="M5083.13,-1348C5107.9,-1348 5085.67,-1323.91 5061.04,-1302.5"/>
+<polygon fill="black" stroke="black" points="5063.25,-1299.79 5053.37,-1295.97 5058.72,-1305.12 5063.25,-1299.79"/>
+</g>
+<!-- k_4809f459 -->
+<g id="node228" class="node"><title>k_4809f459</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4473.13,-474 4361.13,-474 4361.13,-438 4473.13,-438 4473.13,-474"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4362.13,-443 4362.13,-468 4473.13,-468 4473.13,-443 4362.13,-443"/>
+<text text-anchor="start" x="4367.13" y="-452.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">CertPathStore</text>
+</g>
+<!-- k_3b47287a->k_4809f459 -->
+<g id="edge808" class="edge"><title>k_3b47287a:m_7dc25cb3:e->k_4809f459</title>
+<path fill="none" stroke="black" d="M4763.13,-626C4769.15,-626 4766.3,-616.833 4762.13,-612.5 4660.99,-507.49 4541.54,-676.719 4436.13,-576 4411.76,-552.716 4410.41,-511.747 4412.84,-484.242"/>
+<polygon fill="black" stroke="black" points="4416.34,-484.396 4413.96,-474.073 4409.38,-483.629 4416.34,-484.396"/>
+</g>
+<!-- k_d6a04e4b -->
+<g id="node229" class="node"><title>k_d6a04e4b</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4886.13,-568.5 4636.13,-568.5 4636.13,-527.5 4886.13,-527.5 4886.13,-568.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4637.13,-528 4637.13,-567 4885.13,-567 4885.13,-528 4637.13,-528"/>
+<text text-anchor="start" x="4642.13" y="-554.167" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=waveserver_disable_verification)</text>
+<text text-anchor="start" x="4642.13" y="-539.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Boolean</text>
+</g>
+<!-- k_3b47287a->k_d6a04e4b -->
+<g id="edge802" class="edge"><title>k_3b47287a:m_7dc25cb3:e->k_d6a04e4b</title>
+<path fill="none" stroke="black" d="M4763.13,-626C4782.98,-626 4779.45,-600.437 4772.8,-578.579"/>
+<polygon fill="black" stroke="black" points="4776.06,-577.297 4769.6,-568.903 4769.42,-579.496 4776.06,-577.297"/>
+</g>
+<!-- k_3306c74d -->
+<g id="node231" class="node"><title>k_3306c74d</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5088.13,-566 4954.13,-566 4954.13,-530 5088.13,-530 5088.13,-566"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4955.13,-535 4955.13,-560 5088.13,-560 5088.13,-535 4955.13,-535"/>
+<text text-anchor="start" x="4960.13" y="-544.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">SignatureHandler</text>
+</g>
+<!-- k_3b47287a->k_3306c74d -->
+<g id="edge804" class="edge"><title>k_3b47287a:m_7dc25cb3:e->k_3306c74d</title>
+<path fill="none" stroke="black" d="M4763.13,-626C4840.5,-626 4925.55,-593.462 4976.09,-570.417"/>
+<polygon fill="black" stroke="black" points="4977.82,-573.473 4985.42,-566.091 4974.87,-567.122 4977.82,-573.473"/>
+</g>
+<!-- k_b5968e11 -->
+<!-- k_3b47287a->k_b5968e11 -->
+<g id="edge806" class="edge"><title>k_3b47287a:m_7dc25cb3:e->k_b5968e11</title>
+<path fill="none" stroke="black" d="M4763.13,-626C4769.15,-626 4765.96,-617.139 4762.13,-612.5 4722.55,-564.577 4686.97,-592.814 4627.13,-576 4627.03,-575.971 4626.93,-575.943 4626.82,-575.914"/>
+<polygon fill="black" stroke="black" points="4627.77,-572.545 4617.2,-573.193 4625.87,-579.281 4627.77,-572.545"/>
+</g>
+<!-- k_eae9eb08->k_832e9dc1 -->
+<g id="edge812" class="edge"><title>k_eae9eb08:m_5b65d1b7:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M4741.13,-1164C4772.56,-1164 4771.35,-1138.42 4791.13,-1114 4958.55,-907.256 4927.35,-798.43 5117.13,-612 5193.75,-536.726 5250.66,-564.182 5322.13,-484 5345.43,-457.857 5361.15,-420.509 5370.07,-394.446"/>
+<polygon fill="black" stroke="black" points="5373.47,-395.309 5373.27,-384.716 5366.82,-393.123 5373.47,-395.309"/>
+</g>
+<!-- k_eae9eb08->k_6d89dff1 -->
+<g id="edge810" class="edge"><title>k_eae9eb08:m_5b65d1b7:e->k_6d89dff1</title>
+<path fill="none" stroke="black" d="M4741.13,-1164C4765.27,-1164 4798.58,-997.494 4811.11,-929.957"/>
+<polygon fill="black" stroke="black" points="4814.57,-930.476 4812.93,-920.008 4807.68,-929.212 4814.57,-930.476"/>
+</g>
+<!-- k_eae9eb08->k_438f81fa -->
+<g id="edge816" class="edge"><title>k_eae9eb08:m_5b65d1b7:e->k_438f81fa</title>
+<path fill="none" stroke="black" d="M4741.13,-1164C4747.15,-1164 4744.23,-1154.9 4740.13,-1150.5 4663.92,-1068.63 4569.38,-1193.92 4491.13,-1114 4470.32,-1092.74 4467.95,-1058.26 4469.98,-1031.7"/>
+<polygon fill="black" stroke="black" points="4473.48,-1031.89 4470.99,-1021.59 4466.52,-1031.19 4473.48,-1031.89"/>
+</g>
+<!-- k_eae9eb08->k_8359c4ca -->
+<g id="edge814" class="edge"><title>k_eae9eb08:m_5b65d1b7:e->k_8359c4ca</title>
+<path fill="none" stroke="black" d="M4741.13,-1164C4763.53,-1164 4729.79,-1012.12 4712.41,-939.634"/>
+<polygon fill="black" stroke="black" points="4715.73,-938.443 4709.98,-929.543 4708.92,-940.086 4715.73,-938.443"/>
+</g>
+<!-- k_31e6def -->
+<!-- k_eae9eb08->k_31e6def -->
+<g id="edge818" class="edge"><title>k_eae9eb08:m_5b65d1b7:e->k_31e6def</title>
+<path fill="none" stroke="black" d="M4741.13,-1164C4747.15,-1164 4743.51,-1155.48 4740.13,-1150.5 4731.38,-1137.61 4719.3,-1127.21 4705.96,-1118.84"/>
+<polygon fill="black" stroke="black" points="4707.44,-1115.65 4697.04,-1113.63 4703.91,-1121.69 4707.44,-1115.65"/>
+</g>
+<!-- i_373c233a -->
+<!-- k_373c233a->i_373c233a -->
+<g id="edge820" class="edge"><title>k_373c233a->i_373c233a</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M6374.13,-345.762C6374.13,-338.162 6374.13,-328.998 6374.13,-319.899"/>
+<polygon fill="none" stroke="black" points="6377.63,-309.556 6374.13,-299.556 6370.63,-309.556 6377.63,-309.556"/>
+<polygon fill="none" stroke="black" points="6377.63,-319.556 6374.13,-309.556 6370.63,-319.556 6377.63,-319.556"/>
+</g>
+<!-- i_d3e53b91 -->
+<!-- k_d3e53b91->i_d3e53b91 -->
+<g id="edge822" class="edge"><title>k_d3e53b91->i_d3e53b91</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3865.56,-883.824C3854.44,-872.942 3839.92,-858.733 3826.6,-845.69"/>
+<polygon fill="none" stroke="black" points="3821.9,-836.192 3812.3,-831.699 3817,-841.195 3821.9,-836.192"/>
+<polygon fill="none" stroke="black" points="3829.04,-843.187 3819.45,-838.694 3824.15,-848.19 3829.04,-843.187"/>
+</g>
+<!-- k_7b6da251 -->
+<g id="node234" class="node"><title>k_7b6da251</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4029.13,-743 3941.13,-743 3941.13,-707 4029.13,-707 4029.13,-743"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3942.13,-712 3942.13,-737 4029.13,-737 4029.13,-712 3942.13,-712"/>
+<text text-anchor="start" x="3947.13" y="-721.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">DeltaStore</text>
+</g>
+<!-- i_d3e53b91->k_7b6da251 -->
+<g id="edge824" class="edge"><title>i_d3e53b91:header:e->k_7b6da251</title>
+<path fill="none" stroke="black" d="M3986.13,-809C3997.55,-809 3994.62,-777.557 3990.63,-753.146"/>
+<polygon fill="black" stroke="black" points="3994.06,-752.472 3988.89,-743.227 3987.17,-753.681 3994.06,-752.472"/>
+</g>
+<!-- k_49b09b89->k_8aea4644 -->
+<g id="edge826" class="edge"><title>k_49b09b89->k_8aea4644</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4529.8,-883.824C4536.09,-873.102 4544.28,-859.149 4551.84,-846.265"/>
+<polygon fill="none" stroke="black" points="4554.9,-847.964 4556.95,-837.568 4548.87,-844.42 4554.9,-847.964"/>
+</g>
+<!-- i_c6883653 -->
+<!-- k_c6883653->i_c6883653 -->
+<g id="edge828" class="edge"><title>k_c6883653->i_c6883653</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4209.59,-883.824C4207.25,-874.463 4204.29,-862.641 4201.43,-851.216"/>
+<polygon fill="none" stroke="black" points="4202.38,-840.551 4196.55,-831.699 4195.58,-842.249 4202.38,-840.551"/>
+<polygon fill="none" stroke="black" points="4204.8,-850.253 4198.98,-841.4 4198.01,-851.951 4204.8,-850.253"/>
+</g>
+<!-- i_c6883653->k_7b6da251 -->
+<g id="edge830" class="edge"><title>i_c6883653:header:e->k_7b6da251</title>
+<path fill="none" stroke="black" d="M4379.13,-809C4388.25,-809 4384.21,-795.299 4378.13,-788.5 4355.8,-763.534 4141.96,-739.969 4039.44,-729.997"/>
+<polygon fill="black" stroke="black" points="4039.57,-726.494 4029.28,-729.018 4038.9,-733.462 4039.57,-726.494"/>
+</g>
+<!-- k_8359c4ca->k_806c10de -->
+<g id="edge832" class="edge"><title>k_8359c4ca:m_3d5a1b27:e->k_806c10de</title>
+<path fill="none" stroke="black" d="M4760.13,-888C4767.3,-888 4762.22,-878.053 4768.13,-874 4823.06,-836.333 5008.93,-820.008 5114.76,-813.625"/>
+<polygon fill="black" stroke="black" points="5115.28,-817.101 5125.06,-813.021 5114.87,-810.113 5115.28,-817.101"/>
+</g>
+<!-- k_5b1ec499 -->
+<!-- k_ea115295->k_5b1ec499 -->
+<g id="edge834" class="edge"><title>k_ea115295->k_5b1ec499</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3498.45,-883.824C3492.79,-873.205 3485.45,-859.417 3478.64,-846.637"/>
+<polygon fill="none" stroke="black" points="3481.6,-844.749 3473.81,-837.568 3475.42,-848.039 3481.6,-844.749"/>
+</g>
+<!-- k_b8901683->k_fd02c51c -->
+<g id="edge836" class="edge"><title>k_b8901683:m_4e215f96:e->k_fd02c51c</title>
+<path fill="none" stroke="black" d="M5650.13,-1256C5736.04,-1256 5831.5,-1223.05 5887.82,-1199.99"/>
+<polygon fill="black" stroke="black" points="5889.3,-1203.16 5897.19,-1196.09 5886.61,-1196.7 5889.3,-1203.16"/>
+</g>
+<!-- k_bca5b9ba -->
+<!-- k_4809f459->k_bca5b9ba -->
+<g id="edge838" class="edge"><title>k_4809f459->k_bca5b9ba</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4373.53,-437.934C4344.45,-425.88 4305.42,-409.707 4271.29,-395.562"/>
+<polygon fill="none" stroke="black" points="4272.38,-392.226 4261.81,-391.631 4269.7,-398.693 4272.38,-392.226"/>
+</g>
+<!-- i_d6a04e4b -->
+<!-- k_d6a04e4b->i_d6a04e4b -->
+<g id="edge840" class="edge"><title>k_d6a04e4b->i_d6a04e4b</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4758.41,-527.124C4756.89,-515.494 4754.97,-500.775 4753.27,-487.747"/>
+<polygon fill="none" stroke="black" points="4756.73,-487.217 4751.97,-477.754 4749.79,-488.122 4756.73,-487.217"/>
+</g>
+<!-- k_f11c455b -->
+<!-- k_3306c74d->k_f11c455b -->
+<g id="edge842" class="edge"><title>k_3306c74d->k_f11c455b</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5031.21,-529.824C5035.78,-521.576 5041.41,-511.417 5047.02,-501.303"/>
+<polygon fill="none" stroke="black" points="5055.06,-494.011 5056.85,-483.568 5048.94,-490.617 5055.06,-494.011"/>
+<polygon fill="none" stroke="black" points="5050.21,-502.757 5052,-492.314 5044.09,-499.363 5050.21,-502.757"/>
+</g>
+<!-- k_b5968e11->k_4809f459 -->
+<g id="edge846" class="edge"><title>k_b5968e11:m_a87b4d2a:e->k_4809f459</title>
+<path fill="none" stroke="black" d="M4617.13,-534C4623.15,-534 4619.96,-525.142 4616.13,-520.5 4576.87,-472.871 4540.4,-504.372 4482.13,-484 4476.91,-482.175 4471.52,-480.127 4466.17,-477.99"/>
+<polygon fill="black" stroke="black" points="4467.23,-474.642 4456.65,-474.076 4464.57,-481.116 4467.23,-474.642"/>
+</g>
+<!-- k_2b038944 -->
+<g id="node238" class="node"><title>k_2b038944</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4667.13,-474 4491.13,-474 4491.13,-438 4667.13,-438 4667.13,-474"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4492.13,-443 4492.13,-468 4666.13,-468 4666.13,-443 4492.13,-443"/>
+<text text-anchor="start" x="4497.13" y="-452.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">WaveCertPathValidator</text>
+</g>
+<!-- k_b5968e11->k_2b038944 -->
+<g id="edge844" class="edge"><title>k_b5968e11:m_a87b4d2a:e->k_2b038944</title>
+<path fill="none" stroke="black" d="M4617.13,-534C4628.83,-534 4612.33,-505.267 4597.55,-482.68"/>
+<polygon fill="black" stroke="black" points="4600.29,-480.471 4591.83,-474.091 4594.46,-484.353 4600.29,-480.471"/>
+</g>
+<!-- k_31e6def->k_438f81fa -->
+<g id="edge848" class="edge"><title>k_31e6def:m_bf9bd871:e->k_438f81fa</title>
+<path fill="none" stroke="black" d="M4715.13,-1072C4721.15,-1072 4717.96,-1063.14 4714.13,-1058.5 4690.54,-1029.92 4590.02,-1010.5 4527.4,-1000.92"/>
+<polygon fill="black" stroke="black" points="4527.73,-997.428 4517.32,-999.41 4526.69,-1004.35 4527.73,-997.428"/>
+</g>
+<!-- k_81307a7 -->
+<!-- k_7b6da251->k_81307a7 -->
+<g id="edge850" class="edge"><title>k_7b6da251->k_81307a7</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M3985.13,-706.974C3985.13,-698.51 3985.13,-688.083 3985.13,-677.997"/>
+<polygon fill="none" stroke="black" points="3988.63,-677.707 3985.13,-667.707 3981.63,-677.707 3988.63,-677.707"/>
+</g>
+<!-- k_5b1ec499->k_7b6da251 -->
+<g id="edge852" class="edge"><title>k_5b1ec499:m_f7ad7a10:e->k_7b6da251</title>
+<path fill="none" stroke="black" d="M3576.13,-796C3583.53,-796 3578.9,-785.995 3585.13,-782 3641.31,-745.952 3835.03,-731.999 3930.74,-727.212"/>
+<polygon fill="black" stroke="black" points="3930.98,-730.705 3940.8,-726.725 3930.64,-723.713 3930.98,-730.705"/>
+</g>
+<!-- k_be15848 -->
+<g id="node241" class="node"><title>k_be15848</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4382.13,-298.5 4154.13,-298.5 4154.13,-257.5 4382.13,-257.5 4382.13,-298.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4155.13,-258 4155.13,-297 4382.13,-297 4382.13,-258 4155.13,-258"/>
+<text text-anchor="start" x="4160.13" y="-284.167" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=signer_info_store_directory)</text>
+<text text-anchor="start" x="4160.13" y="-269.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">String</text>
+</g>
+<!-- k_bca5b9ba->k_be15848 -->
+<g id="edge854" class="edge"><title>k_bca5b9ba:m_d805501f:e->k_be15848</title>
+<path fill="none" stroke="black" d="M4269.13,-350C4277.91,-350 4276.75,-328.31 4273.92,-308.74"/>
+<polygon fill="black" stroke="black" points="4277.37,-308.145 4272.33,-298.825 4270.46,-309.254 4277.37,-308.145"/>
+</g>
+<!-- k_f11c455b->k_832e9dc1 -->
+<g id="edge856" class="edge"><title>k_f11c455b:m_6c0a518:e->k_832e9dc1</title>
+<path fill="none" stroke="black" d="M5314.13,-442C5315.79,-442 5337.97,-415.036 5355.96,-392.816"/>
+<polygon fill="black" stroke="black" points="5358.79,-394.88 5362.36,-384.903 5353.35,-390.48 5358.79,-394.88"/>
+</g>
+<!-- i_2b038944 -->
+<!-- k_2b038944->i_2b038944 -->
+<g id="edge858" class="edge"><title>k_2b038944->i_2b038944</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4590.98,-437.824C4597.55,-427.761 4605.96,-414.853 4613.92,-402.653"/>
+<polygon fill="none" stroke="black" points="4622.45,-395.987 4624.98,-385.699 4616.58,-392.163 4622.45,-395.987"/>
+<polygon fill="none" stroke="black" points="4616.98,-404.363 4619.52,-394.075 4611.12,-400.539 4616.98,-404.363"/>
+</g>
+<!-- k_c144b24a -->
+<g id="node243" class="node"><title>k_c144b24a</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4945.13,-298.5 4661.13,-298.5 4661.13,-257.5 4945.13,-257.5 4945.13,-298.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4662.13,-258 4662.13,-297 4944.13,-297 4944.13,-258 4662.13,-258"/>
+<text text-anchor="start" x="4667.13" y="-284.167" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=waveserver_disable_signer_verification)</text>
+<text text-anchor="start" x="4667.13" y="-269.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">Boolean</text>
+</g>
+<!-- i_2b038944->k_c144b24a -->
+<g id="edge860" class="edge"><title>i_2b038944:header:e->k_c144b24a</title>
+<path fill="none" stroke="black" d="M4992.13,-363C5001.25,-363 4996.61,-349.792 4991.13,-342.5 4979.42,-326.925 4941.46,-312.539 4902.69,-301.325"/>
+<polygon fill="black" stroke="black" points="4903.4,-297.89 4892.82,-298.544 4901.5,-304.627 4903.4,-297.89"/>
+</g>
+<!-- k_73ddde3c -->
+<g id="node245" class="node"><title>k_73ddde3c</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5139.13,-296 4963.13,-296 4963.13,-260 5139.13,-260 5139.13,-296"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4964.13,-265 4964.13,-290 5139.13,-290 5139.13,-265 4964.13,-265"/>
+<text text-anchor="start" x="4969.13" y="-274.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">VerifiedCertChainCache</text>
+</g>
+<!-- i_2b038944->k_73ddde3c -->
+<g id="edge864" class="edge"><title>i_2b038944:header:e->k_73ddde3c</title>
+<path fill="none" stroke="black" d="M4992.13,-363C5020.55,-363 5036.37,-330.538 5044.32,-305.737"/>
+<polygon fill="black" stroke="black" points="5047.71,-306.607 5047.17,-296.026 5040.99,-304.637 5047.71,-306.607"/>
+</g>
+<!-- k_628f41ae -->
+<g id="node246" class="node"><title>k_628f41ae</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="5195.13,-128 5101.13,-128 5101.13,-92 5195.13,-92 5195.13,-128"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="5102.13,-97 5102.13,-122 5194.13,-122 5194.13,-97 5102.13,-97"/>
+<text text-anchor="start" x="5107.13" y="-106.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">TimeSource</text>
+</g>
+<!-- i_2b038944->k_628f41ae -->
+<g id="edge862" class="edge"><title>i_2b038944:header:e->k_628f41ae</title>
+<path fill="none" stroke="black" d="M4992.13,-363C5066.9,-363 5106.31,-361.987 5148.13,-300 5181.15,-251.051 5167.99,-177.659 5157.09,-137.94"/>
+<polygon fill="black" stroke="black" points="5160.4,-136.774 5154.26,-128.14 5153.67,-138.718 5160.4,-136.774"/>
+</g>
+<!-- k_27e9999 -->
+<g id="node247" class="node"><title>k_27e9999</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4643.13,-296 4499.13,-296 4499.13,-260 4643.13,-260 4643.13,-296"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="4500.13,-265 4500.13,-290 4642.13,-290 4642.13,-265 4500.13,-265"/>
+<text text-anchor="start" x="4505.13" y="-274.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">TrustRootsProvider</text>
+</g>
+<!-- i_2b038944->k_27e9999 -->
+<g id="edge866" class="edge"><title>i_2b038944:header:e->k_27e9999</title>
+<path fill="none" stroke="black" d="M4992.13,-363C5001.25,-363 4997.33,-349.191 4991.13,-342.5 4939.52,-286.814 4726.61,-314.709 4652.13,-300 4649.47,-299.476 4646.78,-298.911 4644.06,-298.316"/>
+<polygon fill="black" stroke="black" points="4644.69,-294.87 4634.16,-296.039 4643.12,-301.692 4644.69,-294.87"/>
+</g>
+<!-- k_d6dbed53 -->
+<g id="node248" class="node"><title>k_d6dbed53</title>
+<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="4141.13,-568.5 3941.13,-568.5 3941.13,-527.5 4141.13,-527.5 4141.13,-568.5"/>
+<polygon fill="#ffffff" stroke="#ffffff" points="3942.13,-528 3942.13,-567 4141.13,-567 4141.13,-528 3942.13,-528"/>
+<text text-anchor="start" x="3947.13" y="-554.167" font-family="Times Roman,serif" font-size="10.00" fill="#000000">@Named(value=delta_store_directory)</text>
+<text text-anchor="start" x="3947.13" y="-539.233" font-family="Times Roman,serif" font-size="14.00" fill="#000000">String</text>
+</g>
+<!-- k_81307a7->k_d6dbed53 -->
+<g id="edge868" class="edge"><title>k_81307a7:m_408652f3:e->k_d6dbed53</title>
+<path fill="none" stroke="black" d="M4042.13,-626C4061.98,-626 4058.77,-600.437 4052.4,-578.579"/>
+<polygon fill="black" stroke="black" points="4055.69,-577.372 4049.33,-568.903 4049.02,-579.493 4055.69,-577.372"/>
+</g>
+<!-- i_be15848 -->
+<!-- k_be15848->i_be15848 -->
+<g id="edge870" class="edge"><title>k_be15848->i_be15848</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4268.13,-257.182C4268.13,-247.161 4268.13,-234.927 4268.13,-223.776"/>
+<polygon fill="none" stroke="black" points="4271.63,-223.525 4268.13,-213.525 4264.63,-223.525 4271.63,-223.525"/>
+</g>
+<!-- i_c144b24a -->
+<!-- k_c144b24a->i_c144b24a -->
+<g id="edge872" class="edge"><title>k_c144b24a->i_c144b24a</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4803.13,-257.182C4803.13,-247.161 4803.13,-234.927 4803.13,-223.776"/>
+<polygon fill="none" stroke="black" points="4806.63,-223.525 4803.13,-213.525 4799.63,-223.525 4806.63,-223.525"/>
+</g>
+<!-- k_8a5fcfd2 -->
+<!-- k_73ddde3c->k_8a5fcfd2 -->
+<g id="edge874" class="edge"><title>k_73ddde3c->k_8a5fcfd2</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5053.25,-259.762C5054.27,-251.035 5055.52,-240.243 5056.73,-229.858"/>
+<polygon fill="none" stroke="black" points="5060.23,-230.037 5057.91,-219.699 5053.28,-229.228 5060.23,-230.037"/>
+</g>
+<!-- k_d749c4a9 -->
+<!-- k_628f41ae->k_d749c4a9 -->
+<g id="edge876" class="edge"><title>k_628f41ae->k_d749c4a9</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M5148.13,-91.8015C5148.13,-84.0539 5148.13,-74.7135 5148.13,-65.5988"/>
+<polygon fill="none" stroke="black" points="5151.63,-65.5008 5148.13,-55.5008 5144.63,-65.5009 5151.63,-65.5008"/>
+</g>
+<!-- k_5e508810 -->
+<!-- k_27e9999->k_5e508810 -->
+<g id="edge878" class="edge"><title>k_27e9999->k_5e508810</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4571.13,-259.762C4571.13,-251.035 4571.13,-240.243 4571.13,-229.858"/>
+<polygon fill="none" stroke="black" points="4574.63,-229.699 4571.13,-219.699 4567.63,-229.699 4574.63,-229.699"/>
+</g>
+<!-- i_d6dbed53 -->
+<!-- k_d6dbed53->i_d6dbed53 -->
+<g id="edge880" class="edge"><title>k_d6dbed53->i_d6dbed53</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M4041.13,-527.124C4041.13,-515.61 4041.13,-501.066 4041.13,-488.135"/>
+<polygon fill="none" stroke="black" points="4044.63,-487.754 4041.13,-477.754 4037.63,-487.754 4044.63,-487.754"/>
+</g>
+<!-- k_8a5fcfd2->k_628f41ae -->
+<g id="edge882" class="edge"><title>k_8a5fcfd2:m_5a8716ec:e->k_628f41ae</title>
+<path fill="none" stroke="black" d="M5130.13,-178C5147.46,-178 5151.11,-157.097 5150.92,-138.47"/>
+<polygon fill="black" stroke="black" points="5154.4,-138.056 5150.46,-128.223 5147.41,-138.37 5154.4,-138.056"/>
+</g>
+</g>
+</svg>
Added: trunk/docs/wave-guice-graph.dot
===================================================================
--- trunk/docs/wave-guice-graph.dot (rev 0)
+++ trunk/docs/wave-guice-graph.dot 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,254 @@
+digraph injector {
+graph [rankdir=TB];
+k_5206913e [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@FederationRemoteBridge<br align="left"/></font><font color="#000000">WaveletFederationListener$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+k_d7413b29 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@FederationHostBridge<br align="left"/></font><font color="#000000">WaveletFederationProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_4e3cfd49 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TimeSource<br align="left"/></font></td></tr></table>>, shape=box]
+k_7c3a84a [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SignatureHandler<br align="left"/></font></td></tr></table>>, shape=box]
+k_28873eb1 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveSignatureVerifier<br align="left"/></font></td></tr><tr><td align="left" port="m_a87b4d2a"><init></td></tr></table>>, shape=box]
+k_2845e07 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">VerifiedCertChainCache<br align="left"/></font></td></tr></table>>, shape=box]
+k_d073cdd5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultCacheImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_5a8716ec"><init></td></tr></table>>, shape=box]
+k_a32471fe [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveBus<br align="left"/></font></td></tr></table>>, shape=box]
+k_ab27ace4 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveletNotificationSubscriber<br align="left"/></font></td></tr></table>>, shape=box]
+k_6bad9e01 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TrustRootsProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_f7d047b9 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">CertificateManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_2050c643 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">DeltaAndSnapshotStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_74c3c0d2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SearchProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_66a99b94 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveletProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_6e4268e [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">HashedVersionFactory<br align="left"/></font></td></tr></table>>, shape=box]
+i_6e4268e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:105<br align="left"/></font><font color="#ffffff">HashedVersionFactoryImpl<br align="left"/></font></td></tr></table>>, shape=box]
+k_ca34da5f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=listener_executor)<br align="left"/></font><font color="#000000">Executor<br align="left"/></font></td></tr></table>>, shape=box]
+i_ca34da5f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:106<br align="left"/></font><font color="#ffffff">ThreadPoolExecutor<br align="left"/></font></td></tr></table>>, shape=box]
+k_7b747c12 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">LocalWaveletContainer$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+i_7b747c12 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:56<br align="left"/></font><font color="#ffffff">#provideLocalWaveletContainerFactory(DeltaStore)<br align="left"/></font></td></tr></table>>, shape=box]
+k_218c2334 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RemoteWaveletContainer$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+i_218c2334 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:56<br align="left"/></font><font color="#ffffff">#provideRemoteWaveletContainerFactory(DeltaStore)<br align="left"/></font></td></tr></table>>, shape=box]
+k_e19e23b5 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">WaveCertPathValidator<br align="left"/></font></td></tr></table>>, shape=box]
+i_e19e23b5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">WaveServerModule.java:56<br align="left"/></font><font color="#ffffff">#provideWaveCertPathValidator(boolean, TimeSource, VerifiedCertChainCache, TrustRootsProvider)<br align="left"/></font></td></tr></table>>, shape=box]
+k_fe215264 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=certs)<br align="left"/></font><font color="#000000">List<String><br align="left"/></font></td></tr></table>>, shape=box]
+i_fe215264 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:86<br align="left"/></font><font color="#ffffff">[]<br align="left"/></font></td></tr></table>>, shape=box]
+k_b4448035 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">Configuration<br align="left"/></font></td></tr></table>>, shape=box]
+i_b4448035 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:90<br align="left"/></font><font color="#ffffff">ConfigFile<br align="left"/></font></td></tr></table>>, shape=box]
+k_f1928bf8 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SessionManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_3e09faf2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SessionManager<br align="left"/></font></td></tr></table>>, shape=box]
+k_c0398744 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RobotRegistrar<br align="left"/></font></td></tr></table>>, shape=box]
+k_140c93ab [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">IdGenerator<br align="left"/></font></td></tr></table>>, shape=box]
+i_140c93ab [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:106<br align="left"/></font><font color="#ffffff">#provideIdGenerator(String, Seed)<br align="left"/></font></td></tr></table>>, shape=box]
+k_c3234f04 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">SecureRandom<br align="left"/></font></td></tr></table>>, shape=box]
+i_c3234f04 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:112<br align="left"/></font><font color="#ffffff">#provideSecureRandom()<br align="left"/></font></td></tr></table>>, shape=box]
+k_c089fc31 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">TokenGenerator<br align="left"/></font></td></tr></table>>, shape=box]
+i_c089fc31 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:119<br align="left"/></font><font color="#ffffff">#provideTokenGenerator(SecureRandom)<br align="left"/></font></td></tr></table>>, shape=box]
+k_33570740 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">IdGeneratorImpl$Seed<br align="left"/></font></td></tr></table>>, shape=box]
+i_33570740 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">ServerModule.java:126<br align="left"/></font><font color="#ffffff">#provideSeed(SecureRandom)<br align="left"/></font></td></tr></table>>, shape=box]
+k_7034c7d2 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">EventDataConverterManager<br align="left"/></font></td></tr></table>>, shape=box]
+i_7034c7d2 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">EventDataConverterModule.java:43<br align="left"/></font><font color="#ffffff">#provideEventDataConverterManager()<br align="left"/></font></td></tr></table>>, shape=box]
+k_b62d731b [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RobotSerializer<br align="left"/></font></td></tr></table>>, shape=box]
+i_b62d731b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotSerializerModule.java:46<br align="left"/></font><font color="#ffffff">#provideRobotSerializer()<br align="left"/></font></td></tr></table>>, shape=box]
+k_e8fb7071 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=authorize_token_path)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_e8fb7071 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:68<br align="left"/></font><font color="#ffffff">"/OAuthAuthorizeToken"<br align="left"/></font></td></tr></table>>, shape=box]
+k_f0bb7df7 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=request_token_path)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_f0bb7df7 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:70<br align="left"/></font><font color="#ffffff">"/OAuthGetRequestToken"<br align="left"/></font></td></tr></table>>, shape=box]
+k_6af4580c [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=access_token_path)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_6af4580c [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:72<br align="left"/></font><font color="#ffffff">"/OAuthGetAccessToken"<br align="left"/></font></td></tr></table>>, shape=box]
+k_f907821 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RobotConnector<br align="left"/></font></td></tr></table>>, shape=box]
+i_f907821 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:81<br align="left"/></font><font color="#ffffff">#provideRobotConnector(RobotConnection, RobotSerializer)<br align="left"/></font></td></tr></table>>, shape=box]
+k_7279ac52 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">RobotConnection<br align="left"/></font></td></tr></table>>, shape=box]
+i_7279ac52 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:87<br align="left"/></font><font color="#ffffff">#provideRobotConnection()<br align="left"/></font></td></tr></table>>, shape=box]
+k_85eb8186 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=GatewayExecutor)<br align="left"/></font><font color="#000000">Executor<br align="left"/></font></td></tr></table>>, shape=box]
+i_85eb8186 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:99<br align="left"/></font><font color="#ffffff">#provideGatewayExecutor()<br align="left"/></font></td></tr></table>>, shape=box]
+k_45c331f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=ActiveApiRegistry)<br align="left"/></font><font color="#000000">OperationServiceRegistry<br align="left"/></font></td></tr></table>>, shape=box]
+i_45c331f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:109<br align="left"/></font><font color="#ffffff">#provideActiveApiRegistry(NotifyOperationService)<br align="left"/></font></td></tr></table>>, shape=box]
+k_5ecb29e3 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=DataApiRegistry)<br align="left"/></font><font color="#000000">OperationServiceRegistry<br align="left"/></font></td></tr></table>>, shape=box]
+i_5ecb29e3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:117<br align="left"/></font><font color="#ffffff">#provideDataApiRegistry(SearchService)<br align="left"/></font></td></tr></table>>, shape=box]
+k_410c2a1b [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">OAuthValidator<br align="left"/></font></td></tr></table>>, shape=box]
+i_410c2a1b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:125<br align="left"/></font><font color="#ffffff">#provideOAuthValidator()<br align="left"/></font></td></tr></table>>, shape=box]
+k_e773e20e [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">OAuthServiceProvider<br align="left"/></font></td></tr></table>>, shape=box]
+i_e773e20e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">RobotApiModule.java:135<br align="left"/></font><font color="#ffffff">#provideOAuthServiceProvider(String)<br align="left"/></font></td></tr></table>>, shape=box]
+k_9831ace4 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@FederationRemoteBridge<br align="left"/></font><font color="#000000">WaveletFederationProvider<br align="left"/></font></td></tr></table>>, shape=box]
+k_91161f83 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@FederationHostBridge<br align="left"/></font><font color="#000000">WaveletFederationListener$Factory<br align="left"/></font></td></tr></table>>, shape=box]
+k_e2a7bed0 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">FederationTransport<br align="left"/></font></td></tr></table>>, shape=box]
+k_52a8a871 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">CertPathStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_fe671237 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">AttachmentStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_107a33fb [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">AccountStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_556cc59f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000">DeltaStore<br align="left"/></font></td></tr></table>>, shape=box]
+k_2721f26b [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveletNotificationDispatcher<br align="left"/></font></td></tr><tr><td align="left" port="m_72bb3f17"><init></td></tr></table>>, shape=box]
+k_73658105 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveMap<br align="left"/></font></td></tr><tr><td align="left" port="m_a29919e6"><init></td></tr></table>>, shape=box]
+k_53cbb880 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ProtoSerializer<br align="left"/></font></td></tr><tr><td align="left" port="m_a1715b3c"><init></td></tr></table>>, shape=box]
+k_8b5bb722 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ServerRpcProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_e92070d5"><init></td></tr></table>>, shape=box]
+k_744f2334 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveServerImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_3065e839"><init></td></tr></table>>, shape=box]
+k_fbd16a34 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultTimeSource<br align="left"/></font></td></tr><tr><td align="left" port="m_24dcbc5e"><init></td></tr></table>>, shape=box]
+k_70d75d3e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NonSigningSignatureHandler$NonSigningSignatureHandlerProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_6c0a518"><init></td></tr></table>>, shape=box]
+k_2288b0a9 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DefaultTrustRootsProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_518d5280"><init></td></tr></table>>, shape=box]
+k_dbdd067e [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">CertificateManagerImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_7dc25cb3"><init></td></tr></table>>, shape=box]
+k_a7dbb996 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">DeltaStoreBasedSnapshotStore<br align="left"/></font></td></tr><tr><td align="left" port="m_f7ad7a10"><init></td></tr></table>>, shape=box]
+k_5293dba6 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">MemorySearchProvider<br align="left"/></font></td></tr><tr><td align="left" port="m_5b65d1b7"><init></td></tr></table>>, shape=box]
+k_ae676420 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=waveserver_disable_signer_verification)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_ae676420 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">true<br align="left"/></font></td></tr></table>>, shape=box]
+k_81bf39cf [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SessionManagerImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_bc6356d8"><init></td></tr></table>>, shape=box]
+k_a0ee12e3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">HashSessionManager<br align="left"/></font></td></tr><tr><td align="left" port="m_54776227"><init></td></tr></table>>, shape=box]
+k_b3ed662 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">RobotRegistrarImpl<br align="left"/></font></td></tr><tr><td align="left" port="m_6c669f5e"><init></td></tr></table>>, shape=box]
+k_bbcefa18 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=wave_server_domain)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_bbcefa18 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"localhost"<br align="left"/></font></td></tr></table>>, shape=box]
+k_532d3e82 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NotifyOperationService<br align="left"/></font></td></tr><tr><td align="left" port="m_23e9a4c9"><init></td></tr></table>>, shape=box]
+k_f801e1f1 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">SearchService<br align="left"/></font></td></tr><tr><td align="left" port="m_22b30b9b"><init></td></tr></table>>, shape=box]
+k_9d976cde [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=http_frontend_public_address)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_9d976cde [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"localhost:8888"<br align="left"/></font></td></tr></table>>, shape=box]
+k_c5aa0274 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NoOpFederationRemote<br align="left"/></font></td></tr><tr><td align="left" port="m_8c82dc4e"><init></td></tr></table>>, shape=box]
+k_c9a11a3 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NoOpFederationHost<br align="left"/></font></td></tr><tr><td align="left" port="m_dba23bb0"><init></td></tr></table>>, shape=box]
+k_49848daa [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">NoOpFederationTransport<br align="left"/></font></td></tr><tr><td align="left" port="m_62d43621"><init></td></tr></table>>, shape=box]
+k_928bb0fd [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileSignerInfoStore<br align="left"/></font></td></tr><tr><td align="left" port="m_d805501f"><init></td></tr></table>>, shape=box]
+k_ed47c2a9 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileAttachmentStore<br align="left"/></font></td></tr><tr><td align="left" port="m_2188bcd4"><init></td></tr></table>>, shape=box]
+k_6b87e61f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileAccountStore<br align="left"/></font></td></tr><tr><td align="left" port="m_2bca331e"><init></td></tr></table>>, shape=box]
+k_8823a3e5 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">FileDeltaStore<br align="left"/></font></td></tr><tr><td align="left" port="m_408652f3"><init></td></tr></table>>, shape=box]
+k_6d08d305 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">WaveDigester<br align="left"/></font></td></tr><tr><td align="left" port="m_3d5a1b27"><init></td></tr></table>>, shape=box]
+k_31620886 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=enable_ssl)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_31620886 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">false<br align="left"/></font></td></tr></table>>, shape=box]
+k_51dec085 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=sessions_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_51dec085 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_sessions"<br align="left"/></font></td></tr></table>>, shape=box]
+k_5ee5c667 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=http_frontend_addresses)<br align="left"/></font><font color="#000000">List<String><br align="left"/></font></td></tr></table>>, shape=box]
+i_5ee5c667 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:188<br align="left"/></font><font color="#ffffff">[localhost:8888]<br align="left"/></font></td></tr></table>>, shape=box]
+k_1275d402 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=resource_bases)<br align="left"/></font><font color="#000000">List<String><br align="left"/></font></td></tr></table>>, shape=box]
+i_1275d402 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:188<br align="left"/></font><font color="#ffffff">[target/kune-0.1.0-SNAPSHOT/, src/main/webapp/]<br align="left"/></font></td></tr></table>>, shape=box]
+k_dcaff08d [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=ssl_keystore_password)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_dcaff08d [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"fafafa"<br align="left"/></font></td></tr></table>>, shape=box]
+k_77c98103 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=ssl_keystore_path)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_77c98103 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"src/main/resources/wiab.ks"<br align="left"/></font></td></tr></table>>, shape=box]
+k_feb78535 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=flashsocket_policy_port)<br align="left"/></font><font color="#000000">Integer<br align="left"/></font></td></tr></table>>, shape=box]
+i_feb78535 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:171<br align="left"/></font><font color="#ffffff">843<br align="left"/></font></td></tr></table>>, shape=box]
+k_c3c30021 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=waveserver_disable_verification)<br align="left"/></font><font color="#000000">Boolean<br align="left"/></font></td></tr></table>>, shape=box]
+i_c3c30021 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:178<br align="left"/></font><font color="#ffffff">true<br align="left"/></font></td></tr></table>>, shape=box]
+k_4ff24fca [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">PerUserWaveViewSubscriber<br align="left"/></font></td></tr><tr><td align="left" port="m_bf9bd871"><init></td></tr></table>>, shape=box]
+k_4481b49f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=signer_info_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_4481b49f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_certificates"<br align="left"/></font></td></tr></table>>, shape=box]
+k_b1d0731f [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=attachment_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_b1d0731f [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_attachments"<br align="left"/></font></td></tr></table>>, shape=box]
+k_50cd9615 [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=account_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_50cd9615 [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_accounts"<br align="left"/></font></td></tr></table>>, shape=box]
+k_f7c49aa [style=dashed, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="0" border="0"><tr><td align="left" port="header" bgcolor="#ffffff"><font color="#000000" point-size="10">@Named(value=delta_store_directory)<br align="left"/></font><font color="#000000">String<br align="left"/></font></td></tr></table>>, shape=box]
+i_f7c49aa [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#aaaaaa"><font color="#ffffff" point-size="10">SettingsBinder.java:181<br align="left"/></font><font color="#ffffff">"/var/lib/kune/_deltas"<br align="left"/></font></td></tr></table>>, shape=box]
+k_c5f43fe [style=invis, margin=0.02,0, label=<<table cellspacing="0" cellpadding="5" cellborder="1" border="0"><tr><td align="left" port="header" bgcolor="#000000"><font color="#ffffff">ConversationUtil<br align="left"/></font></td></tr><tr><td align="left" port="m_cb039b61"><init></td></tr></table>>, shape=box]
+k_5206913e -> k_744f2334 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d7413b29 -> k_744f2334 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4e3cfd49 -> k_fbd16a34 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_7c3a84a -> k_70d75d3e [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_28873eb1:m_a87b4d2a:e -> k_e19e23b5 [style=solid, arrowtail=none, arrowhead=normal]
+k_28873eb1:m_a87b4d2a:e -> k_52a8a871 [style=solid, arrowtail=none, arrowhead=normal]
+k_2845e07 -> k_d073cdd5 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_d073cdd5:m_5a8716ec:e -> k_4e3cfd49 [style=solid, arrowtail=none, arrowhead=normal]
+k_a32471fe -> k_2721f26b [style=dashed, arrowtail=none, arrowhead=onormal]
+k_ab27ace4 -> k_2721f26b [style=dashed, arrowtail=none, arrowhead=onormal]
+k_6bad9e01 -> k_2288b0a9 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f7d047b9 -> k_dbdd067e [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2050c643 -> k_a7dbb996 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_74c3c0d2 -> k_5293dba6 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_66a99b94 -> k_744f2334 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_6e4268e -> i_6e4268e [style=dashed, arrowtail=none, arrowhead=onormal]
+k_ca34da5f -> i_ca34da5f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_7b747c12 -> i_7b747c12 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_7b747c12:header:e -> k_556cc59f [style=solid, arrowtail=none, arrowhead=normal]
+k_218c2334 -> i_218c2334 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_218c2334:header:e -> k_556cc59f [style=solid, arrowtail=none, arrowhead=normal]
+k_e19e23b5 -> i_e19e23b5 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_e19e23b5:header:e -> k_ae676420 [style=solid, arrowtail=none, arrowhead=normal]
+i_e19e23b5:header:e -> k_4e3cfd49 [style=solid, arrowtail=none, arrowhead=normal]
+i_e19e23b5:header:e -> k_2845e07 [style=solid, arrowtail=none, arrowhead=normal]
+i_e19e23b5:header:e -> k_6bad9e01 [style=solid, arrowtail=none, arrowhead=normal]
+k_fe215264 -> i_fe215264 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_b4448035 -> i_b4448035 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f1928bf8 -> k_81bf39cf [style=dashed, arrowtail=none, arrowhead=onormal]
+k_3e09faf2 -> k_a0ee12e3 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_c0398744 -> k_b3ed662 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_140c93ab -> i_140c93ab [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_140c93ab:header:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+i_140c93ab:header:e -> k_33570740 [style=solid, arrowtail=none, arrowhead=normal]
+k_c3234f04 -> i_c3234f04 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_c089fc31 -> i_c089fc31 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_c089fc31:header:e -> k_c3234f04 [style=solid, arrowtail=none, arrowhead=normal]
+k_33570740 -> i_33570740 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_33570740:header:e -> k_c3234f04 [style=solid, arrowtail=none, arrowhead=normal]
+k_7034c7d2 -> i_7034c7d2 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_b62d731b -> i_b62d731b [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_e8fb7071 -> i_e8fb7071 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f0bb7df7 -> i_f0bb7df7 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_6af4580c -> i_6af4580c [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f907821 -> i_f907821 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_f907821:header:e -> k_7279ac52 [style=solid, arrowtail=none, arrowhead=normal]
+i_f907821:header:e -> k_b62d731b [style=solid, arrowtail=none, arrowhead=normal]
+k_7279ac52 -> i_7279ac52 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_85eb8186 -> i_85eb8186 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_45c331f -> i_45c331f [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_45c331f:header:e -> k_532d3e82 [style=solid, arrowtail=none, arrowhead=normal]
+k_5ecb29e3 -> i_5ecb29e3 [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_5ecb29e3:header:e -> k_f801e1f1 [style=solid, arrowtail=none, arrowhead=normal]
+k_410c2a1b -> i_410c2a1b [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+k_e773e20e -> i_e773e20e [style=dashed, arrowtail=none, arrowhead=onormalonormal]
+i_e773e20e:header:e -> k_9d976cde [style=solid, arrowtail=none, arrowhead=normal]
+k_9831ace4 -> k_c5aa0274 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_91161f83 -> k_c9a11a3 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_e2a7bed0 -> k_49848daa [style=dashed, arrowtail=none, arrowhead=onormal]
+k_52a8a871 -> k_928bb0fd [style=dashed, arrowtail=none, arrowhead=onormal]
+k_fe671237 -> k_ed47c2a9 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_107a33fb -> k_6b87e61f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_556cc59f -> k_8823a3e5 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_2721f26b:m_72bb3f17:e -> k_f7d047b9 [style=solid, arrowtail=none, arrowhead=normal]
+k_2721f26b:m_72bb3f17:e -> k_91161f83 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_2050c643 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_ab27ace4 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_a32471fe [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_7b747c12 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_218c2334 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_73658105:m_a29919e6:e -> k_6d08d305 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_5ee5c667 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_feb78535 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_1275d402 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_f1928bf8 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_3e09faf2 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_51dec085 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_31620886 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_77c98103 [style=solid, arrowtail=none, arrowhead=normal]
+k_8b5bb722:m_e92070d5:e -> k_dcaff08d [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_ca34da5f [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_f7d047b9 [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_9831ace4 [style=solid, arrowtail=none, arrowhead=normal]
+k_744f2334:m_3065e839:e -> k_73658105 [style=solid, arrowtail=none, arrowhead=normal]
+k_70d75d3e:m_6c0a518:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_c3c30021 [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_7c3a84a [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_28873eb1 [style=solid, arrowtail=none, arrowhead=normal]
+k_dbdd067e:m_7dc25cb3:e -> k_52a8a871 [style=solid, arrowtail=none, arrowhead=normal]
+k_a7dbb996:m_f7ad7a10:e -> k_556cc59f [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_a32471fe [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_bbcefa18 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_6d08d305 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_73658105 [style=solid, arrowtail=none, arrowhead=normal]
+k_5293dba6:m_5b65d1b7:e -> k_4ff24fca [style=solid, arrowtail=none, arrowhead=normal]
+k_ae676420 -> i_ae676420 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_81bf39cf:m_bc6356d8:e -> k_107a33fb [style=solid, arrowtail=none, arrowhead=normal]
+k_81bf39cf:m_bc6356d8:e -> k_3e09faf2 [style=solid, arrowtail=none, arrowhead=normal]
+k_b3ed662:m_6c669f5e:e -> k_107a33fb [style=solid, arrowtail=none, arrowhead=normal]
+k_b3ed662:m_6c669f5e:e -> k_c089fc31 [style=solid, arrowtail=none, arrowhead=normal]
+k_bbcefa18 -> i_bbcefa18 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_532d3e82:m_23e9a4c9:e -> k_107a33fb [style=solid, arrowtail=none, arrowhead=normal]
+k_532d3e82:m_23e9a4c9:e -> k_f907821 [style=solid, arrowtail=none, arrowhead=normal]
+k_f801e1f1:m_22b30b9b:e -> k_74c3c0d2 [style=solid, arrowtail=none, arrowhead=normal]
+k_9d976cde -> i_9d976cde [style=dashed, arrowtail=none, arrowhead=onormal]
+k_928bb0fd:m_d805501f:e -> k_4481b49f [style=solid, arrowtail=none, arrowhead=normal]
+k_ed47c2a9:m_2188bcd4:e -> k_b1d0731f [style=solid, arrowtail=none, arrowhead=normal]
+k_6b87e61f:m_2bca331e:e -> k_50cd9615 [style=solid, arrowtail=none, arrowhead=normal]
+k_8823a3e5:m_408652f3:e -> k_f7c49aa [style=solid, arrowtail=none, arrowhead=normal]
+k_6d08d305:m_3d5a1b27:e -> k_c5f43fe [style=solid, arrowtail=none, arrowhead=normal]
+k_31620886 -> i_31620886 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_51dec085 -> i_51dec085 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_5ee5c667 -> i_5ee5c667 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_1275d402 -> i_1275d402 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_dcaff08d -> i_dcaff08d [style=dashed, arrowtail=none, arrowhead=onormal]
+k_77c98103 -> i_77c98103 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_feb78535 -> i_feb78535 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_c3c30021 -> i_c3c30021 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_4ff24fca:m_bf9bd871:e -> k_73658105 [style=solid, arrowtail=none, arrowhead=normal]
+k_4481b49f -> i_4481b49f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_b1d0731f -> i_b1d0731f [style=dashed, arrowtail=none, arrowhead=onormal]
+k_50cd9615 -> i_50cd9615 [style=dashed, arrowtail=none, arrowhead=onormal]
+k_f7c49aa -> i_f7c49aa [style=dashed, arrowtail=none, arrowhead=onormal]
+k_c5f43fe:m_cb039b61:e -> k_140c93ab [style=solid, arrowtail=none, arrowhead=normal]
+}
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/pom.xml 2012-03-06 21:17:53 UTC (rev 1742)
@@ -6,9 +6,12 @@
<packaging>jar</packaging>
<version>0.1.0-SNAPSHOT</version>
<name>kune</name>
- <description> kune free/open/libre collaboration platform
- </description>
+ <description>kune free/open/libre collaboration platform</description>
<url>http://kune.ourproject.org</url>
+ <ciManagement>
+ <url>http://ci.comunes.org/job/kune/</url>
+ <system>Hudson</system>
+ </ciManagement>
<properties>
<!-- Available versions: http://repo1.maven.org/maven2/com/google/gwt/gwt-dev/ -->
<gwt.version>2.1.1</gwt.version>
@@ -80,11 +83,11 @@
<!-- <url>http://maven.dyndns.org/2</url> -->
<!-- </repository> -->
<!-- seems that these are not working/neccesary now: -->
- <!-- <repository> <id>google-maven-snapshot-repository</id> <name>Google
- Maven Snapshot Repository</name> <url>https://oss.sonatype.org/content/repositories/google-snapshots/
- </url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository>
- <id>gwtplatform.snapshot.repo</id> <name>Gwtplatform snapshot repository</name>
- <url>https://oss.sonatype.org/content/repositories/snapshots/ </url> <layout>default</layout>
+ <!-- <repository> <id>google-maven-snapshot-repository</id> <name>Google
+ Maven Snapshot Repository</name> <url>https://oss.sonatype.org/content/repositories/google-snapshots/
+ </url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository>
+ <id>gwtplatform.snapshot.repo</id> <name>Gwtplatform snapshot repository</name>
+ <url>https://oss.sonatype.org/content/repositories/snapshots/ </url> <layout>default</layout>
</repository> -->
<repository>
<id>openqa.org</id>
@@ -182,7 +185,7 @@
<!-- <version>2.1-SNAPSHOT-r1160</version> -->
<version>3.0</version>
</dependency>
- <!-- <dependency> <groupId>com.googlecode.gwt.inject</groupId> <artifactId>gin</artifactId>
+ <!-- <dependency> <groupId>com.googlecode.gwt.inject</groupId> <artifactId>gin</artifactId>
<version>gin-1.1-SNAPSHOT</version> </dependency> -->
<dependency>
<groupId>com.google.inject.extensions</groupId>
@@ -195,6 +198,11 @@
<version>3.0</version>
</dependency>
<dependency>
+ <groupId>com.google.inject.extensions</groupId>
+ <artifactId>guice-grapher</artifactId>
+ <version>3.0</version>
+ </dependency>
+ <dependency>
<groupId>com.extjs</groupId>
<artifactId>gxt</artifactId>
<version>2.2.1</version>
@@ -242,8 +250,8 @@
<artifactId>gwt-fx</artifactId>
<version>r464</version>
</dependency>
- <!-- <dependency> <groupId>com.jhickman.web.gwt</groupId> <artifactId>gwt-customuibinder</artifactId>
- <version>0.1</version> </dependency> <dependency> <groupId>com.jhickman.web.gwt</groupId>
+ <!-- <dependency> <groupId>com.jhickman.web.gwt</groupId> <artifactId>gwt-customuibinder</artifactId>
+ <version>0.1</version> </dependency> <dependency> <groupId>com.jhickman.web.gwt</groupId>
<artifactId>gxt-uibinder</artifactId> <version>0.6</version> </dependency> -->
<!-- cc -->
<dependency>
@@ -492,7 +500,7 @@
<version>3.3.5</version>
<!-- <scope>test</scope> -->
</dependency>
- <!-- If you want to start a selenium server, you will need the following
+ <!-- If you want to start a selenium server, you will need the following
dependency: -->
<!-- <dependency> -->
<!-- <groupId>org.seleniumhq.selenium</groupId> -->
@@ -723,31 +731,30 @@
<!-- <artifactId>hibernate</artifactId> -->
<!-- </exclusion> -->
<!-- <exclusion> -->
-<!-- <groupId>org.slf4j</groupId> -->
-<!-- <artifactId>spi</artifactId> -->
+<!-- <groupId>org.slf4j</groupId> -->
+<!-- <artifactId>spi</artifactId> -->
<!-- </exclusion> -->
<!-- <exclusion> -->
-<!-- <groupId>org.slf4j</groupId> -->
-<!-- <artifactId>slf4j-api</artifactId> -->
+<!-- <groupId>org.slf4j</groupId> -->
+<!-- <artifactId>slf4j-api</artifactId> -->
<!-- </exclusion> -->
<!-- <exclusion> -->
-<!-- <groupId>org.slf4j</groupId> -->
-<!-- <artifactId>jcl-over-slf4j</artifactId> -->
+<!-- <groupId>org.slf4j</groupId> -->
+<!-- <artifactId>jcl-over-slf4j</artifactId> -->
<!-- </exclusion> -->
<!-- <exclusion> -->
-<!-- <groupId>org.slf4j</groupId> -->
-<!-- <artifactId>jcl-over-slf4j</artifactId> -->
+<!-- <groupId>org.slf4j</groupId> -->
+<!-- <artifactId>jcl-over-slf4j</artifactId> -->
<!-- </exclusion> -->
<!-- <exclusion> -->
-<!-- <groupId>org.apache</groupId> -->
-<!-- <artifactId>commons</artifactId> -->
+<!-- <groupId>org.apache</groupId> -->
+<!-- <artifactId>commons</artifactId> -->
<!-- </exclusion> -->
<!-- <exclusion> -->
-<!-- <groupId>org.apache.commons</groupId> -->
-<!-- <artifactId>logging</artifactId> -->
+<!-- <groupId>org.apache.commons</groupId> -->
+<!-- <artifactId>logging</artifactId> -->
<!-- </exclusion> -->
<!-- </exclusions> -->
-
<!-- </dependency> -->
</dependencies>
<!-- <dependency> -->
@@ -861,8 +868,8 @@
</systemProperty>
<!-- <systemProperty> -->
<!-- <key>kune.db.persistence.name</key> -->
- <!-- Persistence name, choose between: production, development,
- test_db (testing environment using mysql db), test (testing environment using
+ <!-- Persistence name, choose between: production, development,
+ test_db (testing environment using mysql db), test (testing environment using
h2 db). See persistence.xml -->
<!-- <value>development</value> -->
<!-- </systemProperty> -->
@@ -905,7 +912,7 @@
<configuration>
<source>1.6</source>
<target>1.6</target>
- <!-- Uncomment and run mvn with -X -e if we have same compile problems
+ <!-- Uncomment and run mvn with -X -e if we have same compile problems
<compilerArgument>-verbose</compilerArgument> <fork>true</fork> <verbose>true</verbose> -->
</configuration>
</plugin>
@@ -939,7 +946,7 @@
<name>junit</name>
<value>true</value>
</property>
- <!-- Skip the normal tests, we'll run them in the integration-test
+ <!-- Skip the normal tests, we'll run them in the integration-test
phase -->
<skipTests>${skipTests}</skipTests>
</configuration>
@@ -1064,11 +1071,11 @@
<!-- gwtp & GenEvent need this plugin -->
<!-- maybe test: http://mojo.codehaus.org/apt-maven-plugin/index.html -->
<!-- instead of this: https://code.google.com/p/maven-annotation-plugin/ -->
- <!-- <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId>
- <version>1.3.7</version> <executions> <execution> <id>process</id> <goals>
- <goal>process</goal> </goals> <phase>generate-sources</phase> </execution>
- </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>apt-maven-plugin</artifactId>
- <version>1.0-alpha-4</version> <executions> <execution> <goals> <goal>process</goal>
+ <!-- <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId>
+ <version>1.3.7</version> <executions> <execution> <id>process</id> <goals>
+ <goal>process</goal> </goals> <phase>generate-sources</phase> </execution>
+ </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>apt-maven-plugin</artifactId>
+ <version>1.0-alpha-4</version> <executions> <execution> <goals> <goal>process</goal>
<goal>test-process</goal> </goals> </execution> </executions> </plugin> -->
<!-- BETTER user: http://code.google.com/p/acris/wiki/AnnotationProcessing -->
<plugin>
@@ -1089,7 +1096,7 @@
</modules>
<copyWebapp>true</copyWebapp>
<compileReport>false</compileReport>
- <localWorkers>1</localWorkers><!-- Using all workers can temporarily
+ <localWorkers>1</localWorkers><!-- Using all workers can temporarily
hang the mouse and isn't much faster -->
<extraJvmArgs>-Xmx1024m</extraJvmArgs>
</configuration>
@@ -1137,7 +1144,7 @@
<password>db4kune</password>
<verbose>true</verbose>
</configuration>
- <!-- <configuration> <verbose>true</verbose> <propertiesFile>
+ <!-- <configuration> <verbose>true</verbose> <propertiesFile>
src/main/resources/db/liquibase.properties </propertiesFile> </configuration> -->
<goals>
<goal>update</goal>
@@ -1156,7 +1163,7 @@
<mainClass>cc.kune.wave.server.WaveMain</mainClass>
<!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> -->
<!-- <classpathLayoutType>repository</classpathLayoutType> -->
- <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType'
+ <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType'
instead. -->
<classpathMavenRepositoryLayout>true
</classpathMavenRepositoryLayout>
Modified: trunk/src/main/java/cc/kune/core/server/CustomPersistFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/CustomPersistFilter.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/CustomPersistFilter.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -87,6 +87,7 @@
@Override
public void destroy() {
+ // Commented in kune
// persistService.stop();
}
@@ -104,6 +105,7 @@
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
+ // Commented in kune
// persistService.start();
}
}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/DataSourceKune.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/DataSourceKune.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/DataSourceKune.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,17 @@
+package cc.kune.core.server;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.google.inject.BindingAnnotation;
+
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({ FIELD, PARAMETER, METHOD })
+ at BindingAnnotation
+public @interface DataSourceKune {
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/DataSourceKunePersistModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/DataSourceKunePersistModule.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/DataSourceKunePersistModule.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,124 @@
+package cc.kune.core.server;
+
+import java.util.Properties;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.configuration.SystemConfiguration;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+
+import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.server.properties.KunePropertiesDefault;
+import cc.kune.domain.finders.ContainerFinder;
+import cc.kune.domain.finders.ContentFinder;
+import cc.kune.domain.finders.ExtMediaDescripFinder;
+import cc.kune.domain.finders.GroupFinder;
+import cc.kune.domain.finders.I18nCountryFinder;
+import cc.kune.domain.finders.I18nLanguageFinder;
+import cc.kune.domain.finders.I18nTranslationFinder;
+import cc.kune.domain.finders.LicenseFinder;
+import cc.kune.domain.finders.RateFinder;
+import cc.kune.domain.finders.TagFinder;
+import cc.kune.domain.finders.TagUserContentFinder;
+import cc.kune.domain.finders.UserFinder;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Key;
+import com.google.inject.Provider;
+import com.google.inject.persist.jpa.JpaPersistModule;
+
+public class DataSourceKunePersistModule extends AbstractModule {
+ public static final Log LOG = LogFactory.getLog(DataSourceKunePersistModule.class);
+ public static final Key<CustomPersistFilter> MY_DATA_SOURCE_ONE_FILTER_KEY = Key.get(
+ CustomPersistFilter.class, DataSourceKune.class);
+ private String settedJpaUnit = null;
+ private String settedProperties = null;
+
+ public DataSourceKunePersistModule() {
+ }
+
+ /**
+ * Instantiates this module during tests
+ *
+ * @param settedProperties
+ * the setted properties
+ * @param settedJpaUnit
+ * the setted jpa unit
+ */
+ public DataSourceKunePersistModule(final String settedProperties, final String settedJpaUnit) {
+ this.settedProperties = settedProperties;
+ this.settedJpaUnit = settedJpaUnit;
+ }
+
+ @Override
+ public void configure() {
+ final SystemConfiguration sysConf = new SystemConfiguration();
+ final String kuneConfig = settedProperties != null ? settedProperties
+ : sysConf.getString("kune.server.config");
+
+ final KunePropertiesDefault kuneProperties = new KunePropertiesDefault(kuneConfig);
+ bind(KuneProperties.class).toInstance(kuneProperties);
+ // expose(KuneProperties.class);
+
+ // precedence method param > properties
+ final String configuredJpaUnit = kuneProperties.get(KuneProperties.SITE_DB_PERSISTENCE_NAME);
+ final String jpaUnit = settedJpaUnit != null ? settedJpaUnit
+ : configuredJpaUnit != null ? configuredJpaUnit : "development";
+ LOG.info(String.format("Using persistence unit '%s' and properties '%s'", jpaUnit, kuneConfig));
+
+ final JpaPersistModule jpm = new JpaPersistModule(jpaUnit);
+
+ if (!jpaUnit.equals("test")) {
+ // In tests (and development) we don't override this db info)
+ final Properties dbProperties = new Properties();
+ dbProperties.setProperty("hibernate.connection.url",
+ kuneProperties.get(KuneProperties.SITE_DB_URL));
+ dbProperties.setProperty("hibernate.connection.username",
+ kuneProperties.get(KuneProperties.SITE_DB_USER));
+ dbProperties.setProperty("hibernate.connection.password",
+ kuneProperties.get(KuneProperties.SITE_DB_PASSWORD));
+ jpm.properties(dbProperties);
+ }
+
+ jpm.addFinder(ContainerFinder.class);
+ jpm.addFinder(ContentFinder.class);
+ jpm.addFinder(ExtMediaDescripFinder.class);
+ jpm.addFinder(GroupFinder.class);
+ jpm.addFinder(I18nCountryFinder.class);
+ jpm.addFinder(I18nLanguageFinder.class);
+ jpm.addFinder(I18nTranslationFinder.class);
+ jpm.addFinder(LicenseFinder.class);
+ jpm.addFinder(RateFinder.class);
+ jpm.addFinder(TagFinder.class);
+ jpm.addFinder(TagUserContentFinder.class);
+ jpm.addFinder(UserFinder.class);
+ install(jpm);
+ // expose(ContainerFinder.class);
+ // expose(ContentFinder.class);
+ // expose(ExtMediaDescripFinder.class);
+ // expose(GroupFinder.class);
+ // expose(I18nCountryFinder.class);
+ // expose(I18nLanguageFinder.class);
+ // expose(I18nTranslationFinder.class);
+ // expose(LicenseFinder.class);
+ // expose(RateFinder.class);
+ // expose(TagFinder.class);
+ // expose(TagUserContentFinder.class);
+ // expose(UserFinder.class);
+
+ bind(Session.class).annotatedWith(DataSourceKune.class).toProvider(
+ DataSourceKuneSessionProvider.class);
+ // expose(Session.class).annotatedWith(MyDataSourceOne.class);
+
+ final Provider<EntityManager> entityManagerProvider = binder().getProvider(EntityManager.class);
+ bind(EntityManager.class).annotatedWith(DataSourceKune.class).toProvider(entityManagerProvider);
+ // expose(EntityManager.class).annotatedWith(MyDataSourceOne.class);
+
+ bind(MY_DATA_SOURCE_ONE_FILTER_KEY).to(CustomPersistFilter.class);
+ // expose(MY_DATA_SOURCE_ONE_FILTER_KEY);
+
+ bind(GenericPersistenceInitializer.class).asEagerSingleton();
+ }
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/DataSourceKuneSessionProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/DataSourceKuneSessionProvider.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/DataSourceKuneSessionProvider.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,26 @@
+package cc.kune.core.server;
+
+import javax.persistence.EntityManager;
+
+import org.hibernate.Session;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class DataSourceKuneSessionProvider implements Provider<Session> {
+ /** The entity manger to retrieve the session from. */
+ @Inject
+ @DataSourceKune
+ private Provider<EntityManager> entityManagerProvider;
+
+ /**
+ * @return the Hibernate session, being the delegate of the entity manager
+ * provided by the injected entity manager provider.
+ */
+ @Override
+ public Session get() {
+ final Session session = (Session) entityManagerProvider.get().getDelegate();
+ // configure session i.e. flush mode or filtering
+ return session;
+ }
+};
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/DataSourceOpenfire.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/DataSourceOpenfire.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/DataSourceOpenfire.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,17 @@
+package cc.kune.core.server;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.google.inject.BindingAnnotation;
+
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({ FIELD, PARAMETER, METHOD })
+ at BindingAnnotation
+public @interface DataSourceOpenfire {
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/DataSourceOpenfirePersistModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/DataSourceOpenfirePersistModule.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/DataSourceOpenfirePersistModule.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,60 @@
+package cc.kune.core.server;
+
+import java.util.Properties;
+
+import javax.persistence.EntityManager;
+
+import org.hibernate.Session;
+
+import cc.kune.core.server.xmpp.OpenfireXmppRosterFinder;
+import cc.kune.core.server.xmpp.OpenfireXmppRosterProvider;
+import cc.kune.core.server.xmpp.XmppRosterProvider;
+
+import com.google.inject.Key;
+import com.google.inject.PrivateModule;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+import com.google.inject.persist.jpa.JpaPersistModule;
+
+public class DataSourceOpenfirePersistModule extends PrivateModule {
+ public static final Key<CustomPersistFilter> MY_DATA_SOURCE_TWO_FILTER_KEY = Key.get(
+ CustomPersistFilter.class, DataSourceOpenfire.class);
+
+ @Override
+ public void configure() {
+ final JpaPersistModule jpm = new JpaPersistModule("openfire");
+ // jpm.properties(new Properties());
+
+ final Properties dbProperties = new Properties();
+ dbProperties.setProperty(
+ "hibernate.connection.url",
+ "jdbc:mysql://localhost/openfire4?createDatabaseIfNotExist=false&useUnicode=true&characterEncoding=UTF-8");
+ // kuneProperties.get(KuneProperties.SITE_DB_URL));
+ dbProperties.setProperty("hibernate.connection.username", "openfire");
+ // kuneProperties.get(KuneProperties.SITE_DB_USER));
+ dbProperties.setProperty("hibernate.connection.password", "easyeasy");
+ dbProperties.setProperty("exclude-unlisted-classes", "true");
+
+ // kuneProperties.get(KuneProperties.SITE_DB_PASSWORD));
+
+ jpm.properties(dbProperties);
+ install(jpm.addFinder(OpenfireXmppRosterFinder.class));
+ expose(OpenfireXmppRosterFinder.class);
+
+ bind(XmppRosterProvider.class).to(OpenfireXmppRosterProvider.class).in(Singleton.class);
+ expose(XmppRosterProvider.class);
+
+ bind(Session.class).annotatedWith(DataSourceOpenfire.class).toProvider(
+ DataSourceOpenfireSessionProvider.class);
+ expose(Session.class).annotatedWith(DataSourceOpenfire.class);
+
+ final Provider<EntityManager> entityManagerProvider = binder().getProvider(EntityManager.class);
+ bind(EntityManager.class).annotatedWith(DataSourceOpenfire.class).toProvider(entityManagerProvider);
+ expose(EntityManager.class).annotatedWith(DataSourceOpenfire.class);
+
+ bind(MY_DATA_SOURCE_TWO_FILTER_KEY).to(CustomPersistFilter.class);
+ expose(MY_DATA_SOURCE_TWO_FILTER_KEY);
+
+ // bind(KunePersistenceInitializer.class).asEagerSingleton();
+ }
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/DataSourceOpenfireSessionProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/DataSourceOpenfireSessionProvider.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/DataSourceOpenfireSessionProvider.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,26 @@
+package cc.kune.core.server;
+
+import javax.persistence.EntityManager;
+
+import org.hibernate.Session;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class DataSourceOpenfireSessionProvider implements Provider<Session> {
+ /** The entity manger to retrieve the session from. */
+ @Inject
+ @DataSourceOpenfire
+ private Provider<EntityManager> entityManagerProvider;
+
+ /**
+ * @return the Hibernate session, being the delegate of the entity manager
+ * provided by the injected entity manager provider.
+ */
+ @Override
+ public Session get() {
+ final Session session = (Session) entityManagerProvider.get().getDelegate();
+ // configure session i.e. flush mode or filtering
+ return session;
+ }
+};
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/server/GenericPersistenceInitializer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/GenericPersistenceInitializer.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/GenericPersistenceInitializer.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,12 @@
+package cc.kune.core.server;
+
+import com.google.inject.Inject;
+import com.google.inject.persist.PersistService;
+
+public class GenericPersistenceInitializer {
+ @Inject
+ GenericPersistenceInitializer(final PersistService service) {
+ service.start();
+ // At this point JPA is started and ready.
+ }
+}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -24,18 +24,14 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import com.google.inject.persist.PersistService;
@Singleton
public class KunePersistenceService {
@Inject
DatabaseInitializer databaseInitializer;
- @Inject
- PersistService persistenceService;
public void start() {
try {
- persistenceService.start();
databaseInitializer.initConditional();
} catch (final Exception e) {
throw new ServerException("Error starting persistence service", e);
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -19,9 +19,6 @@
*/
package cc.kune.core.server;
-import java.util.Properties;
-
-import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -34,7 +31,6 @@
import cc.kune.core.client.rpcservices.SiteService;
import cc.kune.core.client.rpcservices.SocialNetService;
import cc.kune.core.client.rpcservices.UserService;
-import cc.kune.core.server.init.FinderRegistry;
import cc.kune.core.server.manager.file.EntityBackgroundDownloadManager;
import cc.kune.core.server.manager.file.EntityBackgroundUploadManager;
import cc.kune.core.server.manager.file.EntityLogoDownloadManager;
@@ -44,8 +40,6 @@
import cc.kune.core.server.manager.file.FileUploadManager;
import cc.kune.core.server.manager.file.UserLogoDownloadManager;
import cc.kune.core.server.manager.impl.GroupServerUtils;
-import cc.kune.core.server.properties.KuneProperties;
-import cc.kune.core.server.properties.KunePropertiesDefault;
import cc.kune.core.server.rack.RackBuilder;
import cc.kune.core.server.rack.RackModule;
import cc.kune.core.server.rack.filters.ForwardFilter;
@@ -74,56 +68,31 @@
import com.google.inject.Module;
import com.google.inject.Scope;
import com.google.inject.matcher.Matchers;
-import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.GuiceFilter;
import com.google.inject.servlet.ServletModule;
import com.google.inject.servlet.SessionScoped;
public class KuneRackModule implements RackModule {
+
public static final Log LOG = LogFactory.getLog(KuneRackModule.class);
private final Module configModule;
private final String suffix;
- final SystemConfiguration sysConf = new SystemConfiguration();
public KuneRackModule() {
this(null, "/ws", null);
}
- public KuneRackModule(final String settedJpaUnit, final String suffix, final Scope sessionScope) {
+ private KuneRackModule(final String settedJpaUnit, final String suffix, final Scope sessionScope) {
this.suffix = suffix;
- final String kuneConfig = sysConf.getString("kune.server.config");
+
configModule = new AbstractModule() {
@Override
public void configure() {
- final KunePropertiesDefault kuneProperties = new KunePropertiesDefault(kuneConfig);
- bind(KuneProperties.class).toInstance(kuneProperties);
- final String configuredJpaUnit = kuneProperties.get(KuneProperties.SITE_DB_PERSISTENCE_NAME);
-
- // precedence method param > properties
- final String jpaUnit = settedJpaUnit != null ? settedJpaUnit
- : configuredJpaUnit != null ? configuredJpaUnit : "development";
- LOG.info("Using persistence unit: " + jpaUnit);
-
- final JpaPersistModule jpaPersistModule = new JpaPersistModule(jpaUnit);
-
- if (!jpaUnit.equals("test")) {
- final Properties dbProperties = new Properties();
- dbProperties.setProperty("hibernate.connection.url",
- kuneProperties.get(KuneProperties.SITE_DB_URL));
- dbProperties.setProperty("hibernate.connection.username",
- kuneProperties.get(KuneProperties.SITE_DB_USER));
- dbProperties.setProperty("hibernate.connection.password",
- kuneProperties.get(KuneProperties.SITE_DB_PASSWORD));
- jpaPersistModule.properties(dbProperties);
- }
-
- install(FinderRegistry.init(jpaPersistModule));
bindInterceptor(Matchers.annotatedWith(LogThis.class), new NotInObject(),
new LoggerMethodInterceptor());
if (sessionScope != null) {
bindScope(SessionScoped.class, sessionScope);
}
-
// This can be used also in Gin:
// http://code.google.com/p/google-gin/issues/detail?id=60
requestStaticInjection(KuneWaveServerUtils.class);
@@ -198,7 +167,14 @@
builder.use(new ServletModule() {
@Override
protected void configureServlets() {
- filter("/*").through(CustomPersistFilter.class);
+ install(new DataSourceKunePersistModule());
+ // install(new MyDataSourceTwoPersistModule());
+
+ // more bindings
+
+ filter("/*").through(DataSourceKunePersistModule.MY_DATA_SOURCE_ONE_FILTER_KEY);
+ // filter("/*").through(MyDataSourceTwoPersistModule.MY_DATA_SOURCE_TWO_FILTER_KEY);
+
super.configureServlets();
}
});
Modified: trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -30,6 +30,7 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.MoveOnSameContainerException;
import cc.kune.core.client.errors.NameInUseException;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.file.FileUtils;
import cc.kune.core.server.manager.impl.DefaultManager;
@@ -53,8 +54,8 @@
private final ContentFinder contentFinder;
@Inject
- public ContainerManagerDefault(final ContentFinder contentFinder,
- final ContainerFinder containerFinder, final Provider<EntityManager> provider) {
+ public ContainerManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final ContentFinder contentFinder, final ContainerFinder containerFinder) {
super(provider, Container.class);
this.contentFinder = contentFinder;
this.containerFinder = containerFinder;
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -46,6 +46,7 @@
import cc.kune.core.client.errors.MoveOnSameContainerException;
import cc.kune.core.client.errors.NameInUseException;
import cc.kune.core.client.errors.UserNotFoundException;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.access.FinderService;
import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.TagUserContentManager;
@@ -94,11 +95,12 @@
private final UserFinder userFinder;
@Inject
- public ContentManagerDefault(final ContentFinder contentFinder, final ContainerFinder containerFinder,
- final Provider<EntityManager> provider, final FinderService finder, final UserFinder userFinder,
- final I18nLanguageFinder languageFinder, final TagUserContentManager tagManager,
- final KuneWaveService kuneWaveManager, final ParticipantUtils participantUtils,
- final ServerToolRegistry tools, final XMLActionReader xmlActionReader) {
+ public ContentManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final ContentFinder contentFinder, final ContainerFinder containerFinder,
+ final FinderService finder, final UserFinder userFinder, final I18nLanguageFinder languageFinder,
+ final TagUserContentManager tagManager, final KuneWaveService kuneWaveManager,
+ final ParticipantUtils participantUtils, final ServerToolRegistry tools,
+ final XMLActionReader xmlActionReader) {
super(provider, Content.class);
this.contentFinder = contentFinder;
this.containerFinder = containerFinder;
Modified: trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -68,7 +68,10 @@
final GroupManager groupManager, final LicenseManager licenseManager,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
final I18nTranslationManager translationManager, final ContentManager contentManager,
- final I18nTranslationServiceDefault translationService) {
+ final I18nTranslationServiceDefault translationService
+
+ // , final XmppRosterProvider borrar) {
+ ) {
this.properties = properties;
this.userManager = userManager;
this.groupManager = groupManager;
@@ -78,8 +81,11 @@
this.translationManager = translationManager;
this.translationService = translationService;
this.contentManager = contentManager;
+ // assert borrar != null;
+ // LOG.info("Roster items: " + borrar.count());
}
+ @Transactional
private void createDefUsersGroup() throws Exception, UserMustBeLoggedException {
final String adminName = properties.getAdminUserName();
final String adminShortName = properties.getAdminShortName();
@@ -112,9 +118,9 @@
userManager.reIndex();
groupManager.reIndex();
-
}
+ @Transactional
private void createLicenses() {
// FIXME: Add CC RDF info (seems CC is working on new forms to add
// license metadata)
@@ -161,6 +167,7 @@
licenseManager.persist(license);
}
+ @Transactional
public void createOthers() {
final I18nLanguage english = new I18nLanguage(Long.valueOf(1819), "en", "ltr", "English", "", "",
"en", "eng", "eng", false, "", "", "", "c == 1 ? 1 : 2", null, "L", "MMM d\\, yyyy");
@@ -184,8 +191,10 @@
@Transactional
public void initDatabase() throws Exception {
+ createLicenses();
createOthers();
- createLicenses();
+ LOG.warn("langs: " + languageManager.getAll().size());
+ // createLicenses();
createDefUsersGroup();
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/ExtMediaDescripManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/ExtMediaDescripManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/ExtMediaDescripManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -23,7 +23,7 @@
import javax.persistence.EntityManager;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.ExtMediaDescripManager;
import cc.kune.domain.ExtMediaDescrip;
import cc.kune.domain.finders.ExtMediaDescripFinder;
@@ -34,19 +34,19 @@
@Singleton
public class ExtMediaDescripManagerDefault extends DefaultManager<ExtMediaDescrip, Long> implements
- ExtMediaDescripManager {
+ ExtMediaDescripManager {
- private final ExtMediaDescripFinder extMediaFinder;
+ private final ExtMediaDescripFinder extMediaFinder;
- @Inject
- public ExtMediaDescripManagerDefault(final Provider<EntityManager> provider,
- final ExtMediaDescripFinder extMediaFinder) {
- super(provider, ExtMediaDescrip.class);
- this.extMediaFinder = extMediaFinder;
- }
+ @Inject
+ public ExtMediaDescripManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final ExtMediaDescripFinder extMediaFinder) {
+ super(provider, ExtMediaDescrip.class);
+ this.extMediaFinder = extMediaFinder;
+ }
- @Override
- public List<ExtMediaDescrip> getAll() {
- return extMediaFinder.getAll();
- }
+ @Override
+ public List<ExtMediaDescrip> getAll() {
+ return extMediaFinder.getAll();
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -39,6 +39,7 @@
import cc.kune.core.client.errors.GroupLongNameInUseException;
import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.FileManager;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.LicenseManager;
@@ -84,8 +85,8 @@
private final UserFinder userFinder;
@Inject
- public GroupManagerDefault(final Provider<EntityManager> provider, final GroupFinder finder,
- final UserFinder userFinder, final KuneProperties kuneProperties,
+ public GroupManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final GroupFinder finder, final UserFinder userFinder, final KuneProperties kuneProperties,
final KuneBasicProperties properties, final ServerToolRegistry registry,
final LicenseManager licenseManager, final LicenseFinder licenseFinder,
final FileManager fileManager, final ServerToolRegistry serverToolRegistry,
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/I18nCountryManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/I18nCountryManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/I18nCountryManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -23,7 +23,7 @@
import javax.persistence.EntityManager;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.domain.I18nCountry;
import cc.kune.domain.finders.I18nCountryFinder;
@@ -33,23 +33,25 @@
import com.google.inject.Singleton;
@Singleton
-public class I18nCountryManagerDefault extends DefaultManager<I18nCountry, Long> implements I18nCountryManager {
+public class I18nCountryManagerDefault extends DefaultManager<I18nCountry, Long> implements
+ I18nCountryManager {
- private final I18nCountryFinder finder;
+ private final I18nCountryFinder finder;
- @Inject
- public I18nCountryManagerDefault(final Provider<EntityManager> provider, final I18nCountryFinder finder) {
- super(provider, I18nCountry.class);
- this.finder = finder;
- }
+ @Inject
+ public I18nCountryManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final I18nCountryFinder finder) {
+ super(provider, I18nCountry.class);
+ this.finder = finder;
+ }
- @Override
- public I18nCountry findByCode(final String country) {
- return finder.findByCode(country);
- }
+ @Override
+ public I18nCountry findByCode(final String country) {
+ return finder.findByCode(country);
+ }
- @Override
- public List<I18nCountry> getAll() {
- return finder.getAll();
- }
+ @Override
+ public List<I18nCountry> getAll() {
+ return finder.getAll();
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/I18nLanguageManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/I18nLanguageManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/I18nLanguageManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -23,7 +23,7 @@
import javax.persistence.EntityManager;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.I18nLanguageManager;
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.finders.I18nLanguageFinder;
@@ -33,23 +33,25 @@
import com.google.inject.Singleton;
@Singleton
-public class I18nLanguageManagerDefault extends DefaultManager<I18nLanguage, Long> implements I18nLanguageManager {
+public class I18nLanguageManagerDefault extends DefaultManager<I18nLanguage, Long> implements
+ I18nLanguageManager {
- private final I18nLanguageFinder finder;
+ private final I18nLanguageFinder finder;
- @Inject
- public I18nLanguageManagerDefault(final Provider<EntityManager> provider, final I18nLanguageFinder finder) {
- super(provider, I18nLanguage.class);
- this.finder = finder;
- }
+ @Inject
+ public I18nLanguageManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final I18nLanguageFinder finder) {
+ super(provider, I18nLanguage.class);
+ this.finder = finder;
+ }
- @Override
- public I18nLanguage findByCode(final String language) {
- return finder.findByCode(language);
- }
+ @Override
+ public I18nLanguage findByCode(final String language) {
+ return finder.findByCode(language);
+ }
- @Override
- public List<I18nLanguage> getAll() {
- return finder.getAll();
- }
+ @Override
+ public List<I18nLanguage> getAll() {
+ return finder.getAll();
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -27,6 +27,7 @@
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.I18nLanguageManager;
import cc.kune.core.server.manager.I18nTranslationManager;
import cc.kune.core.shared.dto.I18nTranslationDTO;
@@ -48,7 +49,7 @@
private final I18nLanguageManager languageManager;
@Inject
- public I18nTranslationManagerDefault(final Provider<EntityManager> provider,
+ public I18nTranslationManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
final I18nTranslationFinder finder, final I18nLanguageManager languageManager) {
super(provider, I18nTranslation.class);
this.finder = finder;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/LicenseManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/LicenseManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/LicenseManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -23,7 +23,7 @@
import javax.persistence.EntityManager;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.LicenseManager;
import cc.kune.core.server.properties.KuneBasicProperties;
import cc.kune.domain.License;
@@ -35,51 +35,51 @@
@Singleton
public class LicenseManagerDefault extends DefaultManager<License, Long> implements LicenseManager {
- private LicenseFinder licenseFinder;
- private final KuneBasicProperties properties;
+ private LicenseFinder licenseFinder;
+ private final KuneBasicProperties properties;
- @Inject
- public LicenseManagerDefault(final Provider<EntityManager> provider, final KuneBasicProperties properties,
- final LicenseFinder licenseFinder) {
- super(provider, License.class);
- this.properties = properties;
- this.licenseFinder = licenseFinder;
- }
+ @Inject
+ public LicenseManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final KuneBasicProperties properties, final LicenseFinder licenseFinder) {
+ super(provider, License.class);
+ this.properties = properties;
+ this.licenseFinder = licenseFinder;
+ }
- @Override
- public License findByShortName(final String shortName) {
- return licenseFinder.findByShortName(shortName);
- }
+ @Override
+ public License findByShortName(final String shortName) {
+ return licenseFinder.findByShortName(shortName);
+ }
- @Override
- public List<License> getAll() {
- return licenseFinder.getAll();
- }
+ @Override
+ public List<License> getAll() {
+ return licenseFinder.getAll();
+ }
- @Override
- public List<License> getCC() {
- return licenseFinder.getCC();
- }
+ @Override
+ public List<License> getCC() {
+ return licenseFinder.getCC();
+ }
- @Override
- public License getDefLicense() {
- final String licenseDefId = properties.getDefaultLicense();
- return licenseFinder.findByShortName(licenseDefId);
- }
+ @Override
+ public License getDefLicense() {
+ final String licenseDefId = properties.getDefaultLicense();
+ return licenseFinder.findByShortName(licenseDefId);
+ }
- @Override
- public List<License> getNotCC() {
- return licenseFinder.getNotCC();
- }
+ @Override
+ public List<License> getNotCC() {
+ return licenseFinder.getNotCC();
+ }
- @Override
- public License persist(final License license) {
- return super.persist(license);
- }
+ @Override
+ public License persist(final License license) {
+ return super.persist(license);
+ }
- @Override
- @Inject
- public void setLicenseFinder(final LicenseFinder licenseFinder) {
- this.licenseFinder = licenseFinder;
- }
+ @Override
+ @Inject
+ public void setLicenseFinder(final LicenseFinder licenseFinder) {
+ this.licenseFinder = licenseFinder;
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/RateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/RateManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/RateManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -22,7 +22,7 @@
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.RateManager;
import cc.kune.domain.Content;
import cc.kune.domain.Rate;
@@ -36,31 +36,32 @@
@Singleton
public class RateManagerDefault extends DefaultManager<Rate, Long> implements RateManager {
- private final RateFinder finder;
+ private final RateFinder finder;
- @Inject
- public RateManagerDefault(final Provider<EntityManager> provider, final RateFinder finder) {
- super(provider, Rate.class);
- this.finder = finder;
- }
+ @Inject
+ public RateManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final RateFinder finder) {
+ super(provider, Rate.class);
+ this.finder = finder;
+ }
- @Override
- public Rate find(final User user, final Content content) {
- try {
- return finder.find(user, content);
- } catch (final NoResultException e) {
- return null;
- }
+ @Override
+ public Rate find(final User user, final Content content) {
+ try {
+ return finder.find(user, content);
+ } catch (final NoResultException e) {
+ return null;
}
+ }
- @Override
- public Double getRateAvg(final Content content) {
- return finder.calculateRate(content);
- }
+ @Override
+ public Double getRateAvg(final Content content) {
+ return finder.calculateRate(content);
+ }
- @Override
- public Long getRateByUsers(final Content content) {
- return finder.calculateRateNumberOfUsers(content);
- }
+ @Override
+ public Long getRateByUsers(final Content content) {
+ return finder.calculateRateNumberOfUsers(content);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -30,6 +30,7 @@
import cc.kune.core.client.errors.InvalidSNOperationException;
import cc.kune.core.client.errors.LastAdminInGroupException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.access.AccessRightsService;
import cc.kune.core.server.error.ServerException;
import cc.kune.core.server.manager.SocialNetworkManager;
@@ -62,8 +63,9 @@
private final UserManager userManager;
@Inject
- public SocialNetworkManagerDefault(final Provider<EntityManager> provider, final GroupFinder finder,
- final AccessRightsService accessRightsService, final UserManager userManager) {
+ public SocialNetworkManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final GroupFinder finder, final AccessRightsService accessRightsService,
+ final UserManager userManager) {
super(provider, SocialNetwork.class);
this.finder = finder;
this.accessRightsService = accessRightsService;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/TagManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/TagManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/TagManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -21,7 +21,7 @@
import javax.persistence.EntityManager;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.TagManager;
import cc.kune.domain.Tag;
import cc.kune.domain.finders.TagFinder;
@@ -33,16 +33,17 @@
@Singleton
public class TagManagerDefault extends DefaultManager<Tag, Long> implements TagManager {
- private final TagFinder tagFinder;
+ private final TagFinder tagFinder;
- @Inject
- public TagManagerDefault(final Provider<EntityManager> provider, final TagFinder tagFinder) {
- super(provider, Tag.class);
- this.tagFinder = tagFinder;
- }
+ @Inject
+ public TagManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final TagFinder tagFinder) {
+ super(provider, Tag.class);
+ this.tagFinder = tagFinder;
+ }
- @Override
- public Tag findByTagName(final String tag) {
- return tagFinder.findByTagName(tag);
- }
+ @Override
+ public Tag findByTagName(final String tag) {
+ return tagFinder.findByTagName(tag);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -26,6 +26,7 @@
import javax.persistence.NoResultException;
import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.TagManager;
import cc.kune.core.server.manager.TagUserContentManager;
import cc.kune.core.shared.domain.TagCloudResult;
@@ -49,7 +50,7 @@
private final TagManager tagManager;
@Inject
- public TagUserContentManagerDefault(final Provider<EntityManager> provider,
+ public TagUserContentManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
final TagManager tagManager, final TagUserContentFinder finder) {
super(provider, TagUserContent.class);
this.provider = provider;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/ToolConfigurationManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/ToolConfigurationManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/ToolConfigurationManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -21,7 +21,7 @@
import javax.persistence.EntityManager;
-
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.manager.ToolConfigurationManager;
import cc.kune.domain.ToolConfiguration;
@@ -31,11 +31,11 @@
@Singleton
public class ToolConfigurationManagerDefault extends DefaultManager<ToolConfiguration, Long> implements
- ToolConfigurationManager {
+ ToolConfigurationManager {
- @Inject
- public ToolConfigurationManagerDefault(final Provider<EntityManager> provider) {
- super(provider, ToolConfiguration.class);
- }
+ @Inject
+ public ToolConfigurationManagerDefault(@DataSourceKune final Provider<EntityManager> provider) {
+ super(provider, ToolConfiguration.class);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -58,6 +58,7 @@
import cc.kune.core.client.errors.WrongCurrentPasswordException;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.TokenUtils;
+import cc.kune.core.server.DataSourceKune;
import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
@@ -105,13 +106,14 @@
private final XmppManager xmppManager;
@Inject
- public UserManagerDefault(final Provider<EntityManager> provider, final UserFinder finder,
- final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
- final XmppManager xmppManager, final ChatProperties chatProperties,
- final I18nTranslationServiceMultiLang i18n, final CustomUserRegistrationServlet waveUserRegister,
- final AccountStore waveAccountStore, final KuneWaveService kuneWaveManager,
- final ParticipantUtils participantUtils, final KuneBasicProperties properties,
- final GroupManager groupManager, final NotificationService notifyService) {
+ public UserManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
+ final UserFinder finder, final I18nLanguageManager languageManager,
+ final I18nCountryManager countryManager, final XmppManager xmppManager,
+ final ChatProperties chatProperties, final I18nTranslationServiceMultiLang i18n,
+ final CustomUserRegistrationServlet waveUserRegister, final AccountStore waveAccountStore,
+ final KuneWaveService kuneWaveManager, final ParticipantUtils participantUtils,
+ final KuneBasicProperties properties, final GroupManager groupManager,
+ final NotificationService notifyService) {
super(provider, User.class);
this.userFinder = finder;
this.languageManager = languageManager;
Modified: trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -19,7 +19,9 @@
*/
package cc.kune.core.server.rack;
+import java.io.File;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
@@ -40,7 +42,13 @@
import cc.kune.core.server.rack.utils.RackHelper;
import cc.kune.core.server.scheduler.CustomJobFactory;
+import com.google.inject.Guice;
import com.google.inject.Injector;
+import com.google.inject.Module;
+import com.google.inject.grapher.GrapherModule;
+import com.google.inject.grapher.InjectorGrapher;
+import com.google.inject.grapher.graphviz.GraphvizModule;
+import com.google.inject.grapher.graphviz.GraphvizRenderer;
public class RackServletFilter implements Filter {
public static class DockChain implements FilterChain {
@@ -132,6 +140,20 @@
return moduleName;
}
+ @SuppressWarnings("unused")
+ private void graph(final String filename, final Injector kuneInjector) {
+ try {
+ final PrintWriter out = new PrintWriter(new File(filename), "UTF-8");
+
+ final Injector injector = Guice.createInjector(new GrapherModule(), new GraphvizModule());
+ final GraphvizRenderer renderer = injector.getInstance(GraphvizRenderer.class);
+ renderer.setOut(out).setRankdir("TB");
+ injector.getInstance(InjectorGrapher.class).of(kuneInjector).graph();
+ } catch (final IOException e) {
+ LOG.debug("Exception creation guice graph", e);
+ }
+ }
+
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
LOG.debug("INITIALIZING RackServletFilter...");
@@ -140,6 +162,9 @@
module.configure(builder);
rack = builder.getRack();
injector = (Injector) filterConfig.getServletContext().getAttribute(INJECTOR_PARENT_ATTRIBUTE);
+ // final Injector oInjector = injector.createChildInjector(new
+ // OpenfireModule());
+
final Injector kuneChildInjector = installInjector(filterConfig, rack, injector);
final CustomJobFactory jobFactory = kuneChildInjector.getInstance(CustomJobFactory.class);
jobFactory.setInjector(kuneChildInjector);
@@ -148,6 +173,10 @@
excludes = rack.getExcludes();
initFilters(filterConfig);
LOG.debug("INITIALIZATION DONE!");
+
+ // Uncomment to generate the graph
+ graph("docs/wave-guice-graph.dot", injector);
+ graph("docs/kune-guice-graph.dot", kuneChildInjector);
}
private void initFilters(final FilterConfig filterConfig) throws ServletException {
@@ -158,8 +187,9 @@
private Injector installInjector(final FilterConfig filterConfig, final Rack rack,
final Injector waveChildInjector) {
- // final Injector injector = Guice.createInjector();
- final Injector childInjector = waveChildInjector.createChildInjector(rack.getGuiceModules());
+ final List<Module> guiceModules = rack.getGuiceModules();
+
+ final Injector childInjector = waveChildInjector.createChildInjector(guiceModules);
filterConfig.getServletContext().setAttribute(INJECTOR_ATTRIBUTE, childInjector);
return childInjector;
}
Added: trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterFinder.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterFinder.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterFinder.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,10 @@
+package cc.kune.core.server.xmpp;
+
+import com.google.inject.persist.finder.Finder;
+
+public interface OpenfireXmppRosterFinder {
+
+ @Finder(query = "SELECT count(*) FROM Roster r")
+ public Long count();
+
+}
Added: trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterProvider.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/OpenfireXmppRosterProvider.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,31 @@
+package cc.kune.core.server.xmpp;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import cc.kune.core.server.DataSourceOpenfire;
+import cc.kune.core.server.manager.impl.DefaultManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class OpenfireXmppRosterProvider extends DefaultManager<Roster, Long> implements
+ XmppRosterProvider {
+ private static final Log LOG = LogFactory.getLog(OpenfireXmppRosterProvider.class);
+ private final OpenfireXmppRosterFinder finder;
+
+ @Inject
+ public OpenfireXmppRosterProvider(@DataSourceOpenfire final Provider<EntityManager> em,
+ final OpenfireXmppRosterFinder finder) {
+ super(em, Roster.class);
+ this.finder = finder;
+ }
+
+ @Override
+ public Long count() {
+ return finder.count();
+ }
+
+}
Added: trunk/src/main/java/cc/kune/core/server/xmpp/Roster.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/Roster.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/Roster.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,63 @@
+package cc.kune.core.server.xmpp;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+ at Entity
+ at Table(name = "ofRoster")
+public class Roster {
+
+ @Id
+ @GeneratedValue
+ @Column(name = "rosterID")
+ private Long id;
+
+ private String jid;
+ private String nick;
+ private String username;
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getJid() {
+ return jid;
+ }
+
+ public String getNick() {
+ return nick;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setJid(final String jid) {
+ this.jid = jid;
+ }
+
+ public void setNick(final String nick) {
+ this.nick = nick;
+ }
+
+ public void setUsername(final String username) {
+ this.username = username;
+ }
+
+ // protected RecvType recvStatus;
+ //
+ // protected Set<String> sharedGroups = new HashSet<String>();
+ //
+ // protected Set<String> invisibleSharedGroups = new HashSet<String>();
+ //
+ // protected SubType subStatus;
+ //
+ // protected AskType askStatus;
+}
Added: trunk/src/main/java/cc/kune/core/server/xmpp/XmppRosterProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/XmppRosterProvider.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/XmppRosterProvider.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -0,0 +1,16 @@
+package cc.kune.core.server.xmpp;
+
+/**
+ * The Interface XmppRosterProvider should allow to get users's roster
+ * information from different providers (initially openfire)
+ */
+public interface XmppRosterProvider {
+
+ /**
+ * Count.
+ *
+ * @return the total number of items (only for test)
+ */
+ Long count();
+
+}
Modified: trunk/src/main/resources/META-INF/persistence.xml
===================================================================
--- trunk/src/main/resources/META-INF/persistence.xml 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/resources/META-INF/persistence.xml 2012-03-06 21:17:53 UTC (rev 1742)
@@ -4,10 +4,12 @@
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
+ <!-- PRODUCTION ========================================================================= -->
+
<persistence-unit name="production" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- JPA entities must be registered here -->
- <!-- src/main/java/cc/kune/domain$ ls -1 *.java | sed 's/.java/<\/class>/g'
+ <!-- src/main/java/cc/kune/domain$ ls -1 *.java | sed 's/.java/<\/class>/g'
| sed 's/^/<class>cc.kune.domain./g' -->
<class>cc.kune.domain.AccessLists</class>
<class>cc.kune.domain.BasicMimeType</class>
@@ -31,23 +33,23 @@
<class>cc.kune.domain.ToolConfiguration</class>
<class>cc.kune.domain.User</class>
<properties>
- <property name="hibernate.archive.autodetection" value="class, hbm"/>
- <!-- In order to debug sql enable this -->
+ <property name="hibernate.archive.autodetection" value=""/>
+ <!-- In order to debug sql enable this -->
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="false"/>
<property name="use_sql_comments" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost/kune_prod?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.username" value="kune"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.password" value="db4kune"/>
- <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-production
+ <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-production
(NO!, use liquibase, for instance) -->
<!-- http://stackoverflow.com/questions/438146/hibernate-question-hbm2ddl-auto-possible-values-and-what-they-do -->
<property name="hibernate.hbm2ddl.auto" value="validate"/>
@@ -66,11 +68,50 @@
value="/var/lib/kune/lucene/kune_dev/indexes"/>
</properties>
</persistence-unit>
+
+ <!-- OPENFIRE =========================================================================== -->
+
+ <persistence-unit name="openfire" transaction-type="RESOURCE_LOCAL">
+ <!-- <exclude-unlisted-classes>true</exclude-unlisted-classes> -->
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <!-- JPA entities must be registered here -->
+ <class>cc.kune.core.server.xmpp.Roster</class>
+ <properties>
+ <property name="hibernate.archive.autodetection" value=""/>
+ <!-- In order to debug sql enable this -->
+ <property name="hibernate.show_sql" value="false"/>
+ <property name="hibernate.format_sql" value="false"/>
+ <property name="use_sql_comments" value="true"/>
+ <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
+ <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
+
+ <!-- Configured and overrided by kune.properties -->
+ <property name="hibernate.connection.url"
+ value="jdbc:mysql://localhost/kune_openfire?createDatabaseIfNotExist=false&useUnicode=true&characterEncoding=UTF-8"/>
+ <!-- Configured and overrided by kune.properties -->
+ <property name="hibernate.connection.username" value="kune"/>
+ <!-- Configured and overrided by kune.properties -->
+ <property name="hibernate.connection.password" value="db4kune"/>
+ <property name="hibernate.hbm2ddl.auto" value="validate"/>
+ <!-- https://www.hibernate.org/214.html -->
+ <property name="hibernate.connection.provider_class"
+ value="org.hibernate.connection.C3P0ConnectionProvider"/>
+ <property name="hibernate.c3p0.min_size" value="5"/>
+ <property name="hibernate.c3p0.max_size" value="50"/>
+ <property name="hibernate.c3p0.timeout" value="100"/>
+ <property name="hibernate.c3p0.max_statements" value="0"/>
+ <property name="hibernate.c3p0.idle_test_period" value="3000"/>
+ <property name="c3p0.preferredTestQuery" value="SELECT 1"/>
+ </properties>
+ </persistence-unit>
+
+ <!-- DEVELOPMENT ======================================================================== -->
+
<persistence-unit name="development"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- JPA entities must be registered here -->
- <!-- src/main/java/cc/kune/domain$ ls -1 *.java | sed 's/.java/<\/class>/g'
+ <!-- src/main/java/cc/kune/domain$ ls -1 *.java | sed 's/.java/<\/class>/g'
| sed 's/^/<class>cc.kune.domain./g' -->
<class>cc.kune.domain.AccessLists</class>
<class>cc.kune.domain.BasicMimeType</class>
@@ -94,22 +135,21 @@
<class>cc.kune.domain.ToolConfiguration</class>
<class>cc.kune.domain.User</class>
<properties>
- <property name="hibernate.archive.autodetection" value="class, hbm"/>
- <!-- In order to debug sql enable this -->
+ <property name="hibernate.archive.autodetection" value=""/>
+ <!-- In order to debug sql enable this -->
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="false"/>
<property name="use_sql_comments" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost/kune_dev?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.username" value="kune"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.password" value="db4kune"/>
-
- <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-production
+ <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-production
(NO!, use liquibase, for instance) -->
<!-- http://stackoverflow.com/questions/438146/hibernate-question-hbm2ddl-auto-possible-values-and-what-they-do -->
<property name="hibernate.hbm2ddl.auto" value="update"/>
@@ -129,6 +169,8 @@
</properties>
</persistence-unit>
+ <!-- TEST (MYSQL) ======================================================================= -->
+
<persistence-unit name="test_db" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- JPA entities must be registered here -->
@@ -154,19 +196,19 @@
<class>cc.kune.domain.ToolConfiguration</class>
<class>cc.kune.domain.User</class>
<properties>
- <property name="hibernate.archive.autodetection" value="class, hbm"/>
- <!-- In order to debug sql enable this -->
+ <property name="hibernate.archive.autodetection" value=""/>
+ <!-- In order to debug sql enable this -->
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="false"/>
<property name="use_sql_comments" value="false"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost/kune_test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.username" value="kune"/>
- <!-- Configured and overrided by kune.properties -->
+ <!-- Configured and overrided by kune.properties -->
<property name="hibernate.connection.password" value="db4kune"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<!-- <property name="hibernate.hbm2ddl.auto" value="create" /> -->
@@ -185,6 +227,8 @@
</properties>
</persistence-unit>
+ <!-- TEST (H2 - MEMORY) ================================================================= -->
+
<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- JPA entities must be registered here -->
@@ -210,7 +254,7 @@
<class>cc.kune.domain.ToolConfiguration</class>
<class>cc.kune.domain.User</class>
<properties>
- <!-- In order to debug sql enable this -->
+ <!-- In order to debug sql enable this -->
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="false"/>
<property name="use_sql_comments" value="false"/>
@@ -227,5 +271,4 @@
</properties>
</persistence-unit>
-
</persistence>
Modified: trunk/src/main/resources/log4j.properties
===================================================================
--- trunk/src/main/resources/log4j.properties 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/main/resources/log4j.properties 2012-03-06 21:17:53 UTC (rev 1742)
@@ -26,7 +26,7 @@
log4j.logger.org.ourproject=ERROR;
log4j.logger.cc.kune=ERROR;
log4j.logger.org.waveprotocol=ERROR;
-log4j.logger.org.google=ERROR
+log4j.logger.org.google=ERROR;
#------------------------------------------------------------------------------
#
Modified: trunk/src/test/java/cc/kune/core/server/PersistenceTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/PersistenceTest.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/test/java/cc/kune/core/server/PersistenceTest.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -27,67 +27,69 @@
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Provider;
-import com.google.inject.persist.PersistService;
import com.google.inject.persist.Transactional;
public abstract class PersistenceTest {
- private final String persistenceUnit;
- private final String propetiesFileName;
- @Inject
- Provider<EntityManager> provider;
+ private final String persistenceUnit;
+ private final String propetiesFileName;
+ @Inject
+ @DataSourceKune
+ Provider<EntityManager> provider;
- public PersistenceTest() {
- // test: use memory
- // test_db: use mysql
- // Also configurable ein TestHelper
- this(TestConstants.PERSISTENCE_UNIT, "kune.properties");
- }
+ public PersistenceTest() {
+ // test: use memory
+ // test_db: use mysql
+ // Also configurable ein TestHelper
+ this(TestConstants.PERSISTENCE_MYSQL_UNIT, "kune.properties");
+ }
- public PersistenceTest(final String persistenceUnit, final String propetiesFileName) {
- this.persistenceUnit = persistenceUnit;
- this.propetiesFileName = propetiesFileName;
- }
+ public PersistenceTest(final String persistenceUnit, final String propetiesFileName) {
+ this.persistenceUnit = persistenceUnit;
+ this.propetiesFileName = propetiesFileName;
+ }
- public void closeTransaction() {
- getManager().getTransaction().commit();
- }
+ public void closeTransaction() {
+ getManager().getTransaction().commit();
+ }
- protected EntityManager getManager() {
- return provider.get();
- }
+ protected EntityManager getManager() {
+ return provider.get();
+ }
- public EntityTransaction getTransaction() {
- return getManager().getTransaction();
- }
+ public EntityTransaction getTransaction() {
+ return getManager().getTransaction();
+ }
- public EntityManager openTransaction() {
- final EntityManager manager = getManager();
- final EntityTransaction transaction = manager.getTransaction();
- transaction.begin();
- return manager;
- }
+ public EntityManager openTransaction() {
+ final EntityManager manager = getManager();
+ final EntityTransaction transaction = manager.getTransaction();
+ transaction.begin();
+ return manager;
+ }
- public void persist(final Object... entities) {
- for (final Object entity : entities) {
- getManager().persist(entity);
- }
+ public void persist(final Object... entities) {
+ for (final Object entity : entities) {
+ getManager().persist(entity);
}
+ }
- @Transactional
- @Before
- public void prepare() {
- final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
- final PersistService persistence = injector.getInstance(PersistService.class);
- // To Debug insert breakpoint here
- persistence.start();
- injector.injectMembers(this);
- }
+ @Transactional
+ @Before
+ public void prepare() {
+ final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit,
+ propetiesFileName);
+ // final PersistService persistence =
+ // injector.getInstance(PersistService.class);
+ // To Debug insert breakpoint here
+ // persistence.start();
+ injector.injectMembers(this);
+ }
- public void rollbackTransaction() {
- final EntityTransaction transaction = getManager().getTransaction();
- if (transaction.isActive()) {
- transaction.rollback();
- }
+ public void rollbackTransaction() {
+ final EntityTransaction transaction = getManager().getTransaction();
+ if (transaction.isActive()) {
+ transaction.rollback();
}
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/TestConstants.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/TestConstants.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/test/java/cc/kune/core/server/TestConstants.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -20,6 +20,7 @@
package cc.kune.core.server;
public final class TestConstants {
+ public static final String PERSISTENCE_MYSQL_UNIT = "test_db";
// test: use memory
// test_db: use mysql
// public static final String PERSISTENCE_UNIT = "test_db";
Modified: trunk/src/test/java/cc/kune/core/server/TestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/TestHelper.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/test/java/cc/kune/core/server/TestHelper.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -33,10 +33,7 @@
import org.waveprotocol.box.server.waveserver.WaveServerImpl;
import org.waveprotocol.wave.federation.noop.NoOpFederationModule;
-import cc.kune.core.server.init.FinderRegistry;
import cc.kune.core.server.integration.HttpServletRequestMocked;
-import cc.kune.core.server.properties.KuneProperties;
-import cc.kune.core.server.properties.KunePropertiesDefault;
import cc.kune.wave.server.CustomSettingsBinder;
import com.google.inject.Binder;
@@ -46,7 +43,6 @@
import com.google.inject.Module;
import com.google.inject.Scopes;
import com.google.inject.name.Names;
-import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.SessionScoped;
@@ -59,16 +55,17 @@
final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
final Injector childInjector = injector.createChildInjector(wavePersistModule, new ServerModule(
- false, 1, 2, 2), new RobotApiModule(), federationModule,
- FinderRegistry.init(new JpaPersistModule(persistenceUnit)), module, new Module() {
- @Override
- public void configure(final Binder binder) {
- binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
- binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
- binder.bind(KuneProperties.class).toInstance(new KunePropertiesDefault(propetiesFileName));
- binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
- }
- });
+ false, 1, 2, 2), new RobotApiModule(), federationModule, new DataSourceKunePersistModule(
+ "kune.properties", TestConstants.PERSISTENCE_UNIT), module, new Module() {
+ @Override
+ public void configure(final Binder binder) {
+ binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
+ binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
+ // binder.bind(KuneProperties.class).toInstance(new
+ // KunePropertiesDefault(propetiesFileName));
+ binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
+ }
+ });
try {
childInjector.getInstance(WaveServerImpl.class).initialize();
} catch (final WaveServerException e) {
Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2012-03-06 14:15:12 UTC (rev 1741)
+++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2012-03-06 21:17:53 UTC (rev 1742)
@@ -33,11 +33,9 @@
import cc.kune.barters.server.BarterServerModule;
import cc.kune.chat.server.ChatServerModule;
import cc.kune.core.server.KunePersistenceService;
+import cc.kune.core.server.DataSourceKunePersistModule;
import cc.kune.core.server.PlatformServerModule;
import cc.kune.core.server.TestConstants;
-import cc.kune.core.server.init.FinderRegistry;
-import cc.kune.core.server.properties.KuneProperties;
-import cc.kune.core.server.properties.KunePropertiesDefault;
import cc.kune.docs.server.DocumentServerModule;
import cc.kune.events.server.EventsServerModule;
import cc.kune.lists.server.ListsServerModule;
@@ -49,7 +47,6 @@
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Scopes;
-import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.SessionScoped;
@@ -62,20 +59,25 @@
TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class));
final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
- final Injector childInjector = injector.createChildInjector(wavePersistModule,
- FinderRegistry.init(new JpaPersistModule(TestConstants.PERSISTENCE_UNIT)),
- new ListsServerModule(), new RobotApiModule(), new PlatformServerModule(),
- new DocumentServerModule(), new ChatServerModule(), new ServerModule(false, 1, 2, 2),
- federationModule, new WikiServerModule(), new TaskServerModule(), new BarterServerModule(),
- new EventsServerModule(), new AbstractModule() {
+ final Injector childInjector = injector.createChildInjector(
+ wavePersistModule,
+ new AbstractModule() {
@Override
protected void configure() {
bindScope(SessionScoped.class, Scopes.SINGLETON);
bindScope(RequestScoped.class, Scopes.SINGLETON);
- bind(KuneProperties.class).toInstance(new KunePropertiesDefault("kune.properties"));
+
bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
}
- });
+ },
+
+ new DataSourceKunePersistModule("kune.properties", TestConstants.PERSISTENCE_UNIT),
+ // new MyDataSourceTwoPersistModule(),
+
+ new ListsServerModule(), new RobotApiModule(), new PlatformServerModule(),
+ new DocumentServerModule(), new ChatServerModule(), new ServerModule(false, 1, 2, 2),
+ federationModule, new WikiServerModule(), new TaskServerModule(), new BarterServerModule(),
+ new EventsServerModule());
try {
childInjector.getInstance(WaveServerImpl.class).initialize();
} catch (final WaveServerException e) {
More information about the kune-commits
mailing list