diff --git a/.project b/.project new file mode 100644 index 0000000..cd04e4b --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + Mqtt-Provider + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..370ae2c --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=ISO-8859-1 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/.classpath b/bundles/org.eclipse.ecf.provider.jms.mqtt/.classpath index 64c5e31..288a780 100644 --- a/bundles/org.eclipse.ecf.provider.jms.mqtt/.classpath +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/.classpath @@ -3,5 +3,5 @@ - + diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/.gitignore b/bundles/org.eclipse.ecf.provider.jms.mqtt/.gitignore index 5e56e04..06ba672 100644 --- a/bundles/org.eclipse.ecf.provider.jms.mqtt/.gitignore +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/.gitignore @@ -1 +1,2 @@ /bin +/target/ diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/.project b/bundles/org.eclipse.ecf.provider.jms.mqtt/.project index b5b788f..6eb0a6a 100644 --- a/bundles/org.eclipse.ecf.provider.jms.mqtt/.project +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/.project @@ -25,8 +25,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.ecf.provider.jms.mqtt/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..370ae2c --- /dev/null +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=ISO-8859-1 diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/.settings/org.eclipse.m2e.core.prefs b/bundles/org.eclipse.ecf.provider.jms.mqtt/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/build.properties b/bundles/org.eclipse.ecf.provider.jms.mqtt/build.properties index ee8178c..063a4f9 100644 --- a/bundles/org.eclipse.ecf.provider.jms.mqtt/build.properties +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/build.properties @@ -1,5 +1,4 @@ source.. = src/ -output.. = bin/ bin.includes = META-INF/,\ .,\ about.html,\ diff --git a/bundles/org.eclipse.ecf.provider.jms.mqtt/pom.xml b/bundles/org.eclipse.ecf.provider.jms.mqtt/pom.xml new file mode 100644 index 0000000..a5815ca --- /dev/null +++ b/bundles/org.eclipse.ecf.provider.jms.mqtt/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + + org.eclipse.ecf.provider.jms.mqtt + org.eclipse.ecf.provider.jms.mqtt.parent + 1.0.0-SNAPSHOT + ../../ + + org.eclipse.ecf.provider.jms.mqtt + 1.2.1-SNAPSHOT + eclipse-plugin + diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/.gitignore b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.gitignore new file mode 100644 index 0000000..b83d222 --- /dev/null +++ b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/.project b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.project index 5a16ebe..a5c34b5 100644 --- a/features/org.eclipse.ecf.provider.jms.mqtt.feature/.project +++ b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..370ae2c --- /dev/null +++ b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=ISO-8859-1 diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/.settings/org.eclipse.m2e.core.prefs b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/features/org.eclipse.ecf.provider.jms.mqtt.feature/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/artifacts.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/artifacts.jar new file mode 100644 index 0000000..5c4627c Binary files /dev/null and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/artifacts.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/content.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/content.jar new file mode 100644 index 0000000..bad06c4 Binary files /dev/null and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/content.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/features/org.eclipse.ecf.provider.jms.mqtt.feature_1.0.0.201701291636.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/features/org.eclipse.ecf.provider.jms.mqtt.feature_1.0.0.201706161728.jar similarity index 78% rename from features/org.eclipse.ecf.provider.jms.mqtt.feature/build/features/org.eclipse.ecf.provider.jms.mqtt.feature_1.0.0.201701291636.jar rename to features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/features/org.eclipse.ecf.provider.jms.mqtt.feature_1.0.0.201706161728.jar index dd6a582..5604772 100644 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/features/org.eclipse.ecf.provider.jms.mqtt.feature_1.0.0.201701291636.jar and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/features/org.eclipse.ecf.provider.jms.mqtt.feature_1.0.0.201706161728.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/javax.jms_1.1.0.v201205091237.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/javax.jms_1.1.0.v201205091237.jar new file mode 100644 index 0000000..2c7cfe9 Binary files /dev/null and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/javax.jms_1.1.0.v201205091237.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.ecf.provider.jms.mqtt_1.2.1.201701291636.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.ecf.provider.jms.mqtt_1.2.1.201706161728.jar similarity index 72% rename from features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.ecf.provider.jms.mqtt_1.2.1.201701291636.jar rename to features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.ecf.provider.jms.mqtt_1.2.1.201706161728.jar index cf32ebc..813ec97 100644 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.ecf.provider.jms.mqtt_1.2.1.201701291636.jar and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.ecf.provider.jms.mqtt_1.2.1.201706161728.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.ecf.provider.jms_1.9.1.201701291636.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.ecf.provider.jms_1.10.0.201706161643.jar similarity index 87% rename from features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.ecf.provider.jms_1.9.1.201701291636.jar rename to features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.ecf.provider.jms_1.10.0.201706161643.jar index 8f130ee..7805c94 100644 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.ecf.provider.jms_1.9.1.201701291636.jar and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.ecf.provider.jms_1.10.0.201706161643.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.paho.client.mqttv3_1.1.1.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.paho.client.mqttv3_1.1.1.jar new file mode 100644 index 0000000..93efc72 Binary files /dev/null and b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/20160616/plugins/org.eclipse.paho.client.mqttv3_1.1.1.jar differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/artifacts.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/artifacts.jar deleted file mode 100644 index 7991b05..0000000 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/artifacts.jar and /dev/null differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/content.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/content.jar deleted file mode 100644 index 12676c5..0000000 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/content.jar and /dev/null differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/javax.jms_1.1.0.201701291636.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/javax.jms_1.1.0.201701291636.jar deleted file mode 100644 index 8688583..0000000 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/javax.jms_1.1.0.201701291636.jar and /dev/null differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.paho.client.mqttv3_1.1.0.jar b/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.paho.client.mqttv3_1.1.0.jar deleted file mode 100644 index 76b0c9d..0000000 Binary files a/features/org.eclipse.ecf.provider.jms.mqtt.feature/build/plugins/org.eclipse.paho.client.mqttv3_1.1.0.jar and /dev/null differ diff --git a/features/org.eclipse.ecf.provider.jms.mqtt.feature/pom.xml b/features/org.eclipse.ecf.provider.jms.mqtt.feature/pom.xml new file mode 100644 index 0000000..bb2d679 --- /dev/null +++ b/features/org.eclipse.ecf.provider.jms.mqtt.feature/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + org.eclipse.ecf.provider.jms.mqtt + org.eclipse.ecf.provider.jms.mqtt.parent + 1.0.0-SNAPSHOT + ../../ + + org.eclipse.ecf.provider.jms.mqtt.feature + eclipse-feature + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fd943e1 --- /dev/null +++ b/pom.xml @@ -0,0 +1,343 @@ + + + + 4.0.0 + org.eclipse.ecf.provider.jms.mqtt + org.eclipse.ecf.provider.jms.mqtt.parent + 1.0.0-SNAPSHOT + pom + + + https://www.eclipse.org/ecf/ + + + 3.1.1 + + + + ECF + https://github.com/ECF + + + + + Apache v2.0 + https://www.apache.org/licenses/LICENSE-2.0 + repo + + + + + scm:git:https://github.com/ECF/Mqtt-Provider.git + scm:git:https://github.com/ECF/Mqtt-Provider + https://github.com/ECF/Mqtt-Provider + + + + https://github.com/ECF/Mqtt-Provider/issues + Github + + + + + repo.eclipse.org + ECF Maven Repository - Releases + https://repo.eclipse.org/content/repositories/ecf-releases/ + + + repo.eclipse.org + ECF Maven Repository - Snapshots + https://repo.eclipse.org/content/repositories/ecf-snapshots/ + true + + + + + 1.0.0 + 1.1.3 + neon + ISO-8859-1 + ISO-8859-1 + ${project.scm.connection} + + true + + + + + repo.eclipse.org + https://repo.eclipse.org/content/groups/releases/ + + + + + releng/org.eclipse.ecf.provider.jms.mqtt.target + features/org.eclipse.ecf.provider.jms.mqtt.feature + bundles/org.eclipse.ecf.provider.jms.mqtt + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + org.eclipse.ecf.provider.jms.mqtt + org.eclipse.ecf.provider.jms.mqtt.target + ecf-${target-platform} + 1.0.0-SNAPSHOT + + + + + win32 + win32 + x86 + + + win32 + win32 + x86_64 + + + linux + gtk + x86 + + + linux + gtk + x86_64 + + + macosx + cocoa + x86_64 + + + false + + + + org.eclipse.tycho + tycho-source-plugin + ${tycho-version} + + + plugin-source + + plugin-source + + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + + default-p2-metadata-default + no-execute + + + attach-p2-metadata + package + + p2-metadata + + + + + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + + ${project.basedir}/.settings/org.eclipse.jdt.core.prefs + + + + + org.eclipse.tycho + tycho-packaging-plugin + ${tycho-version} + + + org.eclipse.tycho.extras + tycho-buildtimestamp-jgit + ${tycho-version} + + + org.eclipse.tycho.extras + tycho-sourceref-jgit + ${tycho-version} + + + + 'v'yyyyMMdd-HHmm + + false + + + true + + jgit + warning + + + + org.eclipse.tycho + tycho-surefire-plugin + ${tycho-version} + + ${skipTests} + false + + + + org.apache.maven.plugins + maven-clean-plugin + 3.0.0 + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.4 + + + + org.osgi + org.osgi.annotation + 6.0.0 + + + -Xdoclint:none + false + ${project.name} 3.13.7 API + *.ui*:*.smack.*:*.incubation.*:*.internal.*:ch.*:*.jmdns.*:*.tests.*:*.sdo.*:*.twitter.*:*.jivesoftware.*:*.collab.*:*.osgi.services.discovery.*:com.mycorp.*:org.eclipse.ecf.core.start:org.eclipse.ecf.core.user:org.eclipse.ecf.docshare.*:org.eclipse.ecf.datashare.*:org.eclipse.ecf.example.*:org.eclipse.ecf.presence.*:org.eclipse.ecf.protocol.bittorrent:org.eclipse.ecf.protocol.msn:org.eclipse.ecf.provider.irc:org.eclipse.ecf.provider.datashare.*:org.eclipse.ecf.provider.discovery.*:org.eclipse.ecf.provider.xmpp:org.eclipse.ecf.remoteservice.rpc:org.eclipse.ecf.remoteservice.soap:org.eclipse.ecf.server:org.eclipse.ecf.storage:org.eclipse.ecf.sync:org.eclipse.ecf.telephony:org.eclipse.ecf.remoteservice.asyncproxy.j8:org.eclipse.ecf.remoteservices.tooling.pde:org.eclipse.ecf.tests.*:org.eclipse.ecf.remoteservices.rest.rss:org.eclipse.ecf.examples.* + + https://osgi.org/javadoc/r6/core/ + + true + + + noimplementaRestriction: + + + noextendaRestriction: + + + noreferenceaRestriction: + + + noinstantiateaRestriction: + + + nooverrideaRestriction: + + + ${project.name} 3.13.7 API + + + + + + + + + + pack-and-sign + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + true + + + + org.eclipse.tycho.extras + tycho-pack200a-plugin + ${tycho-version} + + + pack200-normalize + + normalize + + verify + + + + + org.eclipse.cbi.maven.plugins + eclipse-jarsigner-plugin + ${cbi-version} + + + sign + verify + + sign + + + + + + org.eclipse.tycho.extras + tycho-pack200b-plugin + ${tycho-version} + + + pack200-pack + + pack + + verify + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + attach-p2-metadata + + p2-metadata + + verify + + + + + + + + diff --git a/releng/org.eclipse.ecf.provider.jms.mqtt.target/.project b/releng/org.eclipse.ecf.provider.jms.mqtt.target/.project new file mode 100644 index 0000000..9b6c447 --- /dev/null +++ b/releng/org.eclipse.ecf.provider.jms.mqtt.target/.project @@ -0,0 +1,17 @@ + + + org.eclipse.ecf.provider.jms.mqtt.target + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/releng/org.eclipse.ecf.provider.jms.mqtt.target/.settings/org.eclipse.core.resources.prefs b/releng/org.eclipse.ecf.provider.jms.mqtt.target/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..370ae2c --- /dev/null +++ b/releng/org.eclipse.ecf.provider.jms.mqtt.target/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=ISO-8859-1 diff --git a/releng/org.eclipse.ecf.provider.jms.mqtt.target/.settings/org.eclipse.m2e.core.prefs b/releng/org.eclipse.ecf.provider.jms.mqtt.target/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/releng/org.eclipse.ecf.provider.jms.mqtt.target/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/releng/org.eclipse.ecf.provider.jms.mqtt.target/ecf-neon.target b/releng/org.eclipse.ecf.provider.jms.mqtt.target/ecf-neon.target new file mode 100644 index 0000000..3b41cdd --- /dev/null +++ b/releng/org.eclipse.ecf.provider.jms.mqtt.target/ecf-neon.target @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/releng/org.eclipse.ecf.provider.jms.mqtt.target/pom.xml b/releng/org.eclipse.ecf.provider.jms.mqtt.target/pom.xml new file mode 100644 index 0000000..4480fc1 --- /dev/null +++ b/releng/org.eclipse.ecf.provider.jms.mqtt.target/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + org.eclipse.ecf.provider.jms.mqtt + org.eclipse.ecf.provider.jms.mqtt.parent + 1.0.0-SNAPSHOT + ../../ + + org.eclipse.ecf.provider.jms.mqtt.target + pom + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.10 + + + attach-artifacts + package + + attach-artifact + + + + + ecf-neon.target + target + ecf-neon + + + + + + + + + diff --git a/tests/org.eclipse.ecf.tests.provider.jms.mqtt/org.eclipse.ecf.tests.provider.jms.mqtt.launch b/tests/org.eclipse.ecf.tests.provider.jms.mqtt/org.eclipse.ecf.tests.provider.jms.mqtt.launch index b5dd26d..207fe50 100644 --- a/tests/org.eclipse.ecf.tests.provider.jms.mqtt/org.eclipse.ecf.tests.provider.jms.mqtt.launch +++ b/tests/org.eclipse.ecf.tests.provider.jms.mqtt/org.eclipse.ecf.tests.provider.jms.mqtt.launch @@ -33,8 +33,8 @@ - - + + diff --git a/tests/org.eclipse.ecf.tests.provider.jms.mqtt/slewis.org.eclipse.ecf.tests.provider.jms.mqtt.launch b/tests/org.eclipse.ecf.tests.provider.jms.mqtt/slewis.org.eclipse.ecf.tests.provider.jms.mqtt.launch new file mode 100644 index 0000000..b2e077f --- /dev/null +++ b/tests/org.eclipse.ecf.tests.provider.jms.mqtt/slewis.org.eclipse.ecf.tests.provider.jms.mqtt.launch @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +